第09章事务管理与并发控制资料.ppt

避免死锁 相同顺序法 所有的用户程序约定都按相同的顺序来封锁表 一次封锁法 为了完成一个事务,一次性封锁所需要的全部表 两阶段封锁协议 所有事务都必须将对数据的封锁分为封锁和释放两个阶段 避免死锁的封锁 两阶段封锁协议 第一阶段称为扩展阶段,这一阶段获得各种类型的封锁,但是不能释放任何封锁。 第二阶段称为收缩阶段,这一阶段释放各种类型的封锁,一旦开始释放封锁,则不能再申请任何类型的封锁。 注意,两阶段封锁协议和一次封锁法的异同之处。一次封锁法遵守两阶段封锁协议;但是两阶段封锁协议并不要求一次封锁所有需要封锁的数据。两阶段封锁协议仍有可能发生死锁。 举例: 遵守两阶段锁协议 LOCK A … LOCK B … LOCK C … UNLOCK B … UNLOCK A … UNLOCK C 没遵守两阶段锁协议 LOCK A … UNLOCK A… LOCK B … LOCK C … UNLOCK C … UNLOCK B 发现死锁 超时法 即一个事务在等待的时间超过了规定的时限后就认为发生了死锁。 这种方法非常不可靠,如果设置的等待时限长,则不能及时发现死锁;如果设置的等待时限短,则可能会将没有发生死锁的事务误判为死锁。 发现死锁 等待图法 即通过有向图判定事务是否是可串行化的,如果是则说明没有发生死锁,否则说明发生了死锁。 具

文档评论(0)

1亿VIP精品文档

相关文档