📜  DBMS时间戳排序协议

📅  最后修改于: 2020-12-12 07:47:00             🧑  作者: Mango

时间戳订购协议

  • 时间戳排序协议用于根据事务的时间戳对事务进行排序。事务的顺序不过是事务创建的升序。
  • 较旧事务的优先级较高,这就是它首先执行的原因。为了确定事务的时间戳,此协议使用系统时间或逻辑计数器。
  • 基于锁的协议用于在执行时管理事务之间冲突对之间的顺序。但是基于时间戳的协议在创建事务后立即开始工作。
  • 假设有两个事务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)
  • 如果TS(Ti)

哪里,

TS(TI)表示事务Ti的时间戳。

R_TS(X)表示数据项X的读取时间戳。

W_TS(X)表示数据项X的写入时间戳。

TO协议的优缺点:

  • 由于优先级图如下,因此TO协议可确保可串行性:

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