托马斯写入规则

托马斯(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多重粒度

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程