共享/排他锁定方案和严格的两阶段锁定协议

时间:2015-04-16 10:43:41

标签: database concurrency locking

[考试题]给出一个关键:

S: r3(X); r1(Y); w3(Z); w3(X); w1(Z); w1(X); r2(X); w2(Z); w2(Y); r1(X);

以及

T1: r1(Y); w1(Z); w1(X); r1(X); 
T2: r2(X); w2(Z); w2(Y); 
T3: r3(X); w3(Z); w3(X); 

在每次操作后指出哪些锁定存在。我真的不明白它,我需要你的帮助。谢谢。

这就是答案:但我不知道它是如何完成的。

enter image description here

此问题的时间戳排序:

enter image description here

1 个答案:

答案 0 :(得分:1)

注意:这应该是评论,但我没有声誉

我不认为你应该寻求家庭作业的帮助,虽然我可以指出,如果 S 是操作序列(它看起来像是),那么答案是相当的简单明了。

编辑:

在分布式系统:概念与设计第5版(link)的第16章第4节图16.15中,您拥有锁兼容性表。 此外,图16.16包含了执行2PL所需的一切。

对于提交(c1,c2,c3),您只需要查看每个事务的最后一个操作。

因此,首先使用操作和提交事件构建表,然后,对于每个对象(X,Y,Z),通过使用我刚刚给出的引用来确定谁拥有锁。