[发明专利]分布式死锁检测方法及装置、计算机设备及可读介质在审
申请号: | 201910600116.1 | 申请日: | 2019-07-04 |
公开(公告)号: | CN110442459A | 公开(公告)日: | 2019-11-12 |
发明(设计)人: | 赵德伟;周力 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 田宏宾 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 死锁 分布式事务 死锁检测 依赖关系 计算机设备 局部数据库 可读介质 全局事务 管理器 分布式数据库系统 分布式数据库 并发处理 快速检测 有效检测 超时 解锁 阻塞 发送 | ||
1.一种分布式死锁检测方法,其特征在于,所述方法包括:
在对应的局部数据库的本地获取分布式事务之间的依赖关系;
向全局事务管理器发送所述分布式事务之间的依赖关系,以供所述全局事务管理器根据接收到的各局部数据库侧的所述分布式事务之间的依赖关系,进行死锁检测。
2.根据权利要求1所述的方法,其特征在于,在对应的局部数据库的本地获取分布式事务之间的依赖关系,包括:
建立本地的锁等待关系列表;
从所述锁等待关系列表中筛选出所述分布式事务之间的依赖关系。
3.根据权利要求2所述的方法,其特征在于,建立本地的锁等待关系列表,包括:
搜索本地的各第一锁依赖关系;
基于各所述第一锁依赖关系,挖掘潜在的第二锁依赖关系;
将各所述第一锁依赖关系和所述第二锁依赖关系,存储一关系列表中,生成所述锁等待关系列表。
4.根据权利要求1所述的方法,其特征在于,在对应的局部数据库的本地获取分布式事务之间的依赖关系,包括:
搜索本地的各锁依赖关系;
基于各所述锁依赖关系,建立长链表;所述长链表中包括各所述锁依赖关系对应的节点标识以及各所述锁依赖关系的依赖方向;
从所述长链表中挖掘出所述分布式事务之间的依赖关系。
5.根据权利要求4所述的方法,其特征在于,基于各所述锁依赖关系,建立长链表,包括:
基于各所述锁依赖关系,建立对应的片段链表,其中所述片段链表中包括对应的所述锁依赖关系中的两个节点标识,且在所述两个节点标识之间标识有对应的所述锁依赖关系的依赖方向;
将各所述片段链表基于节点标识进行合并,生成所述长链表。
6.一种分布式死锁检测方法,其特征在于,所述方法包括:
接收各局部数据库侧的所述分布式事务之间的依赖关系;各所述分布式事务之间的依赖关系由对应的所述局部数据库在本地获取;
根据各所述局部数据库侧的所述分布式事务之间的依赖关系,进行死锁检测。
7.根据权利要求6所述的方法,其特征在于,根据各所述局部数据库发送的所述分布式事务之间的依赖关系,进行死锁检测,包括:
根据各所述局部数据库发送的所述分布式事务之间的依赖关系,建立分布式锁有向图;
基于所述分布式锁有向图,进行死锁检测。
8.根据权利要求7所述的方法,其特征在于,基于所述分布式锁有向图,进行死锁检测,包括:
遍历所述分布式锁有向图,寻找是否存在环路;
若存在,确定存在分布式死锁;
进一步地,检测到所述分布式死锁之后,所述方法还包括:
从所述环路中获取一个牺牲事务节点;
通知各所述局部数据库回滚对应的所述牺牲事务,进行解锁处理。
9.一种分布式死锁检测装置,其特征在于,所述装置包括:
获取模块,用于在对应的局部数据库的本地获取分布式事务之间的依赖关系;
发送模块,用于向全局事务管理器发送所述分布式事务之间的依赖关系,以供所述全局事务管理器根据接收到的各局部数据库侧的所述分布式事务之间的依赖关系,进行死锁检测。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,用于:
建立本地的锁等待关系列表;
从所述锁等待关系列表中筛选出所述分布式事务之间的依赖关系。
11.根据权利要求10所述的装置,其特征在于,所述获取模块,用于:
搜索本地的各第一锁依赖关系;
基于各所述第一锁依赖关系,挖掘潜在的第二锁依赖关系;
将各所述第一锁依赖关系和所述第二锁依赖关系,存储一关系列表中,生成所述锁等待关系列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910600116.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:缩放计算群集
- 下一篇:在虚拟现实环境中复制和粘贴