共享/独占锁定方案和严格 two-phase 锁定协议

shared / exclusive locking scheme and strict two-phase locking protocol

[试题]给定一个密钥:

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); 

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

这是答案:但我不知道它是怎么做到的。

这个问题的时间戳排序:

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

我认为你不应该寻求家庭作业方面的帮助,但我可以指出,如果 S 是操作序列(看起来是这样),那么答案很简单。

编辑:

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

commits(c1,c2,c3)只需要看每个事务的最后一个操作即可。

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