一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Raft的自适应多节点动态提高效率方法与流程

2022-06-25 07:59:31 来源:中国专利 TAG:

一种基于raft的自适应多节点动态提高效率方法
技术领域
1.本技术涉及区块链共识技术领域,具体公开了一种基于raft的自适应多节点动态提高效率方法。


背景技术:

2.reft是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。相比传统的paxos算法,reft将大量的计算问题分解成为了一些简单的相对独立的子问题。reft通过选举一个高贵的领导人,然后给予他全部的管理复制日志的责任来实现一致性。领导人从客户端接收日志条目,把日志条目复制到其他服务器上,并且当保证安全性的时候告诉其他的服务器应用日志条目到他们的状态机中。
3.raft在非拜占庭的情况下有着较优秀的共识效率,共识算法复杂度为o(n),但是随着节点的增多,数据的安全性的提升随着节点增加而边际效益递减:令一台机器数据丢失的概率为a,那么对于n台机器,在raft算法下,过半机器正常运行即可保证数据安全,那么数据不丢失的概率为对p求n的导数,得因为0<a<1,可知p

<0,所以随着n的投入增加,数据安全性提高越来越少。但是多节点在区块链业务场景下有着实际意义,比如增加读性能等。可节点过多会造成集群性能下降较多,因此,发明人有鉴于此,提供了一种基于raft的自适应多节点动态提高效率方法,以便解决上述问题。


技术实现要素:

4.本发明的目的在于解决传统的raft节点增多,数据安全性提高越来越少的问题。
5.为了达到上述目的,本发明的基础方案提供一种基于raft的自适应多节点动态提高效率方法,包括以下步骤:
6.步骤s01,统计集群中所有节点的rtt(round trip time),并求出所有节点的rtt平均值;
7.步骤s02,根据业务需求以及rtt平均值排名靠后的节点,确定最低数据冗余最低份数;
8.步骤s03,将最低份数的所有节点转换为被动节点,禁止参与共识;
9.步骤s04,leader宕机集群发生选主,非被动节点以及被动节点均可参与选主,新leader需重复步骤s01、步骤s02、步骤s03;
10.步骤s05,非被动节点发生宕机,转换部分数量的被动节点参与共识;
11.步骤s06,被动节点发生宕机,再重启时,加入集群。
12.进一步,在步骤s01中,由选举出的leader,依次对集群中所有节点发起若干次共识,对单个节点的多共识进行rtt时间平均,此时则为单个节点的rtt值。
13.进一步,充分统计所有单个节点中的ptt值,并将所有的单个节点中ptt值进行求和平均,此时的值便为该个集群中的所有节点的rtt平均值。
14.进一步,在步骤s02中,根据所有节点的rtt平均值,根据业务需求,确定被动节点以及非被动节点的临界值,以此来确定最低数据冗余最低份数t。
15.进一步,在步骤s03中,被动节点日志从非leader节点进行同步复制。
16.进一步,在步骤s03中,增加getentries方法,统计被动节点与非被动节点的交互的平均rtt,选择rtt最小的节点和他交互。
17.进一步,在步骤s03中,leader在选取非被动节点进行交互时,根据单个节点的rtt,根据单个节点排名从低到高依次进行不同内容的交互。
18.进一步,在步骤s05中,令集群中所有节点数量为n,需要保证集群内至少有n(1-t)个节点参与共识。
19.本基础方案的原理及效果在于:
20.1、由leader节点在若干次共识中,统计出rtt(round trip time)最长的若干节点,让他们转为被动模式passive mode,即不再主动参与共识,而是从其他节点获取日志,在需要时,比如重新选主时,他们再转换为正常的共识节点,参与共识,在业务合理情况下,即提高了共识效率,让低效率节点成为被动节点,同时还保证了数据安全性。
21.2、在非被动节出现宕机等情况时,可根据实际的业务需要将被动节点转换为非被动节点,以便后续的交互工作能够正常的进行;同理,当业务需要比较繁忙时,可以主动转换被动节点参与共识,业务处理完毕,再次将对应的节点转换为被动节点。
22.3、在对主动节点以及被动节点的选取中,是根据每个节点的平均rtt值进行,这样在选取中可主动赛选一些rtt值比较大的节点成为被动节点,有效的提高了共识效率。
23.4、在正常的业务场景下,令一台机器数据丢失的概率为a,那么对于n台机器,在raft算法下,过半机器正常运行即可保证数据安全,那么数据不丢失的概率为对p求n的导数,得因为0<a<1,可知p

<0,所以随着n的投入增加,数据安全性提高越来越少,而本发明在日常运用中,可有效的减少节点n的投入,因此数据安全性也随之提高。
附图说明
24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1示出了本技术实施例提出的一种基于raft的自适应多节点动态提高效率方法的流程图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.下面通过具体实施方式进一步详细的说明:
28.一种基于raft的自适应多节点动态提高效率方法,raft共识算法的基础组件包括raft状态机单元、raft内核单元、日志存储单元,raft状态机单元用于管理raft共识算法在应用节点中的运行状态,raft内核单元用于执行raft共识算法完成共识内容,构造和处理交互消息,同时测试raft共识算法执行的安全性和正确性,日志存储单元用于存储所有基础组件工作产生的日志;
29.raft内核单元执行raft共识算法时,每个应用节点具有三种状态,分别为跟随者(follower)、候选者(candidate)以及领导者(leader);
30.开始时,所有应用节点处于跟随者状态,每个跟随者启动一个计时器,在超时后还未收到领导者发来的心跳(追加消息)响应遍进入候选者状态;
31.候选者发起一轮新竞选,向周围应用节点发送包含当前任期的投票请求消息,每个跟随者对比请求消息包含的任期(即消息中的优先级)与当前保存的目标任期,如果消息内任期更高就支持候选者竞选,候选者收到超过半数的跟随者的投票后就成为领导者,否则就退出领导者竞选;
32.领导者每隔一定时间会向所有其他应用节点发送心跳,同时与应用客户交互完成相应任务,即为客户处理可复制状态机的控制请求,客户通过指令与领导者交互,领导者为收到的客户请求消息增加当前任期和一个索引值,索引值用来唯一确定指令在应用节点日志中的位置;
33.领导者接下来尝试将这一条指令复制到严格多数的其他应用节点上,如果复制是成功的,这条指令就被提交执行,在领导者的raft内核单元上执行并将结果返回给客户。
34.在raft共识算法中,随着节点的增多,数据的安全性的提升随着节点增加而边际效益递减。
35.如图1所示,为了解决上述问题,本发明公开了如下内容:
36.在集群中,首选选举出一个leader,然后在leader中限定一个时间,在这个时间内,多次对该集群中的每一个节点都发起若干次共识,比如在这个raft的集群中一共有101个节点组成,除去选举成为leader的节点,一共就还有100个非leader节点,然后leader节点在限定时间内发出需要这100个节点反馈的共识,比如每个节点都发起了10次共识,然后将每个节点的10次共识往返消耗的rtt(round trip time)值进行平均求值,这样就可以得到100节点的rtt值;
37.然后再根据这100节点的rtt值求平均,这样便可得到整个集群的的节点与leader的rtt平均值,此时根据所有节点的rtt平均值、集群的rtt平均值以及业务需求,确定被动节点以及非被动节点的临界值,选取数据冗余最低份数t,比如在该个节点的业务通常只需要90%的节点便可进行解决,因此就令t=10%,同时将每个节点的rtt平均值从小到大依次进行排列,那么在100个非leader节点中,排名在91-100的10个节点将会转化成被动节点,这10个节点转换成被动节点后,其余的90个节点则为非被动节点,即主动节点,此时便可进行正常的业务工作。
38.在正常的业务工作中,leader节点始终选择对rtt平均值最小的节点发起共识:
39.当leader节点依次对排名1、2、3
……
的节点进行共识交互后,若前面的节点还在共识交互中,则继续向排名为4的节点进行进行共识交互,若此时排名为2的节点共识交互
完毕,此时leader则只能向排名为2的节点进行共识交互,这样就有效的保证了共识效率高的节点的充分利用,从而提高了整个集群的工作效率。
40.而rtt的统计方法则为限定时间所有节点之间的交互的平均响应时间,向排名靠后后t比例的节点发送变为被动节点的指令。
41.收到被动节点指令的节点转换为被动节点,不参与共识,被动节点日志从非leader节点进行同步复制,主动节点按照正常日志复制方法进行日志复制,同时在原有的raft算上增加getentries方法,因为被动节点也需要统计跟它交互的非leader节点的平均rtt,统计完成后,选择rtt最小的节点和他交互,从而降低被动节点对集群的负载。
42.当leader宕机集群发生选主时,其他节点按照正常的raft算法进行选主,同时集群内的被动节点也参与选主,新leader选举成功后,因为无关于被动节点的记忆,因此需要按照上述步骤,重新确定数据冗余最低份数t,即重新确定主动节点与被动节点在本集群中的具体数量;如果有非被动节点发生宕机,leader感知到了,那么为了保证集群的数据安全性的平衡,则需要将部分被动节点转为参与共识的节点,使得集群内至少要n(1-t)的节点参与共识,保证了冗余份数;如果被动节点发生宕机,再重启时,按照共识节点加入集群即可,对主动节点无任何影响。
43.在本发明中:由leader节点在若干次共识中,统计出rtt(round trip time)最长的若干节点,让他们转为被动模式passive mode,即不再主动参与共识,而是从其他节点获取日志,在需要时,比如重新选主时,他们再转换为正常的共识节点,参与共识,在业务合理情况下,即提高了共识效率,让低效率节点成为被动节点,同时还保证了数据安全性;在非被动节出现宕机等情况时,可根据实际的业务需要将被动节点转换为非被动节点,以便后续的交互工作能够正常的进行;同理,当业务需要比较繁忙时,可以主动转换被动节点参与共识,业务处理完毕,再次将对应的节点转换为被动节点;在对主动节点以及被动节点的选取中,是根据每个节点的平均rtt值进行,这样在选取中可主动赛选一些rtt值比较大的节点成为被动节点,有效的提高了共识效率;在正常的业务场景下,令一台机器数据丢失的概率为a,那么对于n台机器,在raft算法下,过半机器正常运行即可保证数据安全,那么数据不丢失的概率为p=1-a^(n/2),对p求n的导数,得p

=-(a^(n/2)ln^2(a))/4,因为0《a《1,可知p

《0,所以随着n的投入增加,数据安全性提高越来越少,而本发明在日常运用中,可有效的减少节点n的投入,因此数据安全性也随之提高。
44.尽管为使解释简单化,将上述方法图示并描述为一系列动作,但应理解并领会这些方法不受动作的次序所限。根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。为使本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门
或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献