Regla de escritura de Thomas

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Regla en el control de concurrencia basado en tiempos

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 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 escritura ya que la más reciente eventualmente la sobrescribirá.

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:

[T1T2Read()A)Read()B)Write()C)Write()C)CommitCommit]⟺ ⟺ [T1T2Read()A)Read()B)Write()C)CommitCommit]{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}

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 la escritura de T2 debe ser visible. 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.

En el ejemplo anterior, si llamamos a TS(T) la marca de tiempo de la transacción T y a WTS(O) la marca de tiempo de escritura del objeto O, entonces la escritura de T2 establece WTS(C) en TS(T2). Cuando T1 intenta escribir C, ve que TS(T1) < WTS(C), y descarta la escritura. Si una tercera transacción T3 (con TS(T3) > TS(T2)) fuera a escribir en C, obtendría TS(T3) > WTS(C), y se permitiría la escritura.

Contenido relacionado

Instalación de interconexión

Instalación de interconexión: en una red de comunicaciones, uno o más enlaces de comunicaciones que se utilizan para proporcionar un servicio de...

Interceptar

Interceptar puede referirse...

Codigo hagelbarger

En telecomunicaciones, un código Hagelbarger es un código convolucional que permite corregir ráfagas de errores siempre que existan intervalos sin errores...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save