托马斯(Thomas)写入规则为协议提供了可序列化顺序的保证。 它改进了基本时间戳排序算法。
基本的托马斯写规则如下:
- 如果TS(T)< R_TS(X),则事务T被中止并回滚,并且操作被拒绝。
 如果TS(T)< W_TS(X)则不执行事务的W_item(X)操作并继续处理。
 如果条件1和条件2都不发生,则允许通过事务Ti执行WRITE操作并将W_TS(X)设置为TS(T)。
如果使用托马斯写规则,那么可以允许一些可序列化的时间表,如同给定图中的时间表所示,不会发生序列化冲突:

图:不可冲突序列化的可序列化调度
在上图中,T1读取并在T1写入相同数据项之前。此调度不会与可序列化冲突。
托马斯编写规则检查,任何事务都不会看到T2的写入。 如果删除事务T2中的写操作,则可以获得冲突可序列化的调度,如下图所示。
						上一篇:
								DBMS基于验证的协议
												下一篇:
								DBMS多重粒度
												
						
						
					
					
					