DBMS Thomas的写入规则

Thomas Write Rule为协议提供了可序列化顺序的保证。它改进了基本时间戳排序算法。
Thomas的基本写入规则如下:

  • 如果TS(T)< R_TS(X), 则事务T中止并回滚, 并且操作被拒绝。
  • 如果TS(T)< W_TS(X), 则不要执行事务的W_item(X)操作并继续处理。
  • 如果条件1和条件2均不发生, 则允许事务Ti执行WRITE操作并将W_TS(X)设置为TS(T)。
如果我们使用托马斯写入规则, 那么可以允许一些可序列化的时间表, 该时间表与可序列化的冲突不冲突, 如给定图中的时间表所示:
DBMS Thomas的写入规则

文章图片
图:没有冲突的可序列化时间表
在上图中, T1读取同一数据项并在T1写入之前。此计划不会与可序列化冲突。
托马斯写入规则检查T2的写入不会被任何事务看到。如果删除事务T2中的写操作, 则可以获得冲突可序列化的调度, 如下图所示。
DBMS Thomas的写入规则

文章图片
【DBMS Thomas的写入规则】图:可序列化的冲突时间表

    推荐阅读