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