DBMS时间戳排序协议

  • 时间戳排序协议用于根据事务的时间戳对事务进行排序。事务的顺序不过是事务创建的升序。
  • 较旧事务的优先级较高, 这就是它首先执行的原因。为了确定事务的时间戳, 此协议使用系统时间或逻辑计数器。
  • 基于锁的协议用于在执行时管理事务之间冲突对之间的顺序。但是, 基于时间戳的协议在创建事务后立即开始工作。
  • 假设有两个事务T1和T2。假设事务T1在007次进入系统, 事务T2在009次进入系统。 T1具有更高的优先级, 因此它在首先进入系统时首先执行。
  • 时间戳排序协议还维护对数据的最后“读”和“写”操作的时间戳。
基本时间戳排序协议的工作方式如下:
1.每当事务Ti发出读取(X)操作时, 请检查以下条件:
  • 如果W_TS(X)> TS(Ti), 则拒绝该操作。
  • 如果W_TS(X)< = TS(Ti), 则执行该操作。
  • 所有数据项的时间戳都会更新。
2.每当事务Ti发出Write(X)操作时, 请检查以下条件:
  • 如果TS(Ti)< R_TS(X), 则拒绝该操作。
  • 如果TS(Ti)< W_TS(X), 则拒绝该操作, 并回滚Ti, 否则执行该操作。
哪里,
TS(TI)表示事务Ti的时间戳。
【DBMS时间戳排序协议】R_TS(X)表示数据项X的读取时间戳。
W_TS(X)表示数据项X的写入时间戳。
TO协议的优缺点
  • 由于优先级图如下, 因此TO协议可确保可串行性:
DBMS时间戳排序协议

文章图片
  • TS协议可确保避免死锁, 这意味着没有事务等待。
  • 但是时间表可能无法恢复, 甚至可能没有级联。

    推荐阅读