我已经浏览了一些消息来源,但最近遇到一个消息,即严格的2PL中不允许使用共享读锁。这是真的?另外请确认保守和基本2PL允许共享?
答案 0 :(得分:2)
Lock-Compatiability矩阵回答您的问题
Lock-Type Read-Lock write-Lock
Read-Lock X
Write-Lock X X
这里X表示两种类型的锁是不兼容的,空白表示该锁是兼容的。只有在该项上保持共享锁时才允许共享锁(读锁)。
关于严格和严格的2PL,差异仅在于与基本2PL相比发布锁定的顺序。
在严格的2PL中,只有在commit / abort opeartion之后才会释放所有写锁。
在严格的2PL中,只有在提交/中止操作后才会释放所有锁。