一种基于备选领导人进行快速选举的共识方法及系统技术方案

技术编号:38825165 阅读:15 留言:0更新日期:2023-09-15 20:04
本发明专利技术公开了一种基于备选领导人进行快速选举的共识方法及系统,方法按照如下步骤进行:步骤1、所有节点默认为追随者节点;步骤2、进行领导人选举,通过投票方式选举出领导人节点维持整个系统的共识;步骤3、领导人接收并处理客户端的请求,形成日志,并广播进行日志复制,从而完成客户端的请求;步骤4、选举备选领导人,确定备选领导人节点,并将备选领导人的信息广播至所有节点;步骤5、当领导人节点宕机、失效时,若存在备选领导人,则备选领导人直接当选,若备选领导人不存在或与领导人同时宕机、失效,则跳转至步骤2。本发明专利技术引入备选领导人概念,以获得更高的选举效率,在节点易出现故障失效、宕机的场景拥有更好的性能。宕机的场景拥有更好的性能。宕机的场景拥有更好的性能。

【技术实现步骤摘要】
一种基于备选领导人进行快速选举的共识方法及系统


[0001]本专利技术属于分布式系统
,涉及分布式系统中的共识技术,具体涉及一种基于备选领导人进行快速选举的共识方法及系统。

技术介绍

[0002]分布式系统凭借其高可靠性、易扩展性等优势,以区块链的方式为代表被迅速应用于各个领域。而分布式节点中各个节点之间如何配合完成工作成为了亟需解决的技术问题,为解决这个问题,需要设计一种算法使若干个节点成为一个完整的系统,这种算法被称为共识算法,可以把共识算法理解成为了实现分布式一致性协议而产生的一系列流程与规则。
[0003]Leslie Lamport提出的Paxos是共识算法领域中的一种经典的算法,曾被公认为达到相应效果的算法中最为有效的共识算法,但由于其原理较为晦涩,不易于理解,并且不利于构建实际的系统,故而在实际使用中容易出现问题。针对这个问题,Diego Ongaro与John Ousterhout两人提出的Raft在同样被正式证明是安全的前提下,将算法逻辑拆分的更为清晰易懂,在实际的工程中也较为容易快速形成一个完整的系统,受到广泛使用。
[0004]针对不同环境,以及不同的需要,共识算法往往也会进行相应的更改,以便满足实际的需求。例如,Y

Paxos在Paxos的基础上,确保正确性的同时,针对活锁问题提出了一些改进,设计了新的角色方案和算法时序,以达到更高的效率。Hotstuff通过引入门限签名,在依旧保证有拜占庭容错的情况下,将PBFT的消息复杂度降低,实现了O(n)的消息复杂度。RPFT将Raft与PoW结合,用PoW进行副领导人的选举,从而实现了更加快速的选举。BRaft对Raft进行改进,引入了数字签名,使得Raft具有一定的拜占庭容错功能。
[0005]针对节点易出现故障导致节点宕机、失效的情况,传统raft算法由于领导人宕机时,所有追随者收到心跳信号的时间大致是同一个时间点,因此所有追随者大致会在同一个时间点判断心跳信号超时,很容易出现有多个候选人的情况,选票分散到多个节点时,单个节点的选票数便很难超过半数,从而开始新一轮的选举,然而在新一轮的选举过程中,又会遇到同样的问题,选票再次分散,导致新的领导人选举困难。本专利技术针对该问题引入了备选领导人的概念进行对其改进。

技术实现思路

[0006]针对现有技术存在的上述问题,本专利技术利用领导人的全局知识,在每次日志复制之后选定第一个完成复制的节点附带在广播提交日志的信息中成为备选领导人,在领导人宕机或其他原因失效时,其它节点可以快速将备选领导人作为新的领导人,以期能够大大缩短选举所需要的时间,使之在节点容易失效的恶劣环境中具有一定的优势,提出一种基于备选领导人进行快速选举的共识方法及系统。
[0007]本专利技术为解决技术问题所采用的技术方案是:
[0008]基于Raft算法并引入备选领导人的机制,应用于节点可信任的分布式系统中进行
共识,本专利技术一种基于备选领导人进行快速选举的共识方法,按照如下步骤进行:
[0009]步骤1、系统初始化,所有节点默认为追随者节点;
[0010]步骤2、进入选举阶段,进行领导人选举,通过投票的方式选举出领导人节点维持整个系统的共识;
[0011]步骤3、进入日志复制阶段,领导人接收并处理客户端的请求,形成日志,并广播进行日志复制,从而完成客户端的请求;
[0012]步骤4、选举备选领导人,确定备选领导人节点,并将备选领导人信息广播至所有节点;
[0013]步骤5、当领导人节点宕机、失效时,若存在备选领导人,则备选领导人直接当选,若备选领导人不存在或与领导人同时宕机、失效时,则跳转至步骤2。
[0014]优选的,所述步骤2按照如下步骤进行:
[0015]步骤2.1、领导人会周期性发送心跳信号至追随者,当系统初始化或领导人节点失效、宕机时,追随者超过一定时间没有收到心跳信号,则会成为候选人,发起投票广播;
[0016]步骤2.2、节点收到投票广播信息后,对比信息中的日志信息,若日志信息比本地存储的日志更新,则会给该节点投票,否则将无视信息;
[0017]步骤2.3、候选人节点收到超过半数的节点投票将会当选,广播当选的信息,完成选举。若超过一定时间未收到超过半数的投票,或收到了来自其他节点的当选信息,将会重新成为追随者节点。
[0018]优选的,所述步骤3按照如下步骤进行:
[0019]步骤3.1、节点收到客户端请求,若该节点不为领导人节点则将请求信息转发至领导人节点;
[0020]步骤3.2、领导人节点收到客户端请求后,形成日志,并广播信息至其它节点,要求进行日志复制,节点收到信息、复制完成后回复领导人节点;
[0021]步骤3.3、领导人节点收到超过半数节点的回复后,即认为日志被安全复制,执行日志内容,并广播提交日志信息通知其它节点执行日志内容,同时响应客户端。
[0022]优选的,所述步骤4按照如下步骤进行:
[0023]步骤4.1、日志复制时,若收到其他节点完成日志复制的回复,则记录最先完成复制的节点,预设为备选领导人;
[0024]步骤4.2、若超过半数节点回复日志复制的信息,则需要提交日志,将预设的备选领导人节点正式设为备选领导人,并在发送消息时附带备选领导人节点信息以通知其它节点;
[0025]步骤4.3、进行下一次日志复制时,重复步骤4.1、4.2对备选领导人信息进行更新。
[0026]本专利技术还公开了一种基于备选领导人进行快速选举的共识系统,其包括如下模块:
[0027]初始化模块:所有节点默认为追随者节点;
[0028]领导人选举模块:进行领导人选举,通过投票方式选举出领导人节点维持整个系统的共识;
[0029]日志复制模块:领导人接收并处理客户端的请求,形成日志,并广播进行日志复制,从而完成客户端的请求;
[0030]备选领导人选举模块:选举备选领导人,确定备选领导人节点,并将备选领导人的信息广播至所有节点;
[0031]判断模块:当领导人节点宕机、失效时,若存在备选领导人,则备选领导人直接当选,若备选领导人不存在或与领导人同时宕机、失效,则由领导人选举模块执行领导人选举。
[0032]优选的,所述领导人选举模块具体如下:
[0033]领导人周期性地发送心跳信号至追随者,当系统初始化或领导人节点失效、宕机时,追随者超过设定时间未收到心跳信号,则变成候选人,发起投票广播;
[0034]节点收到投票广播信息后,对比信息中的日志信息,若日志信息比本地存储的日志更新,则给该节点投票,否则将无视信息;
[0035]候选人节点收到超过半数的节点投票将当选,广播当选的信息,完成选举;若超过设定时间未收到超过半数的投票或收到了来自其他节点的当选信息,则重新成为追随者节点。
[0036]优选的,所述日志复制模块具体如下:
[0037]节点收到客户端请求,若该节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于备选领导人进行快速选举的共识方法,其特征是按照如下步骤进行:步骤1、所有节点默认为追随者节点;步骤2、进行领导人选举,通过投票方式选举出领导人节点维持整个系统的共识;步骤3、领导人接收并处理客户端的请求,形成日志,并广播进行日志复制,从而完成客户端的请求;步骤4、选举备选领导人,确定备选领导人节点,并将备选领导人的信息广播至所有节点;步骤5、当领导人节点宕机、失效时,若存在备选领导人,则备选领导人直接当选,若备选领导人不存在或与领导人同时宕机、失效,则跳转至步骤2。2.如权利要求1所述一种基于备选领导人进行快速选举的共识方法,其特征是,所述步骤2具体按照如下步骤进行:步骤2.1、领导人周期性地发送心跳信号至追随者,当系统初始化或领导人节点失效、宕机时,追随者超过设定时间未收到心跳信号,则变成候选人,发起投票广播;步骤2.2、节点收到投票广播信息后,对比信息中的日志信息,若日志信息比本地存储的日志更新,则给该节点投票,否则将无视信息;步骤2.3、候选人节点收到超过半数的节点投票将当选,广播当选的信息,完成选举;若超过设定时间未收到超过半数的投票或收到了来自其他节点的当选信息,则重新成为追随者节点。3.如权利要求1所述一种基于备选领导人进行快速选举的共识方法,其特征是,所述步骤3具体按照如下步骤进行:步骤3.1、节点收到客户端请求,若该节点不是领导人节点,则将请求信息转发至领导人节点;步骤3.2、领导人节点收到客户端请求后,形成日志,并广播信息至其它节点,要求进行日志复制,节点收到信息、复制完成后回复领导人节点;步骤3.3、领导人节点收到超过半数节点的回复后,即认为日志被安全复制,执行日志内容,并广播提交日志信息通知其它节点执行日志内容,同时响应客户端。4.如权利要求1

3任一项所述一种基于备选领导人进行快速选举的共识方法,其特征是,所述步骤4具体按照如下步骤进行:步骤4.1、日志复制时,若收到其他节点完成日志复制的回复,则记录最先完成复制的节点,预设为备选领导人;步骤4.2、若超过半数节点回复日志复制的信息,则提交日志,将预设的备选领导人节点正式设为备选领导人,并在发送消息时附带备选领导人节点信息以通知其它节点;步骤4.3、进行下一次日志复制时,重复步骤4.1、...

【专利技术属性】
技术研发人员:施靖王明阳徐欣梁军学姚英彪王传华徐宇栋杜思宇刘涛高国敏
申请(专利权)人:中国人民解放军九三二一六部队
类型:发明
国别省市:

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

1