时间戳排序协议 声明如果 我 (十) 而W j (十) 那么冲突的操作是R吗 我 (十) 是在W之前处理的 J (十) 当且仅当TS(T) 我 )
Thomas Write规则允许此类操作,是对基本时间戳排序协议的修改。在托马斯写规则用户 忽略过时的书写 .此外,在已经讨论过的所有并发协议中, 对时间表施加并发性 那个 冲突是否可序列化 ,在Thomas Write规则中,最重要的改进是用户可以 通过视图可序列化计划实现并发性 .
首先,让我们说明什么是Thomas Write规则,然后说明它在过去几年中成功地进行了哪些修改和改进 基本协议 .
托马斯写作规则—— 托马斯写的规则不起作用 冲突 可序列化,但通过修改W_项(X)的检查操作拒绝更少的写入操作
- 如果 R_TS(X)>TS(T) ,然后中止并回滚,并拒绝该操作。
- 如果 W_TS(X)>TS(T) ,则不执行写入操作并继续处理。这是一个 过时的或过时的书写 .记住,在Thomas Write规则中,过时的写入被忽略,但遵循基本协议的事务将中止此类事务。
- 如果1或2中的条件均未出现,则仅执行T的W_项(X)操作,并将W_TS(X)设置为TS(T)
过时的写作范例—— Thomas Write规则中的主要更新是忽略过时的写入操作。之所以这样做,是因为时间戳大于TS(T)的某些事务(即TS排序中T之后的事务)已经写入了X的值。因此,从逻辑上来说,用户可以忽略T的写入(X)操作,该操作已过时。让我们通过一个例子来了解这一点:
假设一个用户有一个时间表,其中两个事务 1. 和T 2. 现在 TS(T 2 )
图- 过时书写的例子
因此,在符合第2条的规则中,过时写入被忽略 钕 协议这似乎更符合逻辑,因为用户跳过了重新启动整个事务的不必要过程。该协议只是对基本to协议的修改。
基本协议v/s托马斯书写规则- 假设一个用户在一个计划中有两个事务 1. 和T 2. .现在, TS(T 2. )
基本协议
|
托马斯写法则
|
---|
因此,从上面的列表中可以看出,与基本to协议相比,Thomas Write规则中使用的这种修改。
参考 :数据库系统概念,第五版[Silberschatz,Korth,Sudarshan],第16章