📜  DBMS中时间戳协议和Thomos写入规则的主要区别

📅  最后修改于: 2021-09-27 22:46:44             🧑  作者: Mango

时间戳协议:
时间戳协议确保系统中的每个事务预先具有与每个事务相关联的时间戳,该时间戳仅有助于在该时间在系统中执行的事务。

在系统中同时运行大量并发进程的情况下,它最有用。因此,它在 ts 计数器的帮助下为系统中的每个事务分配一个唯一的时间戳。

ts计数器:
ts 计数器是用于时间戳协议的计数器。当系统中发生每个提交操作时,它将其值增加 1。如果一个交易 Ti 已经被分配了时间戳 TS[Ti],并且一个新的交易进入系统,那么它必须保持一个条件 TS[Ti]

托马斯写规则:
它是时间戳排序协议的修改版本。假设事务 Ti 发出 write(Q):

  1. 如果 TS[Ti] < R-TS(Q),则先前需要 Ti 产生的 Q 值,并且假定该值永远不会产生。因此系统拒绝写入操作并回滚 Ti。
  2. 如果 TS[Ti]
  3. 否则,系统执行写操作并将 w-TS(Q) 设置为 TS(Ti)。

时间戳协议和 Thomas 写规则之间的区别是:
这两者之间的唯一区别在于第二条规则,在时间戳排序协议中,如果 Ti 发出写入 (Q) 和 TS[Ti] < W-ts(Q),则 ti 被回滚。但是,在 Thomas 写入规则中,如果 TS(Ti) =R timestamp(Q),则可以忽略写入操作。