- 时间戳排序协议用于根据事务的时间戳对事务进行排序。事务的顺序不过是事务创建的升序。
- 较旧事务的优先级较高, 这就是它首先执行的原因。为了确定事务的时间戳, 此协议使用系统时间或逻辑计数器。
- 基于锁的协议用于在执行时管理事务之间冲突对之间的顺序。但是, 基于时间戳的协议在创建事务后立即开始工作。
- 假设有两个事务T1和T2。假设事务T1在007次进入系统, 事务T2在009次进入系统。 T1具有更高的优先级, 因此它在首先进入系统时首先执行。
- 时间戳排序协议还维护对数据的最后“读”和“写”操作的时间戳。
1.每当事务Ti发出读取(X)操作时, 请检查以下条件:
- 如果W_TS(X)> TS(Ti), 则拒绝该操作。
- 如果W_TS(X)< = TS(Ti), 则执行该操作。
- 所有数据项的时间戳都会更新。
- 如果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协议可确保可串行性:
文章图片
- TS协议可确保避免死锁, 这意味着没有事务等待。
- 但是时间表可能无法恢复, 甚至可能没有级联。
推荐阅读
- DBMS三种架构架构
- DBMS Thomas的写入规则
- DBMS第三范式(3NF)
- DBMS可串行性测试
- DBMS静态哈希解释
- DBMS事务状态介绍
- DBMS SQL中的视图
- DBMS SQL更新语句
- DBMS SQL表