ALGORITMOS DE CERRADURA O BASADOS EN CANDADOS
En los algoritmos basados
en candados, las transacciones indican sus intenciones solicitando candados al
despachador (llamado el administrador de candados) Los candados son de lectura
, también llamados compartidos, o de escritura , también llamados exclusivos.
En sistemas basados en
candados, el despachador es un administrador de candados . El administrador de
transacciones le pasa al administrador de candados la operación sobre la base
de datos (lectura o escritura) e información asociada, como por ejemplo el
elemento de datos que es accesado y el identificador de la transacción que está
enviando la operación a la base de datos. El administrador de candados verifica
si el elemento de datos que se quiere accesar ya ha sido bloqueado por un
candado.
Candados de dos fases : En los candados de dos fases una transacción le pone un candado a un objeto antes de usarlo. Cuando un objeto es bloqueado con un candado por otra transacción, la transacción solicitante debe esperar. Cuando una transacción libera un candado, ya no puede solicitar más candados. En la primera fase solicita y adquiere todos los candados sobre los elementos que va a utilizar y en la segunda fase libera los candados obtenidos uno por uno.
Puede suceder que si una transacción aborta después de
liberar un candado, otras transacciones que hayan accesado el mismo elemento de
datos aborten también provocando lo que se conoce como abortos en cascada.
Para evitar lo anterior, los despachadores para candados de dos fases
implementan lo que se conoce como los candados estrictos de dos fases en
los cuales se liberan todos los candados juntos cuando la transacción termina
(con compromiso o aborta).
Candados de dos fases centralizados: En sistemas distribuidos puede que
la administración de los candados se dedique a un solo nodo del sistema, por lo
tanto, se tiene un despachador central el cual recibe todas las solicitudes de
candados del sistema. La comunicación se presenta entre el administrador de
transacciones del nodo en donde se origina la transacción , el administrador de
candados en el nodo central y los procesadores de datos de todos los nodos participantes. Los nodos
participantes son todos aquellos en donde la operación se va a llevar a cabo.

CONTROL OPTIMISTA DE LA CONCURRENCIA
Los algoritmos de control de concurrencia pesimistas asumen
que los conflictos entre transacciones son muy frecuentes y no permiten el
acceso a un dato si existe una transacción conflictiva que accesa el mismo
dato. Así, la ejecución de cualquier operación de una transacción sigue la
secuencia de fases: validación , lectura , cómputo y escritura
(ver Figura G). Los algoritmos optimistas, por otra parte, retrasan la
fase de validación justo antes de la fase de escritura (ver Figura G). De esta
manera, una operación sometida a un despachador optimista nunca es retrasada.
Las operaciones de lectura, cómputo y escritura de cada transacción se procesan libremente sin actualizar la base de datos corriente. Cada transacción inicialmente hace sus cambios en copias locales de los datos. La fase de validación consiste en verificar si esas actualizaciones conservan la consistencia de la base de datos. Si la respuesta es positiva, los cambios se hacen globales (escritos en la base de datos corriente). De otra manera, la transacción es abortada y tiene que reiniciar
Lo que se hace es dejar ejecutar las transacciones y si al terminar se detecta que ha habido conflicto se aborta y se reinicia la transacción.
Cada
transacción tiene tres fases:.
< Fase de lectura: Cuerpo de la transacción donde se
copian datos desde la base de datos, copias que pueden ser actualizadas pero
sin copiar a la base de datos
< Fase de
validación: Se
comprueba que no existan conflictos
< Fase de
escritura: Si
no existen conflictos se instalan lo cambios en la base de datos
Conflictos entre operaciones: Dos operaciones están en conflicto
entre si cuando, operan sobre los mismos datos, una de las operaciones es de
escritura, o cada operación pertenece a diferentes transacciones.

ALGORITMOS BASADOS EN MARCAS DE TIEMPO
A diferencia
de los algoritmos basados en candados, los algoritmos basados en marcas de
tiempo no pretenden mantener la seriabilidad por la exclusión mutua. En su
lugar eligen un orden de serializacion en primera instancia y ejecutan las
transacciones de acuerdo a ese orden. En estos algoritmos cada transacción lleva asociada una marca de tiempo.
Cada dato lleva asociado dos marcas de tiempo: uno de lectura y otro de
escritura, que reflejan la marca de tiempo de la transacción que hizo la ultima
operación de ese tipo sobre el dato. Para leer la marca de
tiempo de escritura del dato, debe ser menor que el de la transacción, si no
aborta. Para escribir las marcas de tiempo de escritura y lectura del dato,
deben ser menores que el de la transacción, sino se aborta.
Esta técnica esta libre de Ínterbloqueos pero puede darse que halla que repetir
varias veces la transacción. En los sistemas distribuidos se puede usar un
mecanismo como, los relojes de Lamport para asignar marcas de tiempo.
No hay comentarios:
Publicar un comentario