CN113742417A - 多级分布式共识方法及系统、电子设备及计算机可读介质 - Google Patents
多级分布式共识方法及系统、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN113742417A CN113742417A CN202010481831.0A CN202010481831A CN113742417A CN 113742417 A CN113742417 A CN 113742417A CN 202010481831 A CN202010481831 A CN 202010481831A CN 113742417 A CN113742417 A CN 113742417A
- Authority
- CN
- China
- Prior art keywords
- partition
- master node
- node
- level
- distributed consensus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000005192 partition Methods 0.000 claims abstract description 360
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种多级分布式共识方法,包括:将分布式系统划分成多个分区和多个层级;除了全局层级中的节点以外的每个节点在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;每个选举得到的分区主节点如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及在全局层级中执行基于分布式共识算法的主节点选举。
Description
技术领域
本发明涉及分布式系统领域,并且更具体地涉及一种多级分布式共识方法及其系统、电子设备以及计算机可读介质。
背景技术
随着数据处理需求的不断增长,当前的计算系统往往采用分布式系统。在分布式系统中,存在CAP定理,也就是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
分布式共识算法(如raft、paxos等)一般通过超过半数确认的机制,来保证具有2N+1个节点的分布式系统对N个节点故障的容错能力。在这样的分布式系统中,所有决策需要由至少N+1个节点确认才会最终生效,或者分布式系统通过选举得到由至少N+1个节点认可的主节点,然后由主节点进行决策和命令发布。但是上述算法都有一个最基本的要求,那就是要求收到超过半数节点的确认,因此在出现分区时,分布式共识算法会牺牲掉小分区的可用性,来保证一致性。
分布式共识算法一般会以保证任意时刻的一致性为目的,牺牲了分区容错性;出现分区后不足半数节点的分区无法正常工作,如果所有分区都不足半数节点,则整个系统都无法正常工作。在很多分布式系统中,不会要求任意时刻的强一致性,而只是要求最终一致性,这时普通的分布式共识算法会带来明显的可用性下降。尤其在网络结构复杂同时又对可用性要求很高的场景下,这些算法就无法适应需求。
发明内容
在本发明的第一方面中,提供了一种多级分布式共识方法,包括:将分布式系统划分成多个分区和多个层级,使得所述分布式系统中的每个节点属于唯一确定的层级,全局层级中的节点不属于任何分区,其他层级的节点属于唯一确定的分区;除了全局层级中的节点以外的每个节点在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;每个选举得到的分区主节点如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及在全局层级中执行基于分布式共识算法的主节点选举。
根据第一方面,基于所述分布式系统的业务特点或需求对所述分布式系统进行所述划分。
根据第一方面,每个节点具有从该节点所在层级直到全局层级的每一层级中所属分区的分布式共识算法配置。
根据第一方面,分区主节点根据自身具有的所述配置判断是否有上一级分区。
根据第一方面,在分区中或全局层级中执行基于分布式共识算法的主节点选举时,节点根据自身具有的所述配置向其他节点或分区广播选举请求。
根据第一方面,在上一级分区或上一层级无法完成主节点选举的情况下,分区内部作为单级分布式共识系统正常工作;一旦上一级分区或上一层级完成了主节点选举,分区主节点与上一级分区或上一层级进行数据同步。
根据第一方面,在与上一级分区或上一层级的连接出现故障的情况下,分区内部作为单级分布式共识系统正常工作;一旦分区成功连接到上一级分区或上一层级,分区主节点与上一级分区或上一层级进行数据同步。
在本发明的第二方面中,提供了一种多级分布式共识系统,所述多级分布式共识系统被划分成多个分区和多个层级,使得所述分布式系统中的每个节点属于唯一确定的层级,全局层级中的节点不属于任何分区,其他层级的节点属于唯一确定的分区;除了全局层级中的节点以外的每个节点被配置为:在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;每个选举得到的分区主节点被配置为:如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及所述分布式系统被配置为在全局层级中执行基于分布式共识算法的主节点选举。
在本发明的第三方面中,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据本发明的第一方面所述的方法。
在本发明的第四方面中,提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时实现根据本发明的第一方面所述的方法。
基于本发明提供的各个方面,通过分级分区的结构,避免了由于分区造成整个分布式系统失效的情况,实现了分级、分区失效,提高了系统的可用性;而且根据业务和逻辑进行合理的分级分区设计,能够更为合理有效的规划分布式系统的一致性、可用性和分区容错性的取舍和权衡,在不违反CAP定理基础上,提高系统可靠性。
附图说明
图1中示出了根据本发明实施例的多级分布式共识系统的示意性框图。
图2中示出了根据本发明实施例的多级分布式共识系统的各个层级的示例性框图。
图3中示出了根据本发明实施例的城市轨道交通集中判图系统的典型网络结构的示意性框图。
图4中示出了根据本发明实施例的多级分布式共识方法的流程图。
具体实施方式
下面将详细描述本发明的具体实施例,应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。在以下描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。
应当理解,当称元件“耦接到”或“连接到”另一元件时,它可以是直接耦接或连接到另一元件或者可以存在中间元件。相反,当称元件“直接耦接到”或“直接连接到”另一元件时,不存在中间元件。
此外,这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
将理解的是,与术语相应的单数形式的名词可包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的所有可能组合。如这里所使用的,诸如“第1”和“第2”或者“第一”和“第二”的术语可用于将相应部件与另一部件进行简单区分,并且不在其它方面(例如,重要性或顺序)限制所述部件。
如这里所使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,根据实施例,可以以专用集成电路(ASIC)的形式来实现模块。
应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。除非本文另有明确定义,否则所有术语将给出其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或字典、论文等中定义的含义。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。对于附图的描述,相似的参考标号可用来指代相似或相关的元件。以下将参考附图对本公开进行示例性描述。
图1中示出了根据本发明实施例的多级分布式共识系统的示意性框图。下面参考图1详细描述根据本发明实施例的多级分布式共识系统。
根据本发明实施例的多级分布式共识系统被划分成多个分区。例如,基于分布式系统的业务特点和需求,将系统划分成多个分区。每个分区内部对一致性要求很高,但是分区之间可以接受最终一致性。对于这样的系统,采用多级分布式共识方法。即,在每个分区内部,采用分布式共识算法保证分区内部的算法一致性;然后在分区之间,由每个分区的基于分布式共识算法选举的主节点来形成上一级的分区间分布式共识算法。例如,在图1所示的多级分布式共识系统中,分区1和分区2是基于系统的业务特点和需求在系统中划分出的分区。在分区1和分区2中每个分区的内部,基于分布式共识算法选举出该分区的分区主节点。然后,分区1的分区主节点、分区2的分区主节点和上层的独立节点基于分布式共识算法选举出上层主节点。例如,分区1的分区主节点被选举为上层主节点,则分区2的分区主节点和上层的独立节点成为上层从节点。
图2中示出了根据本发明实施例的多级分布式共识系统200的各个层级的示例性框图。下面参考图2详细描述根据本发明实施例的多级分布式共识系统中的各个层级。
在将分布式系统划分为分区时,还可以对分区进一步进行划分,从而得到子分区,即下一级分区。因此,随着分布式系统被划分成多个分区,分布式系统同时被划分成多个层级。每一级分布式共识系统可以包括独立的系统节点,也可以包括下一级分区,这些节点和下一级分区的总数为2F+1个。下一级分区在上一级分布式共识算法系统中相当于一个单独的节点,由基于分布式共识算法选举出的分区主节点来代表。例如,在图2所示的多级分布式共识系统中,整个系统共划分为三个层级,即全局层级、二级层级和三级层级。其中,全局层级包括分区A、分区C、以及独立节点B。二级层级包括:分区A下属的分区A节点1、二级分区D、以及分区A节点2;以及分区C下属的分区C节点1、分区C节点2、以及分区C节点3。三级层级包括二级分区D下属的分区D节点1、分区D节点2、以及分区D节点3。
系统中每个节点可以属于某个唯一确定的层级。全局层级中的节点不属于任何分区,为独立节点,例如图2中的节点B。其他层级中的节点属于唯一确定的分区。
每个节点根据自身节点所在层级,持有从自身节点所在层级直到全局层级的每一层级中所属分区的分布式共识算法配置。例如,图2所示的二级分区D中的节点(即分区D节点1、分区D节点2、以及分区D节点3),持有分区D、分区A和全局三个层级的分布式共识算法配置。
每个节点根据自身持有的配置,在自身节点所在层级的所属分区中,参与基于分布式共识算法的主节点选举。基于分布式共识算法例如是基于大多数原则的算法,例如是raft、paxos等常见算法,但是不限于此,多级分布式共识算法中各个分区主节点的选举也可以采用其他可以保证一致性的分布式共识算法策略或原则。一旦节点所属分区的主节点选举成功,所有从节点在主节点失效前会将全部信息汇总到主节点并接受主节点的指令。
每个选举得到的分区主节点会根据自身持有的配置判断此分区是否有上一级分区。如果有上一级分区,则此分区主节点会作为此分区的代表来参与上一级分区的主节点选举。此分区主节点会根据持有的配置向上一级分区中的其他节点或分区广播选举请求。如果上一级中存在另一分区,此分区主节点会向其配置中该另一分区的其中一个节点发出请求;如果该另一分区也已经选举出分区主节点,该另一分区中的节点收到请求后的返回中会包含该另一分区的主节点信息,此分区主节点会缓存该另一分区的主节点信息,并将之后的请求发送至该另一分区的主节点;如果该另一分区尚未选举出主节点,该另一分区的节点收到请求后的返回中不会包含主节点信息,此分区主节点会视为该另一分区暂时不可用,并记住此次发送请求的节点信息。对于不可用的另一分区,此分区主节点会在一定延时后再次向该另一分区配置中的另一个节点发送信息,以避免由于选择到该另一分区中不可用的节点导致误认为分区异常的错误。如果已经向该另一分区中超过半数节点发送过一次请求,且返回中都不包含该另一分区的主节点信息,则此分区主节点清空发送过请求的节点记录,并继续在一定延时后重试,直到收到该另一分区主节点的信息为止。即使在该另一分区可用之前上一级分区已经完成了主节点选取,此分区主节点也会以上述方式不断重试,以确认该另一分区是否恢复可用并确认其主节点信息。
上一级分区选举成功后,如果此分区主节点是上一级分区的从节点,会将信息汇总到上一级分区主节点并接受上级主节点的指令,并将指令和信息同步至此节点作为主节点的下级分区;如果此分区主节点也是上一级分区的主节点,此节点会同时接收上一级分区其他从节点的信息,并发布指令给上一级和下一级分区中的所有节点。
每个选举得到的分区主节点重复上述过程,直至根据自身持有的配置判断此分区不具有上一级分区(即,自身已经处于全局层级)为止。此时,每个分区都已选举出分区主节点,并且除全局层级外的其他所有层级已完成选举。然后,在全局层级中执行基于分布式共识算法的主节点选举,从而在整个多级分布式共识算法系统中完成所有层级和分区的选举。
每个节点都属于唯一确定的分区,因此有唯一确定的分区主节点。每个节点只接收其所属分区的主节点的指令,并监控此主节点状态,在主节点异常时在分区内部发起重新选举。通过每个分区主节点按照层级关系的消息和指令同步,最终实现多级分布式共识算法的一致性。
在每个分区内部,所有节点通过和分区主节点的心跳来确认分区主节点的工作状态,如果分区从节点发现当前分区主节点工作异常,会发起新的分区选举,依据分布式共识算法选举新的分区主节点。如果原有分区主节点没有离线或已经恢复,此时会将自己更新为分区从节点,而且无论之前此分区主节点在上一级分区中是主节点还是从节点,都不再响应来自上一级分区的消息和指令。新的分区主节点会替代替原有分区主节点接入上一级分区,如果原有分区主节点是上一级分区从节点,而且此次变化没有触发上一级分区的主节点重选,新的分区主节点会作为上一级分区从节点同步消息和指令。如果原有分区主节点是主节点,或者此次变化已经触发了上一级分区的重新选举,新的分区主节点会参与重选,选出新的上一级分区主节点后恢复正常工作。
在某些情况下,多级分布式共识系统无法作为整体正常工作,例如,分区与上一级分区或上一层级的连接出现故障,或者分区的上一级分区或上一层级的其他节点出现故障而导致上一级分区或上一层级无法完成主节点选举(不满足大多数原则)。此时,分区主节点保持与上一级分区的连接尝试,或者保持参与上一层级主节点选举的尝试,同时分区内部作为单级分布式共识算法系统正常工作,分区内的一致性和可用性都可以保证。一旦此分区主节点成功连接到上一级分区或上一层级,或者上一级分区或上一层级完成了主节点选举,此分区主节点会与上一级分区或上一层级完成数据同步,然后通过将信息汇总至上一级分区或上一层级的主节点(可能是此分区主节点本身)并接收其指令,来实现此分区与上一级分区或上一层级的一致性,达到最终一致性。
在所有分区工作正常时,系统通过多级分布式共识算法实现了分布式系统内部的一致性。在出现分区情况时,每个分区内部如果满足分布式共识算法的要求(例如,超过半数节点正常等),就可以保证分区的正常工作。因此通过分级分区的结构,避免了在出现分区情况时很容易造成整个分布式系统失效的情况,实现了分级、分区失效,提高系统的可用性。而且根据业务和逻辑进行合理的分级分区设计,能够更为合理有效的规划分布式系统的一致性、可用性和分区容错性的取舍和权衡,在不违反CAP定理基础上,提高系统可靠性。
多级分布式共识算法方案在例如城市轨道交通集中判图任务调度领域有非常适合的应用场景。在城市轨道交通集中判图系统中,节点分布范围广,安检判图任务实时性强,任务信息有较短的超时时间,超时后其信息对于系统不再重要,因此系统对一致性要求并不严格,但是对于分区容错和高可用的需求非常高。
图3中示出了根据本发明实施例的城市轨道交通集中判图系统的典型网络结构的示意性框图。如图3所示,整个线网采用两级环状网络结构,在每条线路(线路1、线路2、……、线路N)内设置线路级别判图中心(线路1判图中心、线路2判图中心、……、线路N判图中心),并在主干环网上设置多个线网级判图中心(线网判图中心1、线网判图中心2)。图3所示的网络结构仅为示例,也可以采用其他网络结构,例如,三级以上的网络结构、总线状网络结构等。
结合网络和业务特点,将每条线路(线路1、线路2、……、线路N)作为一个单独分区,通过线路级判图中心可以完成线路内部安检点的集中判图。例如,在线路1中,通过线路1判图中心可以完成线路1中的地铁站1、地铁站2、地铁站3、地铁站M1的集中判图。每个线路级判图中心的分区主节点(线路1判图中心、线路2判图中心、……、线路N判图中心)和线网判图中心(线网判图中心1、线网判图中心2)组成上一级的分布式共识系统。
在整个多级分布式共识系统工作正常时,线网所有判图任务基于全局最优的策略进行分配,由于城市轨道交通同一时间不同线路站点的客流差异明显,这种全局最优的分配策略能够有效平衡各个线路判图中心的判图压力。
在某个或某些分区无法接入全局系统,但全局分布式系统满足分布式共识算法工作要求因而能够正常完成全局选举的情况下,全局系统中的其他分区仍然可以在全局系统下正常工作,并实现这部分的最优分配决策。无法接入全局系统的分区如果内部网络正常,可以在分区系统内部(即线路内部)实现集中判图。虽然无法通过全局最优的跨线路调度来平衡判图压力,但是对于每个安检点而言,都可以继续工作在远程集中判图系统中,依然保证了系统的可用性。
在某些分区无法接入全局系统,且全局分布式系统无法满足分布式共识算法工作要求因而不能正常完成全局选举的情况下,全局系统无法正常工作,但是每个分区都可以正常工作。此时虽然分区之间的一致性被破坏,但是保证了每个分区的可用性,依然保证每个安检点能够在每个线路内部正常工作在远程集中判图模式下。
如果分区内部出现网络故障或分区,会直接影响地铁线路的控制信号等关键信号,对地铁运营产生重大影响,此时远程集中判图系统的可用性已经不具备业务意义。
由于地铁远程集中判图对实时性的要求很高,所有信息在很短的超时时间后就不在具有业务意义。因此在系统从分区故障重恢复时,经过较短的时间,所有分区工作时产生的不一致信息就会全部超时失效,此后全局系统可以简单快速的恢复一致性。
图4中示出了根据本发明实施例的多级分布式共识方法的流程图。下面参考图4详细描述根据本发明实施例的多级分布式共识方法。
在步骤S401中,将分布式系统划分成多个分区和多个层级,使得所述分布式系统中的每个节点属于唯一确定的层级,全局层级中的节点不属于任何分区,其他层级的节点属于唯一确定的分区;
在步骤S402中,除了全局层级中的节点以外的每个节点在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;
在步骤S403中,每个选举得到的分区主节点如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及
在步骤S404中,在全局层级中执行基于分布式共识算法的主节点选举。
在根据本发明实施例的多级分布式共识方法中,根据逻辑、业务特点或需求对分布式系统进行了分区划分,由此,与单层系统相比能够更合理地进行一致性、可用性和分区容错性的权衡。
根据该多级分布式共识方法,在出现分区故障时,既能保证基本的分区内一致性,同时又能尽可能保证更多的分区的可用性。
尽管以上各个框图中示出了多个组件,但是本领域技术人员应当理解,可以在缺少一个或多个组件或将某些组件组合的情况下实现本发明的实施例。
尽管以上根据附图中所示的顺序对各个步骤进行了描述,但是本领域技术人员应当理解,所述各个步骤可以按照不同的顺序执行,或者可以在没有上述步骤中的一个或多个步骤的情况下实现本发明的实施例。
根据前述内容可以理解,一个或多个系统或设备的电子组件可以包括但不限于至少一个处理单元、存储器、以及将包括存储器在内的各个组件耦接到处理单元的通信总线或通信装置。系统或设备可以包括或可以访问各种设备可读介质。系统存储器可以包括易失性和/或非易失性存储器形式的设备可读存储介质(比如,只读存储器(ROM)和/或随机存取存储器(RAM))。通过示例而非限制的方式,系统存储器还可以包括操作系统、应用程序、其它程序模块和程序数据。
实施例可以实现为系统、方法或程序产品。因此,实施例可以采用全硬件实施例或者包括软件(包括固件、常驻软件、微代码等)的实施例的形式,它们在本文中可以统称为“电路”、“模块”或“系统”。此外,实施例可以采取在其上体现有设备可读程序代码的至少一个设备可读介质中体现的程序产品的形式。
可以使用设备可读存储介质的组合。在本文档的上下文中,设备可读存储介质(“存储介质”)可以是任何有形的非信号介质,其可以包含或存储由配置为由指令执行系统、装置或设备使用或与其结合使用的程序代码组成的程序。出于本公开的目的,存储介质或设备应被解释为非暂时性的,即不包括信号或传播介质。
本公开出于说明和描述的目的得以呈现,但是并非旨在穷举或限制。许多修改和变化对于本领域普通技术人员将是明显的。选择和描述实施例以便说明原理和实际应用,并且使得本领域普通技术人员能够理解具有适合于所预期的特定用途的各种修改的本公开的各种实施例。
Claims (10)
1.一种多级分布式共识方法,包括:
将分布式系统划分成多个分区和多个层级,使得所述分布式系统中的每个节点属于唯一确定的层级,全局层级中的节点不属于任何分区,其他层级的节点属于唯一确定的分区;
除了全局层级中的节点以外的每个节点在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;
每个选举得到的分区主节点如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及
在全局层级中执行基于分布式共识算法的主节点选举。
2.根据权利要求1所述的多级分布式共识方法,
基于所述分布式系统的业务特点或需求对所述分布式系统进行所述划分。
3.根据权利要求1所述的多级分布式共识方法,
每个节点具有从该节点所在层级直到全局层级的每一层级中所属分区的分布式共识算法配置。
4.根据权利要求3所述的多级分布式共识方法,
分区主节点根据自身具有的所述配置判断是否有上一级分区。
5.根据权利要求3所述的多级分布式共识方法,
在分区中或全局层级中执行基于分布式共识算法的主节点选举时,节点根据自身具有的所述配置向其他节点或分区广播选举请求。
6.根据权利要求1所述的多级分布式共识方法,
在上一级分区或上一层级无法完成主节点选举的情况下,分区内部作为单级分布式共识系统正常工作;一旦上一级分区或上一层级完成了主节点选举,分区主节点与上一级分区或上一层级进行数据同步。
7.根据权利要求1所述的多级分布式共识方法,
在与上一级分区或上一层级的连接出现故障的情况下,分区内部作为单级分布式共识系统正常工作;一旦分区成功连接到上一级分区或上一层级,分区主节点与上一级分区或上一层级进行数据同步。
8.一种多级分布式共识系统,所述多级分布式共识系统被划分成多个分区和多个层级,使得所述分布式系统中的每个节点属于唯一确定的层级,全局层级中的节点不属于任何分区,其他层级的节点属于唯一确定的分区;
除了全局层级中的节点以外的每个节点被配置为:在所属层级的所属分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为所属分区的分区从节点,如果被选举为主节点,则成为所属分区的分区主节点;
每个选举得到的分区主节点被配置为:如果有上一级分区,则作为本分区的代表继续在上一级分区中参与基于分布式共识算法的主节点选举,如果没有被选举为主节点,则成为上一级分区的分区从节点,如果被选举为主节点,则成为上一级分区的分区主节点;以及
所述分布式系统被配置为在全局层级中执行基于分布式共识算法的主节点选举。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~7中任一项所述的方法。
10.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010481831.0A CN113742417B (zh) | 2020-05-29 | 多级分布式共识方法及系统、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010481831.0A CN113742417B (zh) | 2020-05-29 | 多级分布式共识方法及系统、电子设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742417A true CN113742417A (zh) | 2021-12-03 |
CN113742417B CN113742417B (zh) | 2024-06-07 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437843A (zh) * | 2022-08-25 | 2022-12-06 | 北京万里开源软件有限公司 | 一种基于多级分布式共识的数据库存储分区恢复方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355369A (zh) * | 2011-09-27 | 2012-02-15 | 华为技术有限公司 | 虚拟化集群系统及其处理方法和设备 |
US20120166390A1 (en) * | 2010-12-23 | 2012-06-28 | Dwight Merriman | Method and apparatus for maintaining replica sets |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储系统 |
US20170262519A1 (en) * | 2010-12-23 | 2017-09-14 | Eliot Horowitz | System and method for determining consensus within a distributed database |
CN107579860A (zh) * | 2017-09-29 | 2018-01-12 | 新华三技术有限公司 | 节点选举方法及装置 |
US20180018198A1 (en) * | 2015-04-02 | 2018-01-18 | Alibaba Group Holding Limited | Efficient, time-based leader node election in a distributed computing system |
CN108183971A (zh) * | 2015-03-13 | 2018-06-19 | 聚好看科技股份有限公司 | 一种分布式系统中的节点选举方法 |
CN108984349A (zh) * | 2018-08-17 | 2018-12-11 | 杭州朗和科技有限公司 | 主节点选举方法及装置、介质和计算设备 |
CN109426567A (zh) * | 2017-08-22 | 2019-03-05 | 汇链丰(北京)科技有限公司 | 一种区块链的节点部署和选举方法 |
CN111080452A (zh) * | 2019-12-17 | 2020-04-28 | 电子科技大学 | 一种适用于能源区块链的分层交易方法 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166390A1 (en) * | 2010-12-23 | 2012-06-28 | Dwight Merriman | Method and apparatus for maintaining replica sets |
US20170262519A1 (en) * | 2010-12-23 | 2017-09-14 | Eliot Horowitz | System and method for determining consensus within a distributed database |
CN102355369A (zh) * | 2011-09-27 | 2012-02-15 | 华为技术有限公司 | 虚拟化集群系统及其处理方法和设备 |
CN108183971A (zh) * | 2015-03-13 | 2018-06-19 | 聚好看科技股份有限公司 | 一种分布式系统中的节点选举方法 |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储系统 |
US20180018198A1 (en) * | 2015-04-02 | 2018-01-18 | Alibaba Group Holding Limited | Efficient, time-based leader node election in a distributed computing system |
CN109426567A (zh) * | 2017-08-22 | 2019-03-05 | 汇链丰(北京)科技有限公司 | 一种区块链的节点部署和选举方法 |
CN107579860A (zh) * | 2017-09-29 | 2018-01-12 | 新华三技术有限公司 | 节点选举方法及装置 |
CN108984349A (zh) * | 2018-08-17 | 2018-12-11 | 杭州朗和科技有限公司 | 主节点选举方法及装置、介质和计算设备 |
CN111080452A (zh) * | 2019-12-17 | 2020-04-28 | 电子科技大学 | 一种适用于能源区块链的分层交易方法 |
Non-Patent Citations (2)
Title |
---|
胡潇, 硕士学位论文, 31 December 2017 (2017-12-31), pages 6 - 29 * |
赵守月: "分布式计算中共识算法的研究", 学位论文, 15 December 2019 (2019-12-15), pages 10 - 56 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437843A (zh) * | 2022-08-25 | 2022-12-06 | 北京万里开源软件有限公司 | 一种基于多级分布式共识的数据库存储分区恢复方法 |
CN115437843B (zh) * | 2022-08-25 | 2023-03-28 | 北京万里开源软件有限公司 | 一种基于多级分布式共识的数据库存储分区恢复方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102404390B (zh) | 高速实时数据库的智能化动态负载均衡方法 | |
EP3694148A1 (en) | Configuration modification method for storage cluster, storage cluster and computer system | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
EP0381334B1 (en) | Apparatus for management, comparison, and correction of redundant digital data | |
CN107430603B (zh) | 大规模并行处理数据库的系统和方法 | |
US9201747B2 (en) | Real time database system | |
CN105337780B (zh) | 一种服务器节点配置方法及物理节点 | |
CN114301972B (zh) | 一种基于云边协同的区块链节点分级部署方法和系统 | |
CN107153660A (zh) | 分布式数据库系统的故障检测处理方法及其系统 | |
RU2439674C1 (ru) | Способ формирования отказоустойчивой вычислительной системы и отказоустойчивая вычислительная система | |
CN116860463A (zh) | 一种分布式自适应星载中间件系统 | |
CN105959145B (zh) | 一种适用高可用性集群的并行管理服务器的方法及系统 | |
CN112633879B (zh) | 应用于区块链中能够在无交易时不出空块的共识系统及方法 | |
CN107239235B (zh) | 一种多控多活raid同步方法及系统 | |
CN111291063B (zh) | 主备副本选举方法、系统、计算机设备和存储介质 | |
CN113742417A (zh) | 多级分布式共识方法及系统、电子设备及计算机可读介质 | |
CN113742417B (zh) | 多级分布式共识方法及系统、电子设备及计算机可读介质 | |
US11956346B2 (en) | Blockchain system, information sharing method and related equipment | |
CN114564340B (zh) | 航天地面系统分布式软件高可用方法 | |
Kanrar et al. | A new voting-based mutual exclusion algorithm for distributed systems | |
CN114666201B (zh) | 一种高可用的分布式微服务架构 | |
CN115686368A (zh) | 区块链网络的节点的存储扩容的方法、系统、装置和介质 | |
CN115694748A (zh) | 一种基于分层系统实时数据同步的冗余框架设计方法 | |
CN113596195B (zh) | 公共ip地址管理方法、装置、主节点及存储介质 | |
CN107577548A (zh) | 一种用于航空电子系统的实时动态重构方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |