Atomicidad (sistemas de base de datos)

Ir a: navegación, búsqueda de
Para otras aplicaciones, vea Atomicidad (desambiguación).

En sistemas de base de datos, atomicidad (o atomicness; De Griego a-tomos, inseparable) es uno de los ÁCIDO transacción propiedades. En un transacción atómica, una serie de operaciones de base de datos o todos se producen, o nada se produce. Una garantía de atomicidad previene las actualizaciones a la base de datos que se producen sólo parcialmente, que puede causar mayores problemas que rechaza toda la serie abierta. En otras palabras, significa atomicidad indivisibilidad y irreductibilidad.[1]

La etimología de la frase se origina en el concepto griego clásico de un componente fundamental e indivisible; ver átomo.

Contenido

  • 1 Ejemplos
  • 2 Ortogonalidad
  • 3 Implementación
  • 4 Véase también
  • 5 Referencias

Ejemplos

Un ejemplo de atomicidad está ordenando un pasaje donde se requieren dos acciones: pago y una reserva de asiento. El pasajero potencial deberá:

  1. tanto pagar y reservar un asiento; O
  2. No pague ni reservar un asiento.

El sistema de reservas no considera aceptable para un cliente para pagar un boleto sin asegurar el asiento, ni para reservar el asiento sin éxito de pago.

Otro ejemplo es que si uno quiere transferir cierta cantidad de dinero de una cuenta a otra, entonces el usuario comenzaría un procedimiento para hacerlo. Sin embargo, si ocurre una falla, entonces debido a la atomicidad, la cantidad tampoco será transferida completamente o incluso no arrancará. Por lo tanto atomicidad protege al usuario de perder dinero debido a una transacción fallida.

Ortogonalidad

Atomicidad no se comporta completamente ortogonalmente con respecto a la otra ÁCIDO propiedades de las transacciones. Por ejemplo, aislamiento se basa en atomicidad para deshacer los cambios en caso de fallos de aislamiento tales como interbloqueo; consistencia también se basa en restaurar en caso de una consistencia-violación por una transacción ilegal. Finalmente, misma atomicidad se basa en durabilidad para garantizar la atomicidad de transacciones incluso ante fallos externos.

Como resultado de esto, no detectar errores y hacer retroceder la operación envolvente puede causar fallos de aislamiento y consistencia.

Implementación

Generalmente, los sistemas implementan atomicidad proporcionando algún mecanismo para indicar que las transacciones han comenzado y que acabó; o al mantener una copia de los datos antes de cualquier cambio producido)Read-copy-update). Varios sistemas de archivos han desarrollado métodos para evitar la necesidad de mantener múltiples copias de datos, utilizando journaling (véase sistema de archivos journaling). Bases de datos suele implementan esto mediante alguna forma de registro/diario de seguimiento de los cambios. El sistema sincroniza los registros (a menudo el metadatos) es necesario una vez que los cambios reales con éxito han tenido lugar. Luego, recuperación de un fallo simplemente ignora las entradas incompletas. Aunque las implementaciones varían dependiendo de factores tales como problemas de concurrencia, el principio de atomicidad — es decir, éxito o fracaso — permanecen.

En definitiva, cualquier implementación de nivel de aplicación se basa en sistema operativo funcionalidad. A nivel de sistema de archivos, POSIX-compatible con sistemas proporcionan llamadas del sistema tales como Open (2) y flock(2) permiten que las aplicaciones atómicamente abrir o cerrar un archivo. En el nivel de proceso, Los POSIX Threads proporcionan a primitivas de sincronización adecuada.

Requiere que el nivel de hardware operaciones atómicas tales como Prueba-y-set, Buscar-y-añadir, Compare-and-swap, o Carga-Link/tienda-condicional, junto con barreras de la memoria. Portables sistemas operativos simplemente no puede bloquear las interrupciones para implementar la sincronización, desde hardware que carece de ejecución concurrente tales como hyper-threading o multiprocesamiento Ahora es extremadamente rara.

En NoSQL almacenes de datos con consistencia eventual, también es más débil la atomicidad especificó que en los sistemas de base de datos relacional y existe solamente en filas (es decir, familias de columna).[2]

Véase también

  • Operación atómica
  • Procesamiento de transacciones
  • Transacciones de larga duración
  • Read-copy-update

Referencias

  1. ^ "operación atómica". http://www.webopedia.com/:: Webopedia. 2011-03-23. Una operación durante la cual un procesador puede leer una ubicación y escribirlo en la misma operación de autobuses simultáneamente. Esto evita que cualquier otro procesador o dispositivo de entrada-salida de escritura o lectura de memoria hasta que se complete la operación.
  2. ^ Olivier Mallassi (2010-06-09). "Vamos a jugar con Cassandra... (Parte 1/3)". http://blog.Octo.com/en/:: OCTO habla!. 2011-03-23. Atomicidad también es más débil que lo que estamos acostumbrados en el mundo relacional. Cassandra garantiza la atomicidad dentro de un ColumnFamily Así que para todas las columnas de una fila.

Otras Páginas

Obtenido de"http://en.copro.org/w/index.php?title=atomicity _ (database_systems) & oldid = 633374793"