分布式数据库系列-死锁处理

死锁检测

假如我们允许发生死锁并且依赖于死锁检测,那么分布式系统中的主要问题就是如何维护等待图,。处理这个问题的常用技术就是每个站点维护一个局部等待图。。图中的节点描述对应于目前占有或请求该站点上任何局部数据项的所有事务(局部和非局部)。例如下图所示 ,发现T2与T3在两个图都有出现,那么这两个事务在两个站点上都有数据请求。

局部等待图

如果局部等待图存在死锁,那么就已经发生了死锁。另外一个方面,任意的局部等待图都不存在死锁,但是把所有局部锁的图都串联在一起,形成全局等待图
全局等待图

集中式死锁检测(centralized deadlock detection)方法中,系统在单个站点中构造和维护一个全局等待图: 该站点是死锁检测的协调器。由于系统中存在通信延迟,我们必须区分两类等待图。

死锁处理

当管理器发生了全局等待图中有环,会选择一个牺牲者去回滚。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在学习几年编程之后,你会发现所有的问题都没有简单、快捷的解决方案,很多问题都需要权衡和妥协,而本文介绍的就是数据库...
    泰迪的bagwell阅读 4,524评论 0 2
  • 本文由厦门大学计算机系教师林子雨翻译,翻译质量很高,本人只对极少数翻译得不太恰当的地方进行了修改。 【摘要】:Sp...
    Jeffbond阅读 9,382评论 1 42
  • 数据库范式 https://www.zhihu.com/question/24696366 索引 索引可以加快数据...
    EakonZhao阅读 8,514评论 3 23
  • 为什么很多人都喜欢养宠物?因为动物们不会反抗。 那天在路上看见一位年轻的姑娘牵着一大一小两条狗在溜达,其中那条大狗...
    沈姐说说阅读 1,547评论 8 9
  • 今天总是感觉很累,不知道为什么,是住房公积金贷款审批还没通知,还是大舅的离开,还是。。。。。我不知道,我就是累,我...
    马橙澄阅读 1,007评论 0 0