CN116827966B - 一种数据处理方法与系统 - Google Patents
一种数据处理方法与系统 Download PDFInfo
- Publication number
- CN116827966B CN116827966B CN202311090764.XA CN202311090764A CN116827966B CN 116827966 B CN116827966 B CN 116827966B CN 202311090764 A CN202311090764 A CN 202311090764A CN 116827966 B CN116827966 B CN 116827966B
- Authority
- CN
- China
- Prior art keywords
- nodes
- cluster
- leader
- subset
- node
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000001514 detection method Methods 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 239000000523 sample Substances 0.000 abstract 2
- 238000005516 engineering process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明提出一种数据处理方法与系统,属于数据处理技术领域。当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,将所述部分设备节点作为故障设备节点,其中:所述故障设备节点脱离所述集群,并且所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集;为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种数据处理方法与系统。
背景技术
一致性算法是分布式系统中实现数据一致性的关键技术之一。在分布式系统中,多个节点之间的通信可能因为网络延迟、故障等原因导致数据不一致,而一致性算法可以解决这个问题,保证数据在多个节点之间的一致性。现有技术中通常采用的数据同步算法为raft一致性算法,然而,该算法还有一些不足和限制:其必须在正常节点数大于总体一半的情况下才能使系统正常运行,这明显与某些特殊的紧急场景不符合,因此需要进一步改进。
发明内容
本发明针对现有技术中的不足,提出一种数据处理方案。
本发明第一方面提出一种数据处理方法。在所述方法中,当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,将所述部分设备节点作为故障设备节点,其中:所述故障设备节点脱离所述集群,并且所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群。
其中,组建所述子集的条件为:当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
根据本发明第一方面的方法,无法与所述集群保持通信具体指:无法与所述集群的原领导节点直接通信,并且无法与所述集群中的其他非领导节点直接通信;所述故障设备节点向外发送所述探测消息,所述探测消息中携带有故障标识,所述故障标识表征所述探测消息为由所述故障设备节点发送的用于重建通信的探测消息;接收到所述探测消息的其他故障设备节点基于所述探测消息中的故障标识生成所述响应消息,并向发送所述探测消息的故障设备节点发送所述响应消息,从而重建故障设备节点之间的通信。
根据本发明第一方面的方法,所述集群和所述子集均采用去中心化的方式来进行集群内/子集内各个设备节点之间的数据同步,由每个设备节点向集群内/子集内的其他设备节点进行广播来执行所述数据同步。
根据本发明第一方面的方法,在所述通信故障被解决后,恢复所述集群的新领导节点与所述子集的领导节点之间的通信,将所述子集合并至所述集群,为经合并后的集群选举出合并后的领导节点,具体包括:
比较所述集群的新领导节点和所述子集的领导节点分别所领导的非领导节点的数量;其中:
当所述集群的新领导节点所领导的非领导节点的数量大于所述子集的领导节点所领导的非领导节点的数量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量小于所述子集的领导节点所领导的非领导节点的数量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量等于所述子集的领导节点所领导的非领导节点的数量时,比较在所述故障设备节点脱离所述集群后所述集群的新数据量和所述子集的数据量;其中:
当所述集群的新数据量大于所述子集的数据量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新数据量小于所述子集的数据量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新数据量等于所述子集的数据量时,随机从所述集群的新领导节点和所述子集的领导节点中选举出所述合并后的领导节点。
根据本发明第一方面的方法,在选举出所述合并后的领导节点后,将所述子集中的数据同步至所述集群,具体包括:以所述故障设备节点脱离所述集群的时间点为查询条件,在所述子集的领导设备节点上查找所述子集在所述时间点之后产生的数据,并将所述子集在所述时间点之后产生的数据同步至所述合并后的领导节点,由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第一方面的方法,当所述子集的领导设备节点为所述合并后的领导节点时,则直接由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第一方面的方法,将查找到的所述子集在所述时间点之后产生的数据以时间戳进行排序,形成完整的待同步数据。
本发明第二方面提出一种数据处理系统。当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,所述系统的处理单元将所述部分设备节点作为故障设备节点,所述处理单元被配置为:将所述故障设备节点脱离所述集群,并且令所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群。
其中,组建所述子集的条件为:当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
根据本发明第二方面的系统,无法与所述集群保持通信具体指:无法与所述集群的原领导节点直接通信,并且无法与所述集群中的其他非领导节点直接通信;所述故障设备节点向外发送所述探测消息,所述探测消息中携带有故障标识,所述故障标识表征所述探测消息为由所述故障设备节点发送的用于重建通信的探测消息;接收到所述探测消息的其他故障设备节点基于所述探测消息中的故障标识生成所述响应消息,并向发送所述探测消息的故障设备节点发送所述响应消息,从而重建故障设备节点之间的通信。
根据本发明第二方面的系统,所述集群和所述子集均采用去中心化的方式来进行集群内/子集内各个设备节点之间的数据同步,由每个设备节点向集群内/子集内的其他设备节点进行广播来执行所述数据同步。
根据本发明第二方面的系统,在所述通信故障被解决后,恢复所述集群的新领导节点与所述子集的领导节点之间的通信,将所述子集合并至所述集群,为经合并后的集群选举出合并后的领导节点,具体包括:
比较所述集群的新领导节点和所述子集的领导节点分别所领导的非领导节点的数量;其中:
当所述集群的新领导节点所领导的非领导节点的数量大于所述子集的领导节点所领导的非领导节点的数量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量小于所述子集的领导节点所领导的非领导节点的数量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量等于所述子集的领导节点所领导的非领导节点的数量时,比较在所述故障设备节点脱离所述集群后所述集群的新数据量和所述子集的数据量;其中:
当所述集群的新数据量大于所述子集的数据量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新数据量小于所述子集的数据量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新数据量等于所述子集的数据量时,随机从所述集群的新领导节点和所述子集的领导节点中选举出所述合并后的领导节点。
根据本发明第二方面的系统,在选举出所述合并后的领导节点后,将所述子集中的数据同步至所述集群,具体包括:以所述故障设备节点脱离所述集群的时间点为查询条件,在所述子集的领导设备节点上查找所述子集在所述时间点之后产生的数据,并将所述子集在所述时间点之后产生的数据同步至所述合并后的领导节点,由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第二方面的系统,当所述子集的领导设备节点为所述合并后的领导节点时,则直接由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第二方面的系统,将查找到的所述子集在所述时间点之后产生的数据以时间戳进行排序,形成完整的待同步数据。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面所述的一种数据处理方法中的步骤。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面所述的一种数据处理方法中的步骤。
综上,本发明提出的技术方案针对正常节点数需大于50%总体节点数的情况下才能使系统正常运行的这一技术问题提供了解决方案,使得在某些特殊或紧急场景下,正常节点数小于50%总体节点数时,系统也能正常工作,且节点故障被解决后也能够实现数据的即时同步。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的数据处理方法的流程示意图。
图2为根据本发明实施例的一种电子设备的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一致性算法是分布式系统中实现数据一致性的关键技术之一。在分布式系统中,多个节点之间的通信可能因为网络延迟、故障等原因导致数据不一致,而一致性算法可以解决这个问题,保证数据在多个节点之间的一致性。Raft算法协议中的节点包含3个角色:Leader(领袖):领袖由群众投票选举得出,每次选举,只能选出一名领袖;Candidate(候选人):当没有领袖时,某些群众可以成为候选人,然后去竞争领袖的位置;Follower(群众):普通节点。在进行选举过程中,还涉及一些重要的概念:Leader Election(领导人选举):简称选举,就是从候选人中选出领袖;Term(任期):单独递增的连续数字,每一次任期就会重新发起一次领导人选举;Election Timeout(选举超时):一个超时时间,当群众超时未收到领袖的心跳时,会重新进行选举。
正常运行的系统中有一个领导和N个Fllower;运行时,Leader和Fllower通过心跳来保持联络,由Leader节点来保证数据的一致性和唯一性。当Leader挂掉后,在一个超时时间内群众无法收到Leader心跳时,那么Follower们都变成Candidate重新选取Leader。选举时每个Candidate只能投一票,集群中任一Candidate获取半数就当选为新的Leader。
以上方案在某些系统中是足够使用的,但是在特殊或紧急系统中就明显不足;举例说明:假设节点有9个,1个Leader,8个Follower;由于故障,导致剩余4个节点;剩余节点数小于总节点数一半,无法再选择新的Leader,从而导致系统不可用;剩余节点无法发生作用;这是明显不合适的。
本发明针对当前系统中一致性算法raft在特殊场景下的缺点做出改进,确保在节点数小于总数的50%时,系统依然可以重新选举Leader,正常运行。举例说明:如果9个节点构成的集群,当遇到突发情况,其中四个节点与其它节点失去联系,那么剩余四个节点可以重新选取Leader,继续保证当前系统的正常运转。
以班组的微云系统为例:硬件:9台3588开发板作为硬件组成9个节点;软件:openEuler操作系统;将本发明提出的方案按接口协议替换微云系统本身的算法。编译后形成二进制运行程序,将程序离线部署到9台3588硬件节点上,9台节点除了以前系统已有的功能,还具备了集群分裂和集群合并的能力。以下将进行本发明技术方案的详细说明。
本发明第一方面提出一种数据处理方法。在所述方法中,当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,将所述部分设备节点作为故障设备节点,其中(如图1所示):所述故障设备节点脱离所述集群,并且所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群。
其中,组建所述子集的条件为:当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
根据本发明第一方面的方法,无法与所述集群保持通信具体指:无法与所述集群的原领导节点直接通信,并且无法与所述集群中的其他非领导节点直接通信;所述故障设备节点向外发送所述探测消息,所述探测消息中携带有故障标识,所述故障标识表征所述探测消息为由所述故障设备节点发送的用于重建通信的探测消息;接收到所述探测消息的其他故障设备节点基于所述探测消息中的故障标识生成所述响应消息,并向发送所述探测消息的故障设备节点发送所述响应消息,从而重建故障设备节点之间的通信。
根据本发明第一方面的方法,所述集群和所述子集均采用去中心化的方式来进行集群内/子集内各个设备节点之间的数据同步,由每个设备节点向集群内/子集内的其他设备节点进行广播来执行所述数据同步。
根据本发明第一方面的方法,在所述通信故障被解决后,恢复所述集群的新领导节点与所述子集的领导节点之间的通信,将所述子集合并至所述集群,为经合并后的集群选举出合并后的领导节点,具体包括:
比较所述集群的新领导节点和所述子集的领导节点分别所领导的非领导节点的数量;其中:
当所述集群的新领导节点所领导的非领导节点的数量大于所述子集的领导节点所领导的非领导节点的数量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量小于所述子集的领导节点所领导的非领导节点的数量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量等于所述子集的领导节点所领导的非领导节点的数量时,比较在所述故障设备节点脱离所述集群后所述集群的新数据量和所述子集的数据量;其中:
当所述集群的新数据量大于所述子集的数据量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新数据量小于所述子集的数据量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新数据量等于所述子集的数据量时,随机从所述集群的新领导节点和所述子集的领导节点中选举出所述合并后的领导节点。
根据本发明第一方面的方法,在选举出所述合并后的领导节点后,将所述子集中的数据同步至所述集群,具体包括:以所述故障设备节点脱离所述集群的时间点为查询条件,在所述子集的领导设备节点上查找所述子集在所述时间点之后产生的数据,并将所述子集在所述时间点之后产生的数据同步至所述合并后的领导节点,由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第一方面的方法,当所述子集的领导设备节点为所述合并后的领导节点时,则直接由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第一方面的方法,将查找到的所述子集在所述时间点之后产生的数据以时间戳进行排序,形成完整的待同步数据。
本发明第二方面提出一种数据处理系统。当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,所述系统的处理单元将所述部分设备节点作为故障设备节点,所述处理单元被配置为:将所述故障设备节点脱离所述集群,并且令所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群。
其中,组建所述子集的条件为:当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
根据本发明第二方面的系统,无法与所述集群保持通信具体指:无法与所述集群的原领导节点直接通信,并且无法与所述集群中的其他非领导节点直接通信;所述故障设备节点向外发送所述探测消息,所述探测消息中携带有故障标识,所述故障标识表征所述探测消息为由所述故障设备节点发送的用于重建通信的探测消息;接收到所述探测消息的其他故障设备节点基于所述探测消息中的故障标识生成所述响应消息,并向发送所述探测消息的故障设备节点发送所述响应消息,从而重建故障设备节点之间的通信。
根据本发明第二方面的系统,所述集群和所述子集均采用去中心化的方式来进行集群内/子集内各个设备节点之间的数据同步,由每个设备节点向集群内/子集内的其他设备节点进行广播来执行所述数据同步。
根据本发明第二方面的系统,在所述通信故障被解决后,恢复所述集群的新领导节点与所述子集的领导节点之间的通信,将所述子集合并至所述集群,为经合并后的集群选举出合并后的领导节点,具体包括:
比较所述集群的新领导节点和所述子集的领导节点分别所领导的非领导节点的数量;其中:
当所述集群的新领导节点所领导的非领导节点的数量大于所述子集的领导节点所领导的非领导节点的数量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量小于所述子集的领导节点所领导的非领导节点的数量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量等于所述子集的领导节点所领导的非领导节点的数量时,比较在所述故障设备节点脱离所述集群后所述集群的新数据量和所述子集的数据量;其中:
当所述集群的新数据量大于所述子集的数据量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新数据量小于所述子集的数据量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新数据量等于所述子集的数据量时,随机从所述集群的新领导节点和所述子集的领导节点中选举出所述合并后的领导节点。
根据本发明第二方面的系统,在选举出所述合并后的领导节点后,将所述子集中的数据同步至所述集群,具体包括:以所述故障设备节点脱离所述集群的时间点为查询条件,在所述子集的领导设备节点上查找所述子集在所述时间点之后产生的数据,并将所述子集在所述时间点之后产生的数据同步至所述合并后的领导节点,由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第二方面的系统,当所述子集的领导设备节点为所述合并后的领导节点时,则直接由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
根据本发明第二方面的系统,将查找到的所述子集在所述时间点之后产生的数据以时间戳进行排序,形成完整的待同步数据。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面所述的一种数据处理方法中的步骤。
图2为根据本发明实施例的一种电子设备的结构图,如图2所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面所述的一种数据处理方法中的步骤。
综上,本发明提出的技术方案针对正常节点数需大于50%总体节点数的情况下才能使系统正常运行的这一技术问题提供了解决方案,使得在某些特殊或紧急场景下,正常节点数小于50%总体节点数时,系统也能正常工作,且节点故障被解决后也能够实现数据的即时同步。
请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据处理方法,其特征在于,在所述方法中,当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,将所述部分设备节点作为故障设备节点,其中:
所述故障设备节点脱离所述集群,并且所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;
为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群;
其中,组建所述子集的条件为:
当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;
当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
2.根据权利要求1所述的一种数据处理方法,其特征在于:
无法与所述集群保持通信具体指:无法与所述集群的原领导节点直接通信,并且无法与所述集群中的其他非领导节点直接通信;
所述故障设备节点向外发送所述探测消息,所述探测消息中携带有故障标识,所述故障标识表征所述探测消息为由所述故障设备节点发送的用于重建通信的探测消息;
接收到所述探测消息的其他故障设备节点基于所述探测消息中的故障标识生成所述响应消息,并向发送所述探测消息的故障设备节点发送所述响应消息,从而重建故障设备节点之间的通信。
3.根据权利要求1所述的一种数据处理方法,其特征在于,所述集群和所述子集均采用去中心化的方式来进行集群内/子集内各个设备节点之间的数据同步,由每个设备节点向集群内/子集内的其他设备节点进行广播来执行所述数据同步。
4.根据权利要求2所述的一种数据处理方法,其特征在于,在所述通信故障被解决后,恢复所述集群的新领导节点与所述子集的领导节点之间的通信,将所述子集合并至所述集群,为经合并后的集群选举出合并后的领导节点,具体包括:
比较所述集群的新领导节点和所述子集的领导节点分别所领导的非领导节点的数量;其中:
当所述集群的新领导节点所领导的非领导节点的数量大于所述子集的领导节点所领导的非领导节点的数量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量小于所述子集的领导节点所领导的非领导节点的数量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新领导节点所领导的非领导节点的数量等于所述子集的领导节点所领导的非领导节点的数量时,比较在所述故障设备节点脱离所述集群后所述集群的新数据量和所述子集的数据量;其中:
当所述集群的新数据量大于所述子集的数据量时,将所述集群的新领导节点作为所述合并后的领导节点;
当所述集群的新数据量小于所述子集的数据量时,将所述子集的领导节点作为所述合并后的领导节点;
当所述集群的新数据量等于所述子集的数据量时,随机从所述集群的新领导节点和所述子集的领导节点中选举出所述合并后的领导节点。
5.根据权利要求4所述的一种数据处理方法,其特征在于,在选举出所述合并后的领导节点后,将所述子集中的数据同步至所述集群,具体包括:以所述故障设备节点脱离所述集群的时间点为查询条件,在所述子集的领导设备节点上查找所述子集在所述时间点之后产生的数据,并将所述子集在所述时间点之后产生的数据同步至所述合并后的领导节点,由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
6.根据权利要求5所述的一种数据处理方法,其特征在于,当所述子集的领导设备节点为所述合并后的领导节点时,则直接由所述合并后的领导节点向所述经合并后的集群广播所述子集在所述时间点之后产生的数据。
7.根据权利要求6所述的一种数据处理方法,其特征在于,将查找到的所述子集在所述时间点之后产生的数据以时间戳进行排序,形成完整的待同步数据。
8.一种数据处理系统,其特征在于,当由N个设备节点构成的集群产生通信故障且部分设备节点无法与所述集群保持通信的情况下,所述系统的处理单元将所述部分设备节点作为故障设备节点,所述处理单元被配置为:
将所述故障设备节点脱离所述集群,并且令所述故障设备节点中的每个故障设备节点均通过向外发送探测消息并接收所述探测消息的响应消息来组建M个子集,N和M均为正整数且M≤N;
为所述集群选举出新领导节点,为所述M个子集分别选举出领导节点,所述集群的新领导节点和所述M个子集各自的领导节点用于在所述通信故障被解决后将所述M个子集中的数据同步至所述集群;
其中,组建所述子集的条件为:
当所述故障设备节点未收到任何所述响应消息时,将所述故障设备节点自身组建为一个子集;
当所述故障设备节点收到所述响应消息时,将所述故障设备节点与发送所述响应消息的故障设备节点组建为一个子集,重建该子集内各个故障设备节点之间的通信。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-7任一项所述的一种数据处理方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任一项所述的一种数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311090764.XA CN116827966B (zh) | 2023-08-29 | 2023-08-29 | 一种数据处理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311090764.XA CN116827966B (zh) | 2023-08-29 | 2023-08-29 | 一种数据处理方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116827966A CN116827966A (zh) | 2023-09-29 |
CN116827966B true CN116827966B (zh) | 2024-04-26 |
Family
ID=88124319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311090764.XA Active CN116827966B (zh) | 2023-08-29 | 2023-08-29 | 一种数据处理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827966B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124305A (zh) * | 2017-04-20 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
CN113518126A (zh) * | 2021-06-30 | 2021-10-19 | 深圳市前海泽金产融科技有限公司 | 一种面向联盟链的交叉容错方法 |
KR20220141170A (ko) * | 2021-04-12 | 2022-10-19 | 이화여자대학교 산학협력단 | 프라이빗 블록체인에서 연합학습을 이용한 지도자 선출 방법, 이를 수행하기 위한 기록 매체 및 장치 |
WO2023131812A1 (en) * | 2022-01-04 | 2023-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Hierarchically scalable, fault-tolerant data access |
-
2023
- 2023-08-29 CN CN202311090764.XA patent/CN116827966B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124305A (zh) * | 2017-04-20 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 节点设备运行方法及节点设备 |
KR20220141170A (ko) * | 2021-04-12 | 2022-10-19 | 이화여자대학교 산학협력단 | 프라이빗 블록체인에서 연합학습을 이용한 지도자 선출 방법, 이를 수행하기 위한 기록 매체 및 장치 |
CN113518126A (zh) * | 2021-06-30 | 2021-10-19 | 深圳市前海泽金产融科技有限公司 | 一种面向联盟链的交叉容错方法 |
WO2023131812A1 (en) * | 2022-01-04 | 2023-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Hierarchically scalable, fault-tolerant data access |
Non-Patent Citations (1)
Title |
---|
Ceph分布式系统的ISCSI高可用集群;何汉东 等;计算机系统应用;20170731(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116827966A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014634B (zh) | 集群选举处理方法、装置、设备及存储介质 | |
CN106331098B (zh) | 一种服务器集群系统 | |
CN109729111B (zh) | 用于管理分布式系统的方法、设备和计算机程序产品 | |
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
CN106933659B (zh) | 管理进程的方法和装置 | |
CN110162428A (zh) | 数据同步方法及装置、电子设备和计算机可读存储介质 | |
CN114124978B (zh) | 一种基于分布式协同的视频云服务高可用方法和装置 | |
CN111198662A (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN113810216B (zh) | 一种集群的故障切换方法、装置及电子设备 | |
CN114268532A (zh) | 一种基于Raft协议的竞选方法、分布式系统及存储介质 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN113489149B (zh) | 基于实时状态感知的电网监控系统业务主节点选取方法 | |
CN110730095A (zh) | 一种面向云计算平台的数据安全应急演练方法和系统 | |
CN116827966B (zh) | 一种数据处理方法与系统 | |
CN111291063B (zh) | 主备副本选举方法、系统、计算机设备和存储介质 | |
CN111427689B (zh) | 集群保活方法、装置及存储介质 | |
CN116095145B (zh) | 一种vpc集群的数据控制方法和系统 | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
US20230126682A1 (en) | Fault tolerance method and apparatus of network device system, computer device, and storage medium | |
CN114185691A (zh) | 一种基于Sidecar的UDP组播方法和系统 | |
CN111064622B (zh) | 网络设备、同步装置及信息传输方法 | |
CN110113395B (zh) | 共享文件系统维护方法及装置 | |
CN114328036A (zh) | 一种硬件故障检测方法、系统及相关设备 | |
CN115643237B (zh) | 一种用于会议的数据处理系统 | |
CN111953760B (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 | ||
GR01 | Patent grant |