Saltar al contenido
Inicio

Atomicidad (transacciones y computación)

La atomicidad es la garantía de que un conjunto de operaciones se ejecuta como una única unidad indivisible: o todas se completan con éxito o ninguna. Es una propiedad básica de los sistemas transaccionales.

Atomicidad se refiere a la propiedad de que un grupo de acciones es indivisible: desde el punto de vista de un observador externo, el sistema pasa directamente de un estado anterior a la ejecución del grupo a un estado posterior, sin que se vea ningún estado intermedio parcial. En computación, este concepto se discute sobre todo en el contexto de las transacciones en sistemas de bases de datos y de almacenamiento, donde la atomicidad aparece como la primera de las cuatro propiedades ACID. Los sistemas modernos de bases de datos y los programas transaccionales dependen de la atomicidad para asegurar la corrección lógica y simplificar el manejo de errores.

Qué garantiza la atomicidad

Atomicidad significa todo o nada. Si cada paso dentro de una transacción se completa, la transacción se confirma y sus efectos permanecen. Si falla cualquier paso, la transacción se revierte y el sistema vuelve al estado que existía antes de que comenzara. Los mecanismos visibles típicos son las operaciones de confirmación y reversión; entre las técnicas de implementación se incluyen el registro de cambios, la bitácora o journaling, y un orden cuidadoso de las escrituras para que las actualizaciones parciales puedan deshacerse después de un fallo. Un ejemplo sencillo del mundo real es transferir dinero entre dos cuentas: o bien se realizan tanto el cargo como el abono, o no se realiza ninguno.

Cómo se implementa

  • El registro anticipado de escritura y los registros de transacciones permiten que los sistemas registren los cambios previstos antes de aplicarlos, lo que facilita la recuperación tras fallos.
  • El bloqueo y el control de concurrencia impiden actualizaciones en conflicto mientras se ejecuta una transacción; la aislamiento y la atomicidad interactúan estrechamente.
  • En sistemas distribuidos, se usan protocolos de commit coordinado, por ejemplo el commit en dos fases, para obtener atomicidad entre varios nodos, aunque introducen latencia y problemas de bloqueo.
  • Cuando la atomicidad estricta no es práctica, a veces se usan transacciones compensatorias para deshacer el trabajo parcial en la lógica de la aplicación.

Muchos motores de almacenamiento y bases de datos relacionales implementan transacciones atómicas de forma nativa; algunos sistemas NoSQL modernos ofrecen variantes o garantías más débiles para intercambiar consistencia por disponibilidad y rendimiento.

Historia y contexto

La importancia de las transacciones atómicas se formuló en la investigación sobre bases de datos durante las décadas de 1970 y 1980 y después quedó cristalizada en el modelo ACID, que formaliza Atomicidad, Consistencia, Aislamiento y Durabilidad. La terminología ACID y las técnicas transaccionales fueron desarrolladas y popularizadas por investigadores y profesionales de bases de datos a medida que los sistemas de procesamiento transaccional ganaban importancia para aplicaciones críticas para el negocio.

Compromisos prácticos y distinciones

La atomicidad estricta simplifica la lógica de las aplicaciones, pero tiene costes: mayor latencia, más coordinación en entornos distribuidos y posibles límites de escalabilidad. A veces los diseñadores prefieren la consistencia eventual o patrones de operaciones idempotentes cuando la atomicidad absoluta entre muchos servicios es inviable. La atomicidad también debe distinguirse de conceptos relacionados: el aislamiento controla cómo interactúan las transacciones concurrentes, la durabilidad garantiza que los cambios confirmados sobrevivan a los fallos, y la idempotencia asegura que las operaciones repetidas tengan el mismo efecto.

Para una introducción breve a las transacciones y al modelo ACID, véase ACID; y para ejemplos prácticos de fallo y recuperación de transacciones, consulte la literatura y los tutoriales sobre transacciones.

Artículos relacionados

Autor

AlegsaOnline.com Atomicidad (transacciones y computación)

URL: https://es.alegsaonline.com/art/7057

Compartir