Regla de escritura de Thomas


En informática , particularmente en el campo de las bases de datos , la regla de escritura de Thomas es una regla en el control de concurrencia basado en marcas de tiempo . Se puede resumir como ignorar las escrituras desactualizadas .

Establece que, si una transacción más reciente ya ha escrito el valor de un objeto, entonces una transacción menos reciente no necesita realizar su propia escritura, ya que eventualmente será sobrescrita por la más reciente.

La regla de escritura de Thomas se aplica en situaciones en las que se asigna un orden lógico predefinido a las transacciones cuando se inician. Por ejemplo, a una transacción se le puede asignar una marca de tiempo que aumenta de forma monótona cuando se crea. La regla evita que los cambios en el orden en que se ejecutan las transacciones generen diferentes salidas: Las salidas siempre serán consistentes con el orden lógico predefinido.

Por ejemplo, considere una base de datos con 3 variables (A, B, C) y dos operaciones atómicas C := A (T1) y C := B (T2). Cada transacción implica una lectura (A o B) y una escritura (C). El único conflicto entre estas transacciones es la escritura en C. El siguiente es un programa posible para las operaciones de estas transacciones:

Si (cuando se crean las transacciones) a T1 se le asigna una marca de tiempo que precede a T2 (es decir, de acuerdo con el orden lógico, T1 viene primero), entonces solo debería estar visible la escritura de T2. Sin embargo, si la escritura de T1 se ejecuta después de la escritura de T2, entonces necesitamos una forma de detectar esto y descartar la escritura.

Un enfoque práctico para esto es etiquetar cada valor con una marca de tiempo de escritura (WTS) que indica la marca de tiempo de la última transacción para modificar el valor. Hacer cumplir la regla de escritura de Thomas solo requiere verificar si la marca de tiempo de escritura del objeto es mayor que la marca de tiempo de la transacción que realiza una escritura. Si es así, la escritura se descarta.