Thomas write rule
# Thomas write rule

In informatica, nel campo dei database, la Thomas write rule è una regola relativa al controllo della concorrenza basata su timestamp.

Data una marca temporale o timestamp su una transazione T, che definiamo TS(T) e un "write timestamp" o timestamp di scrittura su un oggetto O, definito come WTS(O):

La regola dice che se TS(T) < WTS(O), la corrente azione di scrittura è stata resa obsoleta dalla più recente operazione di scrittura di O, che segue la scrittura corrente basandosi sull'ordinamento del Timestamp.

Dato uno schedule non-conflict serializable:

    ${\begin{bmatrix}T1&T2\\R(A)&\\&W(A)\\&Com.\\W(A)&\\Com.&\end{bmatrix}}$

Ovvero: T1:R(A), T2:W(A), T2 Commit, T1: W(A), T1 Commit.

La Thomas Write Rule si basa sul fatto che la scrittura fatta da T1 su A non è mai vista da alcuna transazione e afferma quindi che lo schedule sopra è equivalente allo schedule riportato in seguito in cui T2 occorre strettamente dopo T1, e che perciò la scrittura di T1 può essere ignorata:

    ${\begin{bmatrix}T1&T2\\R(A)&\\W(A)&\\Com.&\\&W(A)\\&Com.\end{bmatrix}}$

Ovvero: T1:R(A), T1: W(A), T1 Commit, T2:W(A), T2 Commit.

Questo schedule ha lo stesso effetto del primo ed è conflict serializzabile.

