托马斯写入规则
托马斯(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多重粒度
关注微信小程序
扫描二维码
程序员编程王