我的理解是冲突可序列化意味着可序列化。我不确定这有什么不同。可序列化是否意味着冲突可序列化?
发布于 2017-05-30 00:00:48
冲突可序列化是可序列化的子集,所以仅仅因为调度是冲突可序列化就意味着它是可序列化的。
请参阅cow书籍数据库管理系统第2版,第19.1.1章,P541
每个冲突的可序列化调度都是可序列化的。
可序列化但不冲突的可序列化调度是
T1 : R(A) W(A) C
T2 : W(A) C
T3 : W(A) C这不是冲突可序列化的(按优先级图),但等同于可序列化的调度
T1 T2 T3因为T3盲写入两个调度中的输出。
发布于 2013-12-26 13:33:28
serializability.的子集是Conflict serializability如果调度是冲突可序列化的,则暗示此调度是可序列化的。
与仅仅是可序列化的相比,在计算上更容易确定某些东西是否是冲突可序列化的。只需构造一个precedence graph。如果图是非循环的,则此调度是冲突的-等价于图的路径所描述的某些串行调度。
想象一下事务A、B和C都写到同一页上。A写入,然后是B,然后是C,然后是A。没有冲突等价的可序列化调度。A必须先走,因为B和C在A之后有冲突。但是A也必须在最后走,因为B和C在A之前有冲突。因此图中的循环。
但是,仅仅因为它不是冲突可序列化的并不意味着它是不可序列化的。例如,如果A的最后一次写入与C的写入完全相同,那么ABC将是一个与原始调度等价的串行调度,因为最后一次写入无关紧要。
发布于 2014-01-13 17:10:15
冲突可序列化是视图可序列化的子集。“调度可以是冲突可序列化的,但不是视图可序列化的(就像在盲写的情况下一样)。
https://stackoverflow.com/questions/20529800
复制相似问题