DBMS时间戳顺序协议
精华
小牛编辑
219浏览
2023-03-14
DBMS时间戳顺序协议-
- 时间戳顺序协议用于根据事务的时间戳对事务进行排序。 事务顺序只不过是事务创建的升序。
- 旧事务的优先级高于它首先执行的原因。 要确定事务的时间戳,此协议使用系统时间或逻辑计数器。
- 基于锁的协议用于在执行时管理事务之间的冲突对之间的顺序。 但是,基于时间戳的协议会在创建事务后立即开始工作。
- 假设有两个事务T1和T2。 假设事务T1已经以007次进入系统并且事务T2已经以009次进入系统。 T1具有更高的优先级,因此它首先执行,因为它首先进入系统。
- 时间戳顺序协议还保持对数据的最后“读取”和“写入”操作的时间戳。
基本时间戳排序协议的工作原理如下:
每当事务Ti发出Read(X)操作时,请检查以下条件:
- 如果
W_TS(X)> TS(Ti)
则拒绝该操作。 - 如果
W_TS(X)<= TS(Ti)
则执行操作。 - 更新所有数据项的时间戳。
- 如果
每当事务Ti发出Write(X)操作时,请检查以下条件:
- 如果
TS(Ti)<R_TS(X)
则操作被拒绝。 - 如果
TS(Ti)<W_TS(X)
则拒绝操作并且回滚Ti,否则执行操作。
其中, TS(TI)
表示事务Ti的时间戳。R_TS(X)
表示数据项X的读时间戳。W_TS(X)
表示数据项X的写时间戳。
- 如果
TO协议的优点和缺点:
- TO协议确保可串行化,因为优先级图如下:
- TS协议确保免于死锁,这意味着没有事务等待。
- 但是时间表可能无法恢复,甚至可能无法级联。