托馬斯(Thomas)寫入規則為協定提供了可序列化順序的保證。 它改進了基本時間戳排序演算法。
基本的托馬斯寫規則如下:
TS(T)< R_TS(X)
,則事務T被中止並回滾,並且操作被拒絕。TS(T)< W_TS(X)
則不執行事務的W_item(X)
操作並繼續處理。W_TS(X)
設定為TS(T)
。如果使用托馬斯寫規則,那麼可以允許一些可序列化的時間表,如同給定圖中的時間表所示,不會發生序列化衝突:
圖:不可衝突序列化的可序列化排程
在上圖中,T1讀取並在T1寫入相同資料項之前。此排程不會與可序列化衝突。
托馬斯編寫規則檢查,任何事務都不會看到T2的寫入。 如果刪除事務T2中的寫操作,則可以獲得衝突可序列化的排程,如下圖所示。