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 (rl), también llamados compartidos, o de escritura (wl),
también llamados exclusivos. Como se aprecia en la tabla siguiente, los
candados de lectura presentan conflictos con los candados de escritura, dado
que las operaciones de lectura y escritura son incompatibles.
|
rl
|
wl
|
rl
|
Si
|
No
|
Wl
|
No
|
No
|
En sistemas basados en candados, el despachador es un administrador
de candados (LM). 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. Si
candado solicitado es incompatible con el candado con que el dato está
bloqueado, entonces, la transacción solicitante es retrasada. De otra forma, el
candado se define sobre el dato en el modo deseado y la operación a la base de
datos es transferida al procesador de datos. El administrador de transacciones
es informado luego sobre el resultado de la operación. La terminación de una
transacción libera todos los candados y se puede iniciar otra transacción
que estaba esperando el acceso al mismo dato.
Basados en estampas de tiempo
A diferencia de los algoritmos basados en candados, los
algoritmos basados en estampas de tiempo no pretenden mantener la seriabilidad
por exclusión mutua. En lugar de eso, ellos seleccionan un orden de
serialización a priori y ejecutan las transacciones de acuerdo a ellas. Para
establecer este ordenamiento, el administrador de transacciones le asigna a
cada transacción Ti una estampa de tiempo única ts (Ti ) cuando
ésta inicia. Una estampa de tiempo es un identificador simple que
sirve para identificar cada transacción de manera única. Otra propiedad de las
estampas de tiempo es la monoticidad , esto es, dos estampas de tiempo
generadas por el mismo administrador de transacciones deben ser monotonicamente
crecientes. Así, las estampas de tiempo son valores derivados de un dominio
totalmente ordenado.
Existen varias formas en que las estampas de tiempo se
pueden asignar. Un método es usar un contador global monotonicamente creciente.
Sin embargo, el mantenimiento de contadores globales es un problema en sistemas
distribuidos. Por lo tanto, es preferible que cada nodo asigne de manera autónoma
las estampas de tiempos basándose en un contador local. Para obtener la
unicidad, cada nodo le agrega al contador su propio identificador. Así, la
estampa de tiempo es un par de la forma
<contador local ,identificador de nodo >
Note que el identificador de nodo se agrega en la posición
menos significativa, de manera que, éste sirve solo en el caso en que dos nodos
diferentes le asignen el mismo contador local a dos transacciones diferentes.
El administrador de transacciones asigna también una estampa de tiempo a todas
las operaciones solicitadas por una transacción. Más aún, a cada elemento de
datos x se le asigna una estampa de tiempo de escritura, wts (x ),
y una estampa de tiempo de lectura ,rts (x ); sus valores
indican la estampa de tiempo más grande para cualquier lectura y escritura
de x , respectivamente.
Pruebas de validación optimistas
Fuentes: http://es.scribd.com/doc/80796514/Ensayo-Base-de-Datos-Distribuidos-Leonel
No hay comentarios:
Publicar un comentario