53分布式数据库中的死锁处理.ppt

53分布式数据库中的死锁处理

5.3分布式数据库中的死锁处理 5.3.1全局死锁与等待图 1.活锁,死锁和全局死锁 活锁:某个事务处于永远等待状态,得不到执行的机会. 解决方法:“先来者先执行”就是简单的排队方式. 死锁:该集合中的每个事务都在等待该集合中另外一个事务释放它所需要的数据项上持有的锁,它才能继续执行下去,结果任何一个事务都无法继续执行 在分布式数据库中,采用封锁机制,系统有可能发生全局死锁.全局死锁涉及两个或多个站点的死锁. 图5.14 分布式数据库中的数据冗余也会增加更新数据时引起死锁的机会.因为更新时需要对全部副本加拒绝锁,有副本的每个站点上都有可能等待另一个事务释放锁,但每个事务只有它全部完成后才能释放拒绝锁,因此造成全局死锁. 图5.15 2 等待图(WFC) 等待图是一种用来表示事务之间相互等待关系的有向图,其中指出哪一个事务在等待其他哪个或哪些事务释放锁. 图中节点表示事务,边表示等待关系,箭头方向就是等待方向. 如下图是5.15的等待图 图5.16 全局等待图(GWFC): 图5.17 5.3.2死锁的预防方法 思想:当有发生死锁危险时,就终止并重新启动其中一个事务或让该事务等待,但如果允许有等待的话,则决不可能发生死锁. 因为这种方法不会发生死锁,所以不需要进行死锁的检测和恢复. 死锁预防是这样进行的:形成死锁的原因是多个事务并发执行,互相等待另一事务所持有的锁,且形成等待回路引

文档评论(0)

1亿VIP精品文档

相关文档