保守的2-PL
它也被称为静态2-PL。该协议要求事务在开始执行前,通过预先声明其读集和写集,锁定其访问的所有项目。
如果任何一个预先声明的项目不能被锁定,事务不会锁定任何一个项目,相反,它会等待,直到所有的项目都可以被锁定。
严格的2-PL
这要求除了锁是2-Phase之外,事务持有的所有Exclusive(X)和Shared(S)锁都要释放,直到事务提交之后。
Rigorous比Strict 2-PL更具限制性。
严格的2-PL的实现很容易。
保守2-PL和严格2-PL的区别:
编号 | 保守2-PL | 严格2-PL |
---|---|---|
1 | 一个事务在开始执行之前,必须获得它所需要的所有数据项的锁。 | 一个事务在执行过程中,只要有需要,就可以获得数据项的锁(只在增长阶段)。 |
2 | 保守2-PL没有一个增长阶段。 | 严格2-PL有一个增长阶段。 |
3 | 保守2-PL有一个缩减阶段。 | 严格2-PL没有萎缩阶段。 |
4 | 保守2-PL确保生成的时间表是可序列化的和无死锁的。 | 严格2-PL确保生成的计划是可序列化的、可恢复的和无级联的。 |
5 | 保守2-PL不能确保可恢复和无级联的时间表。 | 严格2-PL不能确保无死锁的时间表。 |
6 | 保守2-PL不确保严格的时间表。 | 严格2-PL确保生成的计划是严格的。 |
7 | 由于难以实现,所以在实践中没有使用。 | 严格2-PL很容易实现,但在实践中使用了它的一个较轻的版本(即严格的2-PL)。 |
8 | 在保守的2-PL中,一个事务可以读取一个未提交的事务的值。 | 在严格的2-PL中,一个事务只能读取已提交事务的值。 |
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:保守和严格的2-PL的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-conservative-and-rigorous-2-pl.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。