Transacciones Atómicas

Las técnicas de sincronización son de bajo nivel:

Se precisan técnicas de abstracción de mayor nivel que:

Tal abstracción la llamaremos transacción atómica, transacción o acción atómica.

La principal propiedad de la transacción atómica es el “todo o nada”:

El Modelo de Transacción

Almacenamiento Estable

Se puede implantar con una pareja de discos comunes.

Cada bloque de la unidad 2 es una copia exacta (espejo) del bloque correspondiente en la unidad 1.

Cuando se actualiza un bloque:

Si el sistema falla luego de actualizar la unidad 1 y antes de actualizar la unidad 2:

Si se detecta el deterioro espontáneo de un bloque, se lo regenera partiendo del bloque correspondiente en la otra unidad.

Un esquema de este tipo es adecuado para las aplicaciones que requieren de un alto grado de tolerancia de fallos, por ej. las transacciones atómicas.

Primitivas de Transacción

Deben ser proporcionadas por el sistema operativo o por el sistema de tiempo de ejecución del lenguaje.

Ejemplos:

Las operaciones entre Begin y End forman el cuerpo de la transacción y deben ejecutarse todas o ninguna de ellas:

Propiedades de las Transacciones

Las propiedades fundamentales son:

La serialización garantiza que si dos o más transacciones se ejecutan al mismo tiempo:

La atomicidad garantiza que cada transacción no ocurre o bien se realiza en su totalidad:

La permanencia se refiere a que una vez comprometida una transacción:

Transacciones Anidadas

Se presentan cuando las transacciones pueden contener subtransacciones (procesos hijos) que:

Implantación del Modelo de Transacción

Existen varios métodos de implantación:

Espacio de Trabajo Particular

Consiste en que cuando un proceso inicia una transacción se le otorga un espacio de trabajo particular:

Cuando un proceso inicia una transacción, basta crear un espacio de trabajo particular para él que sea vacío excepto por un apuntador de regreso al espacio de trabajo de su proceso padre.

Para una transacción del nivel superior el espacio de trabajo del padre es el sistema de archivos “real”.

Cuando el proceso abre un archivo para lectura, se siguen los apuntadores de regreso hasta localizar el archivo en el espacio de trabajo del padre (o algún antecesor).

Cuando se abre un archivo para escritura:

La lectura por medio del índice particular (del espacio de trabajo particular) no es problemática, pues las direcciones en disco a las que referencia son las originales.

La modificación de un bloque de un archivo requiere:

La modificación sobre la copia no afecta al bloque original.

Un tratamiento similar se da al agregado de bloques; los nuevos bloques se llaman bloques sombra (shadow blocks).

El proceso que ejecuta la transacción ve el archivo modificado pero los demás procesos ven el archivo original.

Si la transacción aborta (termina anormalmente):

Si la transacción se compromete (termina normalmente):

Bitácora de Escritura Anticipada

Este método también se denomina lista de intenciones.

Los archivos realmente se modifican pero antes de cambiar cualquier bloque:

Si la transacción tiene éxito y se hace un compromiso:

Si la transacción aborta:

Por medio de la bitácora se puede:

Protocolo de Compromiso de Dos Fases (Two - Phase Commit)

Uno de los procesos que intervienen funciona como el coordinador.

El coordinador escribe una entrada en la bitácora para indicar que inicia el protocolo.

El coordinador envía a cada uno de los procesos relacionados (subordinados) un mensaje para que estén preparados para el compromiso.

Cuando un subordinado recibe el mensaje:

Cuando el coordinador ha recibido todas las respuestas sabe si debe establecer el compromiso o abortar:

 Control de Concurrencia en el Modelo de Transacción

Los algoritmos de control de concurrencia son necesarios cuando se ejecutan varias transacciones de manera simultánea:

Los principales algoritmos son:

Cerradura (locking)

Cuando un proceso debe leer o escribir en un archivo (u otro objeto) como parte de una transacción, primero cierra el archivo.

La cerradura se puede hacer mediante:

El manejador de cerraduras:

El sistema de transacciones generalmente adquiere y libera las cerraduras sin acción por parte del programador.

Una mejora consiste en distinguir las cerraduras para lectura de las cerraduras para escritura.

Una cerradura para lectura no impide otras cerraduras para lectura:

Una cerradura para escritura sí impide otras cerraduras (de lectura o de escritura):

El elemento por cerrar puede ser un archivo, un registro, un campo, etc. y lo relativo al tamaño del elemento por cerrar se llama la granularidad de la cerradura.

Mientras más fina sea la granularidad:

Generalmente se utiliza la cerradura de dos fases:

Se deben evitar situaciones de aborto en cascada:

Las cerraduras comunes y de dos fases pueden provocar bloqueos cuando dos procesos intentan adquirir la misma pareja de cerraduras pero en orden opuesto, por lo tanto se deben utilizar técnicas de prevención y de detección de bloqueos para superar el problema.

Control Optimista de la Concurrencia

La idea es muy sencilla:

Se mantiene un registro de los archivos leídos o grabados.

En el momento del compromiso:

Las principales ventajas son:

La principal desventaja es:

 Marcas de Tiempo

Se asocia a cada transacción una marca de tiempo al iniciar (begin_transaction).

Se garantiza que las marcas son únicas mediante el algoritmo de Lamport.

Cada archivo del sistema tiene asociadas una marca de tiempo para la lectura y otra para la escritura, que indican la última transacción comprometida que realizó la lectura o escritura.

Cuando un proceso intente acceder a un archivo, lo logrará si las marcas de tiempo de lectura y escritura son menores (más antiguas) que la marca de la transacción activa.

Si la marca de tiempo de la transacción activa es menor que la del archivo que intenta acceder:

En el método de las marcas no preocupa que las transacciones concurrentes utilicen los mismos archivos, pero sí importa que la transacción con el número menor esté en primer lugar.

Las marcas de tiempo tienen propiedades distintas a las de los bloqueos:

Las marcas de tiempo son libres de bloqueos, lo que es una gran ventaja.

 

 

Hosted by www.Geocities.ws

1