我正在努力了解如何确定时间表是否为可冲突序列化
提前谢谢!
我们可以通过分析从名为序列化图的历史派生的图来确定历史是否是可冲突序列化的。
设CCD_ 1是CCD_ 2上的历史。H
的序列化图(SG),表示为SG(H)
,是一个有向图,其节点是在H
中提交的T
中的事务,并且其边都是T_i to T_j
(i neq j
),使得T_i
的一个操作先于H
0在H
中的一个操作并与之冲突。
SC(H)
中的每个边T_i to T_j
意味着T_i
的操作中至少有一个在T_j
的操作之前并且与之冲突。这表明在与H
等价的任何序列历史中,T_i
应该在T_j
之前。如果我们能找到一个序列历史H_s
,它与T = { T_1, T_2, ldots, T_n }
0中的所有边一致,那么H_s
与H
冲突等价,因此H
是可冲突序列化的。只要SG(H)
是非循环的,我们就可以这样做。
形式上,我们有(冲突-)可串行性理论的基本定理:
历史
H
是可冲突序列化的,当且仅当SG(H)
是非循环的。
注意:有关详细信息,请参阅Philip A.Bernstein等人的第2章第33页。