【技术实现步骤摘要】
一种死锁检测方法、节点及系统
本专利技术涉及数据库领域,尤其涉及一种死锁检测方法、节点及系统。
技术介绍
在数据库系统中,多个事务并发执行时,系统为各个事务分配资源时,会有一定几率导致两个或两个以上的事务之间出现互相等待而停滞不前的现象,这就是死锁。发生死锁会导致系统效率低下,甚至造成系统故障。为了解决死锁现象,数据库系统通常会采取必要的死锁检测和处理方法。无论是集中式数据系统或是分级式数据系统,多个计算节点可以以一个控制节点为中心,由控制节点负责其管理下的多个计算节点的死锁检测。具体的死锁检测方法为:每个计算节点定时将本地多个事务所访问的资源之间的依赖关系发送给控制节点,这样控制节点便可以获知其管理下每个计算节点的每个事务所访问的资源之间的依赖关系,从而可以根据这些依赖关系构建资源等待图,已判断运行在各计算节点上的多个事务之间是否存在相互等待的现象,即是否存在死锁。其中,各计算节点向控制节点发送本地多个事务所访问的资源之间的依赖关系的时间间隔越小,已发生的死锁被检测出来的速度越快,但是需要更多的通信开销。在实现上述死锁检测的过程中,由于每个计算节点都要定期向控制节点发送本地多个事务所访问的资源之间的依赖关系,控制节点需要维护每个计算节点的每个事务所访问的资源之间的依赖关系并进行资源等待图的构建,这样不仅计算节点与控制节点之间的通信开销较大,控制节点进行死锁检测的负荷也过高。尤其对于系统规模庞大、业务节点数量较多的数据库系统,控制节点通常不能再执行业务操作,而不得不专职承担死锁检测的工作。
技术实现思路
本专利技术的实施例提供一种死锁检测方法、节点及系统,可以 ...
【技术保护点】
一种死锁检测方法,其特征在于,包括:第一计算节点根据运行在所述第一计算节点上的多个事务所访问的资源之间的依赖关系,进行所述多个事务之间的本地死锁检测;当本地死锁检测的结果表明所述多个事务之间不存在死锁时,向控制节点发送全局死锁检测请求,以使所述控制节点根据多个计算节点所访问的资源之间的依赖关系进行所述多个计算节点之间的全局死锁检测。
【技术特征摘要】
1.一种死锁检测方法,其特征在于,包括:第一计算节点根据运行在所述第一计算节点上的多个事务所访问的资源之间的依赖关系,进行所述多个事务之间的本地死锁检测;当本地死锁检测的结果表明所述多个事务之间不存在死锁时,向控制节点发送全局死锁检测请求,以使所述控制节点根据多个计算节点所访问的资源之间的依赖关系进行所述多个计算节点之间的全局死锁检测。2.根据权利要求1所述的死锁检测方法,其特征在于,在所述根据运行在所述第一计算节点上的多个事务所访问的资源之间的依赖关系,进行所述多个事务之间的本地死锁检测之前,该方法还包括:启动第一时钟,对所述第一计算节点上运行的多个事务进行第一次超时检测;当第一次超时检测的结果表明所述第一计算节点上运行的一个或多个事务等待资源超时,执行所述根据多个事务所访问的资源之间的依赖关系,进行所述第一计算节点上运行的多个事务之间的本地死锁检测的步骤。3.根据权利要求2所述的死锁检测方法,其特征在于,在向控制节点发送全局死锁检测请求之后,该方法还包括:当所述全局死锁检测结果表明所述多个计算节点之间存在死锁时,接收所述控制节点发送的第二次超时检测指示消息;启动第二时钟,对所述第一计算节点上运行的多个事务进行第二次超时检测;若第二次超时检测的结果表明所述第一计算节点上运行的一个或多个事务等待超时,则终止该等待超时的事务;若第二次超时检测的结果表明所述第一计算节点上运行的多个事务在等待超时前已被执行,则确定系统内不存在死锁。4.根据权利要求3所述的死锁检测方法,其特征在于,所述控制节点发送的第二次超时检测指示消息中包含所述第二时钟的配置值;其中,所述第二时钟的配置值由所述控制节点根据所述多个计算节点的消息传输时延和/或事物处理时长确定。5.根据权利要求1所述的死锁检测方法,其特征在于,在向控制节点发送全局死锁检测请求之后,该方法还包括:接收所述控制节点反馈的全局死锁检测结果。6.一种死锁检测方法,其特征在于,包括:控制节点接收第一计算节点发送的全局死锁检测请求;其中,所述全局死锁检测请求由所述第一计算节点在本地死锁检测的结果表明运行在所述第一计算节点上的多个事务之间不存在死锁时进行发送;根据多个计算节点所访问的资源之间的依赖关系进行所述多个计算节点之间的全局死锁检测。7.根据权利要求6所述的死锁检测方法,其特征在于,在根据多个计算节点所访问的资源之间的依赖关系进行所述多个计算节点之间的全局死锁检测之后,该方法还包括:当全局死锁检测结果表明所述多个计算节点之间存在死锁时,向所述第一计算节点发送的第二次超时检测指示消息;其中,所述第二次超时检测指示消息用于指示所述第一计算节点启动第二时钟,对多个事务进行第二次超时检测。8.根据权利要求7所述的死锁检测方法,其特征在于,在向所述第一计算节点发送的第二次超时检测指示消息之前,该方法还包括:根据所述多个计算节点的消息传输时延和/或事物处理时长确定第二时钟的配置值;其中,所述第二时钟的配置值包含在所述第二次超时检测指示消息中发送给所述第一计算节点。9.根据权利要求6所述的死锁检测方法,其特征在于,在根据多个计算节点所访问的资源之间的依赖关系进行所述多个计算节点之间的全局死锁检测之后,该方法还包括:向所述第一计算节点反馈全局死锁检测结果。10.一种计算节点,作为第一计算节点,其特征在于,所述计算节点包括:本地检测单元,用于根据运行在所述第一计算节点上的多个事务所访问的资源之间的依赖关系,进行所述第一计算节点上运行的多个事务之间的本地死锁检测;请求发送单元,用于当所述本地检测单元执行的本地死锁检测的结果表明所述第一计算节点上运行的多个事务之间不存在死锁时,向控制节点发送全局死锁检测请求,以使所述控制节点根据多个计算节点所访问的资源之间的依赖关系进行所述多个计...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。