Atomicidad (informática)

2 min
Editar

La atomicidad (en inglés, atomicity) es la propiedad de las transacciones de una base de datos según la cual el conjunto de operaciones que forman una transacción se ejecuta entero o no se ejecuta en absoluto. No puede quedar a medias. El nombre viene del griego átomos, indivisible: la transacción se comporta como una sola operación que no se puede partir. El ejemplo clásico es una transferencia bancaria, que consiste en dos operaciones, restar una cantidad de la cuenta de origen y sumarla a la de destino. Si el sistema se cayera entre una y otra, el dinero desaparecería. Con atomicidad, o se hacen las dos, o no se hace ninguna, y la base de datos queda siempre en un estado coherente.

La atomicidad es la primera de las cuatro propiedades que se resumen con el acrónimo ACID, que Andreas Reuter y Theo Härder propusieron en 1983 a partir del trabajo de Jim Gray: atomicidad, consistencia, aislamiento (isolation) y durabilidad. Las cuatro juntas son las garantías que ofrecen las bases de datos relacionales y que las hacen fiables para los bancos, las reservas o la contabilidad.

En la práctica, una transacción termina de una de dos maneras. Si todas las operaciones han ido bien, se confirma (commit), y a partir de ese momento sus cambios son definitivos. Si algo falla, o si el programa lo decide, se revierte (rollback), y la base de datos deshace todos los cambios hechos desde el principio de la transacción, como si nunca hubiera empezado. Para poder deshacer incluso tras un corte de luz, los gestores de bases de datos usan un registro de escritura anticipada (write-ahead log): antes de tocar los datos, anotan en un fichero aparte lo que van a hacer, de modo que al reiniciar pueden completar o deshacer lo que quedó a medias.

El concepto se usa también fuera de las bases de datos. En programación concurrente, en la que varios procesos o hilos trabajan a la vez sobre los mismos datos, una operación atómica (atomic operation) es la que ningún otro proceso puede ver a medio hacer ni interrumpir. Sin ellas, dos procesos que suman uno a la vez al mismo contador pueden leer el mismo valor inicial y perder una de las dos sumas. Los procesadores ofrecen instrucciones atómicas especiales para evitarlo, sobre las que se construyen todos los mecanismos de sincronización de los sistemas operativos.

Sarasola, Eneko (2024). "Atomicidad (informática)". Ikusmira. Recuperado de https://ikusmira.org/p/atomicidad-informatica/

Una errata, un dato desfasado, un párrafo que falta: edítalo y la redacción revisa tu propuesta.

Sugerir una mejora →
§ Dónde encajaMapa del estante ↓
Sigue con
Informática Atomicidad (informática)
§ Tres puertas

¿Por dónde sigues?