一种分布式系统选主策略的优化方法技术方案

技术编号:38544306 阅读:16 留言:0更新日期:2023-08-22 20:54
本发明专利技术提供一种分布式系统选主策略的优化方法,属于分布式计算技术领域,本发明专利技术在健壮性和稳定性方面对分布式系统选主策略进行优化。选主策略通过对节点间网络链接的状态进行判断并采取不通的选主方式,使得分布式系统对于瞬态故障和崩溃性故障的容错提高。对于瞬态故障和崩溃性故障的容错提高。对于瞬态故障和崩溃性故障的容错提高。

【技术实现步骤摘要】
一种分布式系统选主策略的优化方法


[0001]本专利技术涉及分布式计算
,尤其涉及一种分布式系统选主策略的优化方法。

技术介绍

[0002]选主(leader election)是指在分布式系统中,为了协调各节点的行为,需要选举出一个节点作为“领导者”(leader)或“主节点”(master),负责协调和管理整个系统。选主的目的是确保系统能够正确地运行和处理各种请求,同时避免节点之间的竞争和冲突。在选主过程中,通常需要考虑多种因素,如节点的可靠性、网络延迟、负载均衡等,以确保选出的主节点具有良好的性能和可靠性。选主是分布式系统中非常重要的一环,对于保证系统的正确性和性能至关重要。
[0003]分布式系统选主过程能否正常进行依赖于各节点的状态与节点间通信的状态,即各节点能否正常工作以及节点间网络通信是否正常。对于节点而言,通常考虑两种异常状态:瞬态故障和崩溃性故障。这两种异常状态也对应了评判系统可靠性的两个维度:稳定性与健壮性(robust,或译鲁棒性),前者表示系统从瞬态故障中恢复正常状态的能力,而后者表示系统在经历崩溃故障时仍能维持大部分工作正常的能力。一般系统节点采用的稳定化技术能够容忍瞬态故障,但通常不是健壮的,即对于崩溃性故障的容错较差。而健壮算法通常并非设计于解决瞬态故障问题。
[0004]分布式系统选主已经在稳定化和健壮化领域得到了广泛研究。某些系统中,选主也被视为一种故障检测器,即选主失败表示系统存在故障。稳定化算法使得无论系统的初始配置如何,都保证系统在有限时间内达到一个期待的稳定配置,从而避免偏离其预期操作,即使系统总是会收敛到正确的状态。然而稳定化算法不能保证系统在极端的情况下正常工作,例如当系统中某些节点无法正常工作或节点间网络存在问题时。

技术实现思路

[0005]为了解决以上技术问题,本专利技术提供了一种分布式系统选主策略的优化方法。在健壮性和稳定性方面对分布式系统选主策略进行优化。选主策略通过对节点间网络链接的状态进行判断并采取不通的选主方式,使得分布式系统对于瞬态故障和崩溃性故障的容错提高。
[0006]本专利技术的技术方案是:
[0007]一种分布式系统选主策略的优化方法,包括如下步骤:
[0008]1)获取分布式系统的节点与链接状态;
[0009]2)根据网络链接状态,判断系统类型属于s0、s1、s2、s3中的的哪一类;
[0010]3)通过判断结果执行相应的选主策略。
[0011]进一步的,分布式系统的模型如下所述:
[0012]分布式系统中各节点可相互通信,每个节点通过单向链接与其它各节点交换数
据,若系统的节点数为n,则选主过程中任何一节点都需要与n

1个其他节点建立链接,当选主策略只使用了n

1条单向链接,即视此策略为最优解。
[0013]进一步的,节点与网络链接如下所述:
[0014]节点:节点在一轮选主进程中,(1)该节点向某一节点发送消息或从某一节点收到消息或者既没有接受也没有发送消息,接着(2)改变自身的状态。在一轮选主进程中(1)和(2)中间可能存在时延,在此模型内忽略各进程的用时差异,假设一轮选主进程是瞬时发生的。若节点处于崩溃状态,则视为退出选主轮次,一个正常工作的节点能完整执行一轮选主进程。为了防止某一时刻并发的请求数过大(如所有节点均在某一时刻向其它节点发送消息要求选举自己为主节点),需要设定各节点选主进程的执行时刻差异化,即在各节点各自的选主进程前设置不同的等待时间t,使此等待时间的范围为[t
min
,t
max
]。
[0015]链接:节点通过链接向其它节点收发消息,设定一个常量T,若从节点p在t时刻发送一条消息到节点q,节点q在t+T时刻收到此消息,即视此链接为正常状态。
[0016]进一步的,对于分布式系统,根据其链接的状态正常与否,可分为以下几类:
[0017]系统s0:所有链接均不处于正常状态。
[0018]系统s1:至少存在一个节点,其向外发送消息的链路处于正常状态。
[0019]系统s2:至少存在一个节点,其收发消息的链路处于正常状态。
[0020]系统sx:所有链接均处于正常状态。
[0021]再进一步的,
[0022]对于分布式系统定义如下参数:
[0023]在一个系统s内,在某一轮选主进程中,节点p推举的主节点为L
p
,这个被p推举的主节点可以是它自身。一般在选主成功结束后,所有节点N的主节点L
N
应该为同一个节点,将这个最终确定的主节点标识为L
fin

[0024]再进一步的,
[0025]对于系统s3,采取如下分布式系统选主策略:
[0026]任一节点p周期性向其它节点发送心跳消息,除非L
p
=p;
[0027]对于任一L
p
≠p的p,p将会选举从之收到最多心跳信息的节点q为主节点;
[0028]当满足L
p
=p的p节点收到q的心跳消息时,若q<p,L
p
=q,这样使得最终仅存唯一的L
p
=p;
[0029]对于任一L
p

x
的p,每一轮选主迭代后设定随轮次增加的计数器,用于检测是否存在L
p
=q的q节点,当计数值大于一设定值,视为不存在L
p
=q的q节点;
[0030]计时器在每轮选主后增加,通过给定每轮选主的耗时范围,可以确定p在给定时间内的选主轮次。
[0031]对于系统s2,采取如下分布式系统选主策略:
[0032]每个节点p周期性向所有其他节点发送一条为(1,p)的消息;
[0033]当p从q收到一条(k,q)的消息,若k<n

1,除了消息来源q外,p向其它所有节点发送一条(k+1,q)的消息,这样可确保p能够周期性收到其它状态正常的节点发送的消息,如此一来每个状态正常的节点可以输出一个包括所有正常节点的列表,选主进程可在此表的范围内进行。
[0034]对于系统s1,采取如下分布式系统选主策略:
[0035]每个节点p设定一个计数器,记录改节点崩溃的次数,p除了周期性发送心跳消息还会附带发送其崩溃计数;
[0036]每个节点记录一个列表,包含自身与最近从之收到心跳消息的节点,其中记录收到的各节点崩溃次数;
[0037]任一节点p周期性在所记录的列表中选择崩溃次数最少的节点作为主节点;
[0038]选主进程结束后,若节点p的主节点发生变化,p将向之前的主节点发送一条消息使得此节点的崩溃数加1。
[0039]对于系统s0,采取如下分布式系统选主策略:
[0040]在此系统中,节点间所有链路不通,系统处于瘫痪状态,无法执行选主进程。此时将发送本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式系统选主策略的优化方法,其特征在于,包括如下步骤:1)获取分布式系统的节点与链接状态;2)根据网络链接状态,判断系统类型属于哪一类;3)通过判断结果执行相应的选主策略。2.根据权利要求1所述的方法,其特征在于,分布式系统中各节点可相互通信,每个节点通过单向链接与其它各节点交换数据,若系统的节点数为n(n>1),则选主过程中任何一节点都需要与n

1个其他节点建立链接,当选主策略只使用了n

1条单向链接,即视此策略为最优解。3.根据权利要求2所述的方法,其特征在于,节点与网络链接如下所述:节点:节点在一轮选主进程中,(1)该节点向节点发送消息或从节点收到消息或者既没有接受也没有发送消息,接着(2)改变自身的状态;若节点处于崩溃状态,则视为退出选主轮次,一个正常工作的节点能完整执行一轮选主进程;设定各节点选主进程的执行时刻差异化,即在各节点各自的选主进程前设置不同的等待时间t,使此等待时间的范围为[t
min
,t
max
];网络链接:节点通过链接向其它节点收发消息,设定一个常量T,若从节点p在t时刻发送一条消息到节点q,节点q在t+T时刻收到此消息,即视此链接为正常状态。4.根据权利要求1所述的方法,其特征在于,对于分布式系统,根据其链接的状态正常与否,分为以下几类:系统s0:所有链接均不处于正常状态;系统s1:至少存在一个节点,其向外发送消息的链路处于正常状态;系统s2:至少存在一个节点,其收发消息的链路处于正常状态;系统s3:所有链接均处于正常状态。5.根据权利要求4所述的方法,其特征在于,对于分布式系统定义如下参数:在一个系统s内,在一轮选主进程中,节点p推举的主节点为L
p
,这个被p推举的主节点是它自身;选主成功结束后,所有节点N的主节点L
N
应该为同一个节点,将这个最终确定的主节点标识为L
fin
。6.根据权利要求4所述的方法,其特征在于...

【专利技术属性】
技术研发人员:王峣川
申请(专利权)人:苏州思萃工业互联网技术研究所有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1