[发明专利]基于探测消息传递的分布式数据库事务死锁检测解锁方法有效
| 申请号: | 202210484065.2 | 申请日: | 2022-05-06 |
| 公开(公告)号: | CN114579669B | 公开(公告)日: | 2022-08-30 |
| 发明(设计)人: | 董建国;吴明远;赵健 | 申请(专利权)人: | 天津南大通用数据技术股份有限公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/21;G06F9/52;G06F9/54 |
| 代理公司: | 天津企兴智财知识产权代理有限公司 12226 | 代理人: | 安孔川 |
| 地址: | 300384 天津市滨海新区华*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 探测 消息 传递 分布式 数据库 事务 死锁 检测 解锁 方法 | ||
本发明提供了一种基于探测消息传递的分布式数据库事务死锁检测解锁方法,第一事务连接的N1P1进程需要使用的数据库资源被N2P2进程持有时,N1P1进程等待第二事务,同时N1P1进程给N2P2进程发送探测消息;若N2P2进程在等待第三事务,则将探测消息发送给N3P3进程,若N3P3进程在等待第四事务,则将探测消息发送给N4P4进程,依次类推,直至探测消息发送至NKPK进程,NKPK进程若在等待第一事务,N1P1进程收到流转回来之前发出的探测信息,则检测出全局死锁。本发明所述的基于探测消息传递的分布式数据库事务死锁检测解锁方法,死锁检测消息只沿着相关等待方向传递,不存在单一集中式检测协调者节点进程,对其它进程影响较小,系统开销小,检测时间短。
技术领域
本发明属于分布式数据库领域,尤其是涉及一种基于探测消息传递的分布式数据库事务死锁检测解锁方法。
背景技术
高并发分布式数据库系统运行过程中,经常出现多个并行运行的事务对同一个数据库资源(表、表记录等)的互斥并发访问情况,就会出现事务T1因请求被事务T2占用的资源R1处于无法继续运行的情况,同时事务T2申请被事务T1占用的资源R2也无法运行的情况,出现这种多个事务相互等待而无法执行的情况,就是出现了死锁。为了让事务得以继续运行,就需要分布式数据库系统提供死锁快速检测和解除技术。
发明内容
有鉴于此,本发明旨在提出一种基于探测消息传递的分布式数据库事务死锁检测解锁方法,以解决多个并行运行的事务对同一个数据库资源的互斥并发访问时出现死锁的情况。
为达到上述目的,本发明的技术方案是这样实现的:
基于探测消息传递的分布式数据库事务死锁检测解锁方法,具体方法如下:
S1、K个事务要访问数据库,通过TCP连接随机连接到分布式数据库的多个协调者节点上,协调者节点为每个事务的TCP连接分配一个进程来处理该事务发送的执行SQL请求,第一事务连接的节点一进程一,记为N1P1,第二事务连接的节点二进程二,记为N2P2,依次类推,第K事务连接的节点K进程K,记为NKPK;
S2、第一事务连接的N1P1进程需要使用的数据库资源被N2P2进程持有时,N1P1进程等待第二事务,同时N1P1进程给N2P2进程发送探测消息,N2P2进程接收到探测消息时,若N2P2进程没有等待任何事务,则丢弃探测消息;
若N2P2进程在等待第三事务,则将探测消息发送给N3P3进程,若N3P3进程没有等待任何事务,则丢弃探测消息,若N3P3进程在等待第四事务,则将探测消息发送给N4P4进程,依次类推,直至探测消息发送至NKPK进程,NKPK进程若在等待第一事务,N1P1进程收到流转回来之前发出的探测信息,则检测出全局死锁;
S3、若全局死锁,则释放第一事务的N1P1进程持有数据库资源,进行第一事务回滚,N1P1释放数据库资源后,以便其它事务能获取到资源,执行得以继续;且第一事务客户端收到全局死锁通知消息后,可以重新执行事务,完成第一事务。
进一步的,步骤S2中,N1P1进程需要使用的数据库资源被N2P2进程持有,确认方法如下:
N1P1进程执行第一事务命令需要占用数据库资源一时,申请数据库资源一的互斥锁,判断数据库资源一的占用情况,若数据库资源一被N2P2进程持有,则N1P1进程需要使用的数据库资源被N2P2进程持有。
进一步的,步骤S2中,N2P2进程在等待第三事务,具体确认方法:
第二事务的N2P2进程需要使用的数据库资源被第三事务的N3P3进程持有时,则N2P2进程等待第三事务。
进一步的,所述探测消息为字符串,所述探测消息定义格式方法为,被阻塞调者进程所在的协调者节点名称与被阻塞进程的进程号用#字符拼接,记为,被阻塞调者进程所在的协调者节点名称#被阻塞进程的进程号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津南大通用数据技术股份有限公司,未经天津南大通用数据技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210484065.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:提供以用户为中心的应用
- 下一篇:一种盐酸达泊西汀口腔速溶膜及其制备方法





