【数据库系统原理复习】两阶段锁定协议 2PL/ strict 2PL/ rigorous 2PL

发布时间:2024年01月04日

两阶段锁定协议 2PL,全称Two-Phase Locking Protocol。这个协议可以保证冲突可串行化 conflict serializability 但是不可以保证避免死锁 freedom from deadlock

1. 2PL

两阶段锁定要求:对于每一个事务Transaction,分为两个阶段

第一阶段:增长阶段(Growing Phase)

在这个阶段,事务可以获得锁定,但不能释放锁定。事务可以继续请求并获得锁定,直到它达到了其锁定点(Lock Point),也就是事务获得最后一个锁定的时间点。一旦事务进入第二阶段,它就不能再获得新的锁定。

第二阶段:缩减阶段(Shrinking Phase)

在这个阶段,事务可以释放已经持有的锁定,但不能再获取新的锁定。这个阶段的目的是确保事务不会在已经进入第二阶段后再次请求锁定

2.?strict 2PL

在两阶段锁定协议中,存在级联回滚(Cascading Rollback)的可能性。为了避免级联回滚,可以采用一种更严格的协议,称为“严格两阶段锁定”(Strict Two-Phase Locking)。在严格两阶段锁定中,事务必须保持其所有独占锁(Exclusive Locks)(lock_X)直到事务提交或回滚。

3.?rigorous 2PL

此外,还有一个更严格的两阶段锁定协议,称为 rigorous Two-Phase Locking。在这个协议中,事务必须保持其所有独占锁(lock_X)以及共享锁(lock_S)直到事务提交或回滚。

4. 一个例子

文章来源:https://blog.csdn.net/weixin_63160898/article/details/135373890
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。