[发明专利]一种基于边追踪的分布式系统死锁检测方法有效
申请号: | 201610949911.8 | 申请日: | 2016-10-26 |
公开(公告)号: | CN106557371B | 公开(公告)日: | 2019-09-10 |
发明(设计)人: | 卢苇;虞程凯;蔡圆媛;车啸平;邢薇薇;杨永 | 申请(专利权)人: | 北京交通大学 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京正理专利代理有限公司 11257 | 代理人: | 付生辉;段俊峰 |
地址: | 100044*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于边追踪的分布式系统死锁检测方法,包括如下步骤:S1、分布式系统中的各节点根据自身的状态初步判断分布式系统中是否已经发生死锁,初步判断发生死锁的节点作为死锁检测的发起节点开始执行死锁检测;S2、发起节点向其自身所依赖的节点发送探针消息;S3、收到探针消息的非发起节点将探针消息传递给其自身所依赖的节点;S4、在非发起节点收到所有来自依赖于自身的节点的探针消息之后,非发起节点将其自身依赖消息发送给发起节点;S5、发起节点收到所有非发起节点的依赖消息之后根据各节点之间的依赖关系判断是否发生死锁。本发明相比于现有的方法可以减少死锁检测过程中消息传递的数量。 | ||
搜索关键词: | 一种 基于 追踪 分布式 系统 死锁 检测 方法 | ||
【主权项】:
1.一种基于边追踪的分布式系统死锁检测方法,其特征在于,该方法包括如下步骤:S1、分布式系统中的各节点根据自身的状态初步判断分布式系统中是否已经发生死锁,初步判断发生死锁的节点作为死锁检测的发起节点开始执行死锁检测;S2、发起节点向其自身所依赖的节点发送探针消息;S3、收到探针消息的非发起节点将探针消息传递给其自身所依赖的节点;S4、在非发起节点收到所有来自依赖于其自身的节点的探针消息之后,非发起节点将其自身依赖消息发送给发起节点;S5、发起节点收到所有非发起节点的依赖消息之后根据各节点之间的依赖关系判断是否发生死锁;步骤S1进一步包括如下子步骤:S1.1、分布式系统中的所有节点分别分配一个唯一的且大于0的节点id,设置各节点自身的优先级初始值,设置各节点自身的权值为0;S1.2、各节点根据自身的状态初步判断分布式系统中是否已经发生死锁,初步判断发生死锁的节点作为死锁检测的发起节点开始执行死锁检测;步骤S2进一步包括如下子步骤:S2.1、发起节点根据当前的系统时间和其自身的id,生成一个大于优先级初始值的优先级值,并赋给探针消息;S2.2、发起节点初始化并设置一个权值1,将权值1根据其自身所依赖的节点数平均分配并赋给每一个探针消息;S2.3、发起节点向其自身所依赖的节点发送携带权值和优先级值的探针消息;步骤S3进一步包括如下子步骤:S3.1、收到探针消息的非发起节点比较探针消息中优先级值和自身的优先级值:如果探针消息中的优先级值小于非发起节点自身的优先级值,则非发起节点丢弃探针消息;如果探针消息中的优先级值大于非发起节点自身的优先级值,则非发起节点将自身的优先级值更新为探针消息中的优先级值,之后转入步骤S3.2;S3.2、非发起节点读取收到的探针消息中的权值,设置本地用于统计探针消息条数的计数器值为1;S3.3、令n表示非发起节点所依赖的节点总数,非发起节点将收到的探针消息中的权值中的1/(n+1)取出作为该节点自身的权值;S3.4、非发起节点将剩余的权值根据其自身所依赖的节点数平均分配并赋给每一个待其传递的探针消息;S3.5、非发起节点向其依赖的节点传递携带权值和优先级值的探针消息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610949911.8/,转载请声明来源钻瓜专利网。