El protocolo de ordenación de marcas de tiempo establece que si R i (X) y W j (X) son operaciones en conflicto, entonces R i (X) se procesa antes que W j (X) si y solo si TS (T i ) < TS (T j ). Siempre que una programación no sigue un orden de serialización de acuerdo con la marca de tiempo, un usuario generalmente la rechaza y revierte la transacción. Algunas operaciones, por otro lado, son inofensivas y pueden permitirse.
La regla de escritura de Thomas permite este tipo de operaciones y es una modificación del protocolo básico de orden de marca de tiempo. En Thomas Write Rule, los usuarios ignoran las escrituras obsoletas . Además, de todos los protocolos de concurrencia que se han discutido, la concurrencia se impone en programaciones que son serializables en conflicto , en Thomas Write Rule, la mejora más importante es que un usuario puede lograr la concurrencia con ver programaciones serializables .
Primero, establezcamos qué es la regla de escritura de Thomas y luego cuáles son las modificaciones y mejoras que logra sobre el protocolo TO básico .
Regla de escritura de
Thomas: la regla de escritura de Thomas no impone la serialización de conflictos pero rechaza menos operaciones de escritura al modificar las operaciones de verificación para W_item (X)
- Si R_TS(X) > TS(T) , entonces cancela y deshace T y rechaza la operación.
- Si W_TS(X) > TS(T) , entonces no ejecute la operación de escritura y continúe procesando. Este es un caso de escrituras desactualizadas u obsoletas . Recuerde, las escrituras desactualizadas se ignoran en la regla de escritura de Thomas, pero una transacción que sigue el protocolo TO básico anulará dicha transacción.
- Si no ocurre la condición en 1 o 2, entonces y solo entonces ejecute la operación W_item(X) de T y establezca W_TS(X) en TS(T)
Ejemplo de escritura obsoleta:
la actualización principal en la regla de escritura de Thomas ignora las operaciones de escritura obsoletas. Esto se hace porque alguna transacción con una marca de tiempo mayor que TS(T) (es decir, una transacción después de T en el pedido de TS) ya ha escrito el valor de X. Por lo tanto, lógicamente el usuario puede ignorar la operación Escribir(X) de T que se convierte en obsoleto. Veámoslo a través de un ejemplo:
Supongamos que un usuario tiene un cronograma en el que dos transacciones T 1 y T 2 . Ahora, TS(T 2 ) < TS(T 1 ) . Esto significa que T 1 llegó después de T 2 y, por lo tanto, tiene un valor de TS mayor que T 2 . Esto implica que la serialización de la programación permitida es T 2 –> T 1 . Considere el programa parcial dado a continuación:
Imagen: ejemplo de escritura obsoleta
Por lo tanto, las escrituras obsoletas se ignoran en esta regla que está de acuerdo con el 2º protocolo. Parece ser más lógico ya que los usuarios se saltan un procedimiento innecesario de reiniciar toda la transacción. Este protocolo es solo una modificación del protocolo básico TO.
Protocolo básico TO v/s Regla de escritura de Thomas:
suponga que un usuario tiene un cronograma en el que dos transacciones T 1 y T 2 . Ahora, TS(T 2 ) < TS(T 1 ) . Esto implica que la serialización de la programación permitida es T 2 –> T 1 . Considere los dos protocolos, veamos qué tipos de operaciones se permitirán y no se permitirán bajo ellos. R i (A) implica Leer y W i (A)implica operación de escritura. Ahora, echemos un vistazo a los tipos de programaciones parciales permitidas tanto en Basic TO como en Thomas Write Rule, comprenderá la diferencia en las operaciones de ambos protocolos. El usuario distingue en operaciones Permitidas y No Permitidas en ambos Protocolos.
Protocolo TO básico
|
Regla de escritura de Thomas
|
---|
Por lo tanto, de la lista anterior, esta modificación se usa en la regla de escritura de Thomas en comparación con el protocolo TO básico.
Referencia : Conceptos de sistemas de bases de datos, Quinta edición [Silberschatz, Korth, Sudarshan], Capítulo 16