CN104320464A - 分布式集群重配方法和装置 - Google Patents
分布式集群重配方法和装置 Download PDFInfo
- Publication number
- CN104320464A CN104320464A CN201410582569.3A CN201410582569A CN104320464A CN 104320464 A CN104320464 A CN 104320464A CN 201410582569 A CN201410582569 A CN 201410582569A CN 104320464 A CN104320464 A CN 104320464A
- Authority
- CN
- China
- Prior art keywords
- node
- reprovision
- response message
- recipient node
- message
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Abstract
本发明实施例提供一种分布式集群重配方法和装置,通过管理节点接收重配命令,分别向旧分布式集群和新分布式集群中的每个接受节点发送重配操作消息,在确认满足激活条件时,分别向旧分布式集群和新分布式集群中的每个接受节点发送激活操作消息,在确认满足重配成功条件时,将N个接受节点的信息更新到自身的节点地图中。可以看出,将重配的过程当做一个决议协商过程进行处理,无需中断原有的协议过程,即中断业务,从而,可应用于更广泛的范围。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种分布式集群重配方法和装置。
背景技术
在一个分布式集群系统中,通常包括一个管理节点(Leader)和多个接受节点(Acceptor),通过管理节点提出决议与接受节点进行协商,保证分布式集群中各个节点的一致性。
分布式集群系统在运行中,通常会因为业务需要等原因对集群进行扩容、缩容或替换等处理,将这些处理统称为对分布式集群重配,现有技术中,当需要进行分布式集群重配时,采用冷重配技术,即中断当前协商过程、更改集群配置文件、重启集群恢复协商。
然而,针对很多7×24小时服务的分布式集群系统是不允许中断业务的,因此,采用现有技术的方法进行分布式集群重配,应用范围有限。
发明内容
本发明实施例提供一种分布式集群重配方法和装置,以扩大应用范围。
本发明实施例第一方面提供一种分布式集群重配方法,用于将旧分布式集群重配为新分布式集群,所述旧分布式集群包括管理节点和S个接受节点,所述新分布式集群包括所述管理节点和N个接受节点,其中,所述S为大于等于1的整数,所述N为大于等于1的整数,所述重配方法包括:
所述管理节点接收重配命令,所述重配命令指示对所述旧分布式集群进行重配,且携带所述新分布式集群包含的N个接受节点的信息;
所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息,每个所述重配操作消息携带所述管理节点当前的最大版本号,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行版本更新;
所述管理节点分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;
在确认满足激活条件时,所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送激活操作消息,每个所述激活操作消息携带所述N个接受节点的信息,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行节点地图的更新;
所述管理节点分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;
在确认满足重配成功条件时,所述管理节点将所述N个接受节点的信息更新到自身的节点地图中。
结合第一方面,在第一方面的第一种可能的实现方式中,所述确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,包括:
若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第一预设值,或者,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;
其中,所述第一预设值为大于等于S+1/2且小于S的整数,所述第二预设值为大于等于N+1/2且小于N的整数。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,包括:
若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第三预设值,或者,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;
其中,所述第三预设值为大于等于S+1/2且小于S的整数,所述第四预设值为大于等于N+1/2且小于N的整数。
结合第一方面,在第一方面的第三种可能的实现方式中,当所述旧分布式集群和所述新分布式集群为下述任一种情况时,
N为偶数时,S为N+1时,所述新分布式集群与所述旧分布式集群中有S个节点相同;
N为偶数时,S为N-1时,所述新分布式集群与所述旧分布式集群中有N-1个节点相同;
N为偶数时,S=N时,所述新分布式集群与所述旧分布式集群中有Q个节点相同,所述Q大于等于1且小于等于S-1;
N为奇数时,S为N+2时,所述新分布式集群与所述旧分布式集群中有N个节点相同;
N为奇数时,S为N-2时,所述新分布式集群与所述旧分布式集群中有N-2个节点相同;
N为奇数时,S=N时,所述新分布式集群与所述旧分布式集群中有N-1个节点相同;
所述确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,包括:
若所述管理节点接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
若所述管理节点接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;
所述第五预设值为大于等于N+1/2且小于N的整数。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,包括:
若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;
其中,所述第五预设值为大于等于N+1/2且小于N的整数。
结合第一方面或第一方面的第一种至第四种可能的实现方式中任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息之前,还包括:
所述管理节点确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号,所述N+1/2≤M≤N且为整数,所述R为大于等于1的整数。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述管理节点确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号之前,还包括:
所述管理节点接收所述N个接受节点中的L个接受节点发送的请求补充版本消息,所述请求补充版本消息中包含所述接受节点的最大版本号,所述1≤L≤N且为整数;
所述管理节点根据所述接受节点的最大版本号与所述管理节点的最大版本号,确定所述接受节点待补充的版本和对应的决议值;
所述管理节点向所述接受节点发送所述请求补充版本消息的响应消息,所述请求补充版本消息的响应消息中包含所述接受节点待补充的版本和对应的决议值。
结合第一方面的第五种或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述R个版本为X次协商的版本数,所述X为大于等于1的整数。
本发明实施例第二方面提供一种分布式集群重配装置,用于将旧分布式集群重配为新分布式集群,所述旧分布式集群包括管理节点和S个接受节点,所述新分布式集群包括所述管理节点和N个接受节点,其中,所述S为大于等于1的整数,所述N为大于等于1的整数,所述装置包括:
接收模块,用于接收重配命令,所述重配命令指示对所述旧分布式集群进行重配,且携带所述新分布式集群包含的N个接受节点的信息;
发送模块,用于分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息,每个所述重配操作消息携带所述管理节点当前的最大版本号,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行版本更新;
处理模块,用于分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;
所述发送模块,还用于在确认满足激活条件时,分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送激活操作消息,每个所述激活操作消息携带所述N个接受节点的信息,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行节点地图的更新;
所述处理模块,还用于分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;
更新模块,用于在确认满足重配成功条件时,将所述N个接受节点的信息更新到自身的节点地图中。
结合第二方面,在第二方面的第一种可能的实现方式中,所述处理模块具体用于若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第一预设值,或者,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;
其中,所述第一预设值为大于等于S+1/2且小于S的整数,所述第二预设值为大于等于N+1/2且小于N的整数。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理模块具体用于若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第三预设值,或者,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;
其中,所述第三预设值为大于等于S+1/2且小于S的整数,所述第四预设值为大于等于N+1/2且小于N的整数。
结合第一方面,在第一方面的第三种可能的实现方式中,当所述旧分布式集群和所述新分布式集群为下述任一种情况时,
N为偶数时,S为N+1时,所述新分布式集群与所述旧分布式集群中有S个节点相同;
N为偶数时,S为N-1时,所述新分布式集群与所述旧分布式集群中有N-1个节点相同;
N为偶数时,S=N时,所述新分布式集群与所述旧分布式集群中有Q个节点相同,所述Q大于等于1且小于等于S-1;
N为奇数时,S为N+2时,所述新分布式集群与所述旧分布式集群中有N个节点相同;
N为奇数时,S为N-2时,所述新分布式集群与所述旧分布式集群中有N-2个节点相同;
N为奇数时,S=N时,所述新分布式集群与所述旧分布式集群中有N-1个节点相同;
所述处理模块具体用于若所述管理节点接收到接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若所述管理节点接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;
所述第五预设值为大于等于N+1/2且小于N的整数。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述处理模块具体用于若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;
其中,所述第五预设值为大于等于N+1/2且小于N的整数。
结合第二方面或第二方面的第一种至第四种可能的实现方式中任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述处理模块还用于确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号,所述N+1/2≤M≤N且为整数,所述R为大于等于1的整数。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述接收模块,还用于接收所述N个接受节点中的L个接受节点发送的请求补充版本消息,所述请求补充版本消息中包含所述接受节点的最大版本号,所述1≤L≤N且为整数;
所述处理模块,还用于根据所述接受节点的最大版本号与所述管理节点的最大版本号,确定所述接受节点待补充的版本和对应的决议值;
所述发送模块,还用于向所述接受节点发送所述请求补充版本消息的响应消息,所述请求补充版本消息的响应消息中包含所述接受节点待补充的版本和对应的决议值。
结合第二方面的第五种或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述R个版本为X次协商的版本数,所述X为大于等于1的整数。
本发明实施例提供的分布式集群重配方法和装置,通过管理节点接收重配命令,上述重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的N个接受节点的信息;上述管理节点分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送重配操作消息,分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;在确认满足激活条件时,分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送激活操作消息,分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;在确认满足重配成功条件时,将上述N个接受节点的信息更新到自身的节点地图中。可以看出,将重配的过程当做一个决议协商过程进行处理,无需中断原有的协议过程,即中断业务,从而,可应用于更广泛的范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明分布式集群重配方法实施例一的流程示意图;
图2为本发明分布式集群重配方法实施例二的流程示意图;
图3为本发明分布式集群重配方法实施例三的流程示意图;
图4为本发明分布式集群重配装置实施例一的结构示意图;
图5为本发明分布式集群重配装置实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式集群通常包括一个管理节点和多个接受节点,常常会因为业务需要等原因,要对分布式集群进行扩容、缩容或替换等处理,将这些处理统称为对分布式集群重配,为了描述方便,将进行重配之前的分布式集群称为旧分布式集群,经进行重配之后的分布式集群称为新分布式集群。其中,进行扩容是指在旧分布式集群中增加节点,例如:旧分布式集群包括管理节点A、接受节点B、接受节点C,增加接受节点D和接受节点E,扩容处理后得到的新分布式集群则包含管理节点A、接受节点B、接受节点C,接受节点D和接受节点E;进行缩容是指删除旧分布式集群中的一个或多个节点,以删除一个节点为例,假设,旧分布式集群包括管理节点A、接受节点B、接受节点C,删除接受节点B,缩容处理后得到的新分布式集群则包含管理节点A、接受节点C;进行替换是指将旧分布式集群中的一个或多个节点替换为新的节点,例如:旧分布式集群中包含管理节点A、接受节点B、接受节点C,将接受节点B替换为接受节点D、将接受节点C替换为接受节点E,替换处理后得到的新分布式集群则包含管理节点A、接受节点D和接受节点E。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明分布式集群重配方法实施例一的流程示意图,如图1所示,本实施例的方法用于将旧分布式集群重配为新分布式集群,旧分布式集群包括管理节点和S个接受节点,新分布式集群包括管理节点和N个接收节点,其中,S为大于等于1的整数,N为大于等于1的整数,本实施例的执行主体是管理节点,本实施例的方法如下:
S101:管理节点接收重配命令。
当用户根据业务需要等原因要对集群进行扩容、缩容或替换时,用户向管理节点发送重配命令,重配命令指示对旧分布式集群进行重配,且携带新分布式集群包含的N个接受节点的信息。
S102:管理节点分别向旧分布式集群和新分布式集群中的每个接受节点发送重配操作消息。
其中,每个重配操作消息携带上述管理节点当前的最大版本号,以使得旧分布式集群和新分布式集群中的每个接受节点进行版本更新。
具体地,若接受节点的最大版本号与管理节点的最大版本号一致,接受节点则向管理节点发送重配操作消息的响应消息,若接受节点的最大版本号低于管理节点的最大版本号,接受节点则向管理节点发送请求补充版本消息,获取与管理节点相差的版本,直到接受节点与管理节点的最大版本号一致,向管理节点发送重配操作消息的响应消息。
需要说明的是,当旧分布式集群和新分布式集群中存在相同的接受节点时,可以只向该接受节点发送一次重配操作消息,也就是,管理节点分别向旧分布式集群和新分布式集群中的每个接受节点发送重配操作消息,是指向旧分布式集群和新分布式集群的并集中的每个接受节点发送重配操作消息。
S103:管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件。
S104:在确认满足激活条件时,管理节点分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送激活操作消息。
其中,每个上述激活操作消息携带上述N个接受节点的信息,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行节点地图的更新。
一个集群中的每个节点本地都会缓存节点地图,节点地图中包含该节点所在集群的所有节点的标识。
需要说明的是,当旧分布式集群和新分布式集群中存在相同的接受节点时,可以只发送一次激活操作消息,也就是,管理节点分别向旧分布式集群和新分布式集群中的每个接受节点发送重配操作消息,是指向旧分布式集群和新分布式集群的并集中的每个接受节点发送激活操作消息。
S105:管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件。
S106:在确认满足重配成功条件时,管理节点将上述N个接受节点的信息更新到自身的节点地图中。
本实施例,通过管理节点接收重配命令,重配命令指示对旧分布式集群进行重配,且携带新分布式集群包含的N个接受节点的信息;管理节点分别向旧分布式集群和新分布式集群中的每个接受节点发送重配操作消息,分别接收旧分布式集群和新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;在确认满足激活条件时,分别向旧分布式集群和新分布式集群中的每个接受节点发送激活操作消息,分别接收旧分布式集群和新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;在确认满足重配成功条件时,将N个接受节点的信息更新到自身的节点地图中。可以看出,将重配的过程当做一个决议协商过程进行处理,无需中断原有的协议过程,即中断业务,从而,可应用于更广泛的范围。
在图1所示实施例的基础上,对于管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息之后,如何确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,和管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息之后,如何确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件。具体地实现包括但不限于以下两种方式:
其中,第一种方式:
针对管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息之后,如何确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,具体如下:
若管理节点接收到上述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若上述管理节点接收到上述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第一预设值,或者,接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件。
其中,第一预设值为大于等于S+1/2且小于S的整数,第二预设值为大于等于N+1/2且小于N的整数。
也就是,管理节点接收到新分布式集群中的大多数的接受节点发送的重配操作消息的响应消息,并且,接收到旧分布式集群的大多数的接受节点发送的重配操作消息的响应消息,则确定满足激活条件。
针对管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息之后,如何确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,具体如下:
若上述管理节点接收到上述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
若上述管理节点接收到上述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第三预设值,或者,接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;
其中,上述第三预设值为大于等于S+1/2且小于S的整数,上述第四预设值为大于等于N+1/2且小于N的整数。
也就是,管理节点接收到新分布式集群中的大多数的接受节点发送的激活操作消息的响应消息,并且,接收到旧分布式集群的大多数的接受节点发送的激活操作消息的响应消息,则确定满足重配成功条件。
第二种方式:
第二种方式应用于旧分布式集群和上述新分布式集群为下述任一种情况时,1、N为偶数时,S为N+1时,上述新分布式集群与上述旧分布式集群中有S个节点相同;2、N为偶数时,S为N-1时,上述新分布式集群与上述旧分布式集群中有N-1个节点相同;3、N为偶数时,S=N时,上述新分布式集群与上述旧分布式集群中有Q个节点相同,上述Q大于等于1且小于等于S-1;4、N为奇数时,S为N+2时,上述新分布式集群与上述旧分布式集群中有N个节点相同;5、N为奇数时,S为N-2时,上述新分布式集群与上述旧分布式集群中有N-2个节点相同;6、N为奇数时,S=N时,上述新分布式集群与上述旧分布式集群中有N-1个节点相同。
针对管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息之后,如何确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,具体如下:
若上述管理节点接收到接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若上述管理节点接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;上述第五预设值为大于等于N+1/2且小于N的整数。
也就是,管理节点接收到新分布式集群中的大多数的接受节点发送的重配操作消息的响应消息,则确定满足激活条件。
针对管理节点分别接收旧分布式集群和新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息之后,如何确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,具体如下:
若上述管理节点接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;若上述管理节点接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;其中,上述第五预设值为大于等于N+1/2且小于N的整数。
也就是,管理节点接收到新分布式集群中的大多数的接受节点发送的激活操作消息的响应消息,则确定满足重配成功条件。
第二种方式与第一种方式不同的是,第二种方式因应用于上述6种场景中,无需考虑旧分布式集群的响应消息,因此,能够进一步提高了重配效率。
在图1所示实施例中,在执行S102之前,还包括:管理节点确定上述N个接受节点中的M个接受节点的最大版本号与上述管理节点的最大版本号相差小于R个版本号,上述N+1/2≤M≤N且为整数,上述R为大于等于1的整数。R个版本为X次协商的版本,上述X为大于等于1的整数。每次协商可以协商一个或者多个版本。在每次协商结束时,管理节点执行上述S102。
在上述实施例中,上述管理节点确定上述N个接受节点中的M个接受节点的最大版本号与上述管理节点的最大版本号相差小于R个版本号之前,还包括:上述管理节点接收上述N个接受节点中的L个接受节点发送的请求补充版本消息,上述请求补充版本消息中包含上述接受节点的最大版本号,上述1≤L≤N且为整数;上述管理节点根据上述接受节点的最大版本号与上述管理节点的最大版本号,确定上述接受节点待补充的版本和对应的决议值;上述管理节点向上述接受节点发送上述请求补充版本消息的响应消息,上述请求补充版本消息的响应消息中包含上述接受节点待补充的版本和对应的决议值。
针对上述第一种方式,以扩容场景为例进行具体说明,假设旧分布式集群中包含管理节点A、接受节点B和接受节点C,增加接受节点D和接受节点E,扩容后的新分布式集群包括管理节点A、接受节点B、接受节点C,接受节点D和接受节点E,如图2所示,图2为本发明分布式集群重配方法实施例二的流程示意图;
S201:管理节点A接收用户发送的重配命令。
其中,重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的5个接受节点的信息。分别为管理节点A、接受节点B、接受节点C,接受节点D和接受节点E的标识;
管理节点A接收到用户的发送的重配命令之后,缓存该重配命令。
S202:接受节点D向管理节点A发送请求补充版本消息,
请求补充版本消息也称“catch UP”消息,请求补充版本消息中包含接受节点D的最大版本号、ID等信息,向管理节点A请求补全自己落后的版本。
S203:接受节点E向管理节点A发送请求补充版本消息,
请求补充版本消息也称“catch UP”消息,请求补充版本消息中包含接受节点E的最大版本号、ID等信息,向管理节点A请求补全自己落后的版本。
需要说明的是,S202和S203的执行没有先后顺序限制。
S204:管理节点A向接受节点D发送请求补充版本消息的响应消息。
请求补充版本消息的响应消息也称“catch UP ACK”消息,请求补充版本消息的响应消息中包含接受节点待补充的版本和对应的决议值。
接受节点D将待补充的版本和对应地决议值写“Commit”日志持久化。
S205:管理节点A向接受节点E发送请求补充版本消息的响应消息。
响应版本消息也称“catch UP ACK”消息,响应版本消息中包含接受节点待补充的版本和对应的决议值。
接受节点E将待补充的版本和对应地决议值写“Commit”日志持久化。
需要说明的是,S204和S205的执行没有先后顺序限制。
在S201~S205的执行过程中,管理节点A与接受节点B和接受节点C的协商过程一直在执行。在每次协商结束之后,管理节点A执行S206。
S206:确定是否满足发送重配操作消息的条件。
上述发送重配操作消息的条件是指接受节点B、接受节点C、接受节点D和接受节点E中大多数的版本与管理节点A相差R个版本。
其中,R个版本为一次协商的版本数时效果最好,每次协商可以协商多个版本。
S207:管理节点A向接受节点B发送重配操作消息。
其中,重配操作消息也称为“COP”消息。重配操作消息中包含管理节点A当前的最大版本号和新分布式集群的N个节点的标识。
S208:管理节点A向接受节点C发送重配操作消息。
S209:管理节点A向接受节点D发送重配操作消息。
S210:管理节点A向接受节点E发送重配操作消息。
需要说明的是,S207到S210的执行没有先后顺序限制。
接受节点B、接受节点C、接受节点D和接受节点E接收到重配操作消息之后,查看自身的最大版本号,若接受节点的最大版本号低于管理节点的最大版本号,接受节点则向管理节点发送请求补充版本消息,获取与管理节点相差的版本,直到接受节点与管理节点的最大版本号一致,向管理节点发送重配响应消息。
S211:接收节点B向管理节点A发送重配操作消息的响应消息。
重配操作消息的响应消息也称“COP ACK”消息。
S212:接收节点D向管理节点A发送重配操作消息的响应消息。
重配操作消息的响应消息也称“COP ACK”消息。
需要说明的是,S211到S212的执行没有先后顺序限制。
S213:管理节点A确定是否满足激活条件。
上述激活条件是接收到接受节点B、接受节点C、接受节点D和接受节点E中的大多数的重配操作消息的响应消息,并接收到接受节点B、接受节点C中的大多数的重配操作消息的响应消息。若满足,执行S214。
S214:管理节点A向接受节点B发送激活操作消息。
激活操作消息也称“activate”消息,激活操作消息中携带管理节点A、接受节点B、接受节点C、接受节点D和接受节点E。
S215:管理节点A向接受节点C发送激活操作消息。
S216:管理节点A向接受节点D发送激活操作消息。
S217:管理节点A向接受节点E发送激活操作消息。
需要说明的是,S214到S217的执行没有先后顺序限制。
S218:接受节点B更新节点地图并向管理节点A发送激活操作消息的响应消息。
更新节点地图,即将节点地图中管理节点A、接受节点B、接受节点C的标识,更新为管理节点A、接受节点B、接受节点C、接受节点D和接受节点E的标识。
激活操作消息的响应消息,也称为“activate ACK”
S219:接受节点D更新节点地图并向管理节点A发送激活操作消息的响应消息。
需要说明的是,S218和S219的执行没有先后顺序限制。
S220:管理节点A确定是否满足重配成功条件。
上述重配成功条件是接收到接受节点B、接受节点C、接受节点D和接受节点E中的大多数的激活操作消息的响应消息,并接收到接受节点B、接受节点C中的大多数的激活操作消息的响应消息。若满足,执行S221。
S221:管理节点A更新自身的节点地图,并向用户发送重配成功命令。
图2所示实施例的实现原理和技术效果与图1所示实施例类似,此处不再赘述。
针对第二种方式,以扩容场景为例进行具体说明,假设旧分布式集群中包含管理节点A、接受节点B和接受节点C,增加接受节点D扩容后的新分布式集群包括管理节点A、接受节点B、接受节点C和接受节点D,如图3所示,图3为本发明分布式集群重配方法实施例三的流程示意图;
S301:管理节点A接收用户发送的重配命令。
其中,重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的5个接受节点的信息。分别为管理节点A、接受节点B、接受节点C和接受节点D标识;
管理节点A接收到用户的发送的重配命令之后,缓存该重配命令。
S302:接受节点D向管理节点A发送请求补充版本消息,
请求补充版本消息也称“catch UP”消息,请求补充版本消息中包含接受节点D的最大版本号、ID等信息,向管理节点A请求补全自己落后的版本。
S303:管理节点A向接受节点D发送请求补充版本消息的响应消息。
请求补充版本消息的响应消息也称“catch UP ACK”消息,请求补充版本消息的响应消息中包含接受节点待补充的版本和对应的决议值。
接受节点D将待补充的版本和对应地决议值写“Commit”日志持久化。
在S301~S303的执行过程中,管理节点A与接受节点B和接受节点C的协商过程一直在执行。在每次协商结束之后,管理节点A执行S304。
S304:确定是否满足发送重配操作消息的条件。
发送重配操作消息的条件是指接受节点B、接受节点C和接受节点D中大多数的版本与管理节点A相差R个版本。
其中,R个版本为一次协商的版本数时效果最好,每次协商可以协商多个版本。
S305:管理节点A向接受节点B发送重配操作消息。
其中,重配操作消息也称为“COP”消息。重配操作消息中包含管理节点A当前的最大版本号和新分布式集群的N个节点的标识。
S306:管理节点A向接受节点C发送重配操作消息。
S307:管理节点A向接受节点D发送重配操作消息。
需要说明的是,S305到S307的执行没有先后顺序限制。
接受节点B、接受节点C和接受节点D接收到重配操作消息之后,查看自身的最大版本号,若接受节点的最大版本号低于管理节点的最大版本号,接受节点则向管理节点发送请求补充版本消息,获取与管理节点相差的版本,直到接受节点与管理节点的最大版本号一致,向管理节点发送重配响应消息。
S308:接收节点B向管理节点A发送重配操作消息的响应消息。
重配操作消息的响应消息也称“COP ACK”消息。
S309:接收节点D向管理节点A发送重配操作消息的响应消息。
重配操作消息的响应消息也称“COP ACK”消息。
需要说明的是,S308到S309的执行没有先后顺序限制。
S310:管理节点A确定是否满足激活条件。
上述激活条件是接收到接受节点B、接受节点C和接受节点D和接受节点E中的大多数的重配操作消息的响应消息。若满足,执行S311。
S311:管理节点A向接受节点B发送激活操作消息。
激活操作消息也称“activate”消息,激活操作消息中携带管理节点A、接受节点B、接受节点C和接受节点D。
S312:管理节点A向接受节点C发送激活操作消息。
S313:管理节点A向接受节点D发送激活操作消息。
需要说明的是,S312到S313的执行没有先后顺序限制。
S314:接受节点B更新节点地图并向管理节点A发送激活操作消息的响应消息。
更新节点地图,即将节点地图中管理节点A、接受节点B、接受节点C的标识,更新为管理节点A、接受节点B、接受节点C和接受节点D的标识。
激活操作消息的响应消息,也称为“activate ACK”
S315:接受节点D更新节点地图并向管理节点A发送激活操作消息的响应消息。
需要说明的是,S314和S315的执行没有先后顺序限制。
S316:管理节点A确定是否满足重配成功条件。
上述重配成功条件是接收到接受节点B、接受节点C和接受节点D中的大多数的激活操作消息的响应消息。若满足,执行S317。
S317:管理节点A更新节点地图,并向用户发送重配成功命令。
图3所示实施例的实现原理和技术效果与图1所示实施例类似,此处不再赘述。
图4为本发明分布式集群重配装置实施例一的结构示意图,本实施例的分布式集群重配装置为管理节点,本实施例的装置用于将旧分布式集群重配为新分布式集群,上述旧分布式集群包括管理节点和S个接受节点,上述新分布式集群包括上述管理节点和N个接受节点,其中,上述S为大于等于1的整数,上述N为大于等于1的整数,本实施例的装置包括:接收模块401、发送模块402、处理模块403和更新模块404,其中,接收模块401用于接收重配命令,上述重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的N个接受节点的信息;发送模块402用于分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送重配操作消息,每个上述重配操作消息携带上述管理节点当前的最大版本号,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行版本更新;处理模块403用于分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;上述发送模块402还用于在确认满足激活条件时,分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送激活操作消息,每个上述激活操作消息携带上述N个接受节点的信息,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行节点地图的更新;上述处理模块403还用于分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;更新模块404用于在确认满足重配成功条件时,将上述N个接受节点的信息更新到自身的节点地图中。
在上述实施例中,上述处理模块403具体用于若上述管理节点接收到上述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若上述管理节点接收到上述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第一预设值,或者,接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;其中,上述第一预设值为大于等于S+1/2且小于S的整数,上述第二预设值为大于等于N+1/2且小于N的整数。
在上述实施例中,上述处理模块403具体用于若上述管理节点接收到上述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;若上述管理节点接收到上述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第三预设值,或者,接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;其中,上述第三预设值为大于等于S+1/2且小于S的整数,上述第四预设值为大于等于N+1/2且小于N的整数。
在上述实施例中,当上述旧分布式集群和上述新分布式集群为下述任一种情况时,N为偶数时,S为N+1时,上述新分布式集群与上述旧分布式集群中有S个节点相同;N为偶数时,S为N-1时,上述新分布式集群与上述旧分布式集群中有N-1个节点相同;N为偶数时,S=N时,上述新分布式集群与上述旧分布式集群中有Q个节点相同,上述Q大于等于1且小于等于S-1;N为奇数时,S为N+2时,上述新分布式集群与上述旧分布式集群中有N个节点相同;N为奇数时,S为N-2时,上述新分布式集群与上述旧分布式集群中有N-2个节点相同;N为奇数时,S=N时,上述新分布式集群与上述旧分布式集群中有N-1个节点相同;
上述处理模块403具体用于若上述管理节点接收到接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;若上述管理节点接收到上述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数小于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数不满足激活条件;上述第五预设值为大于等于N+1/2且小于N的整数。
在上述实施例中,上述处理模块403具体用于若上述管理节点接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;若上述管理节点接收到上述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数小于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数不满足重配成功条件;其中,上述第五预设值为大于等于N+1/2且小于N的整数。
在上述实施例中,上述处理模块403还用于确定上述N个接受节点中的M个接受节点的最大版本号与上述管理节点的最大版本号相差小于R个版本号,上述N+1/2≤M≤N且为整数,上述R为大于等于1的整数。
在上述实施例中,上述接收模块401还用于接收上述N个接受节点中的L个接受节点发送的请求补充版本消息,上述请求补充版本消息中包含上述接受节点的最大版本号,上述1≤L≤N且为整数;上述处理模块403还用于根据上述接受节点的最大版本号与上述管理节点的最大版本号,确定上述接受节点待补充的版本和对应的决议值;上述发送模块402还用于向上述接受节点发送上述请求补充版本消息的响应消息,上述请求补充版本消息的响应消息中包含上述接受节点待补充的版本和对应的决议值。
在上述实施例中,上述R个版本为X次协商的版本数,上述X为大于等于1的整数。
本实施例的装置,可用于执行图1所示方法实施例的技术方案,其实现原理类似,在此不再赘述。本实施例的装置,通过接收模块,用于接收重配命令,上述重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的N个接受节点的信息;发送模块,用于分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送重配操作消息,每个上述重配操作消息携带上述管理节点当前的最大版本号,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行版本更新;处理模块,用于分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;上述发送模块,还用于在确认满足激活条件时,分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送激活操作消息,每个上述激活操作消息携带上述N个接受节点的信息,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行节点地图的更新;上述处理模块,还用于分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;更新模块,用于在确认满足重配成功条件时,将上述N个接受节点的信息更新到自身的节点地图中。可以看出,将重配的过程当做一个决议协商过程进行处理,无需中断原有的协议过程,即中断业务,从而,可应用于更广泛的范围。
图5为本发明分布式集群重配装置实施例二的结构示意图,如图5所示,本实施例的装置至少包括:处理器501、存储器502、通信接口503和总线504。其中,上述处理器501、上述存储器502和上述通信接口503通过上述总线504通信。
上述存储器502用于存放程序。具体的,程序中可以包括程序代码,上述程序代码包括计算机执行指令。上述存储器602可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述处理器501用于执行上述存储器502存储的执行指令,可能为单核或多核CPU,或者为ASIC,或者为被配置成实施本发明实施例的一个或多个集成电路。
上述通信接口503用于与网络设备进行通信。当分布式集群重配装置运行时,处理器501运行程序,以执行以下指令:
上述管理节点接收重配命令,上述重配命令指示对上述旧分布式集群进行重配,且携带上述新分布式集群包含的N个接受节点的信息;
上述管理节点分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送重配操作消息,每个上述重配操作消息携带上述管理节点当前的最大版本号,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行版本更新;
上述管理节点分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;
在确认满足激活条件时,上述管理节点分别向上述旧分布式集群和上述新分布式集群中的每个接受节点发送激活操作消息,每个上述激活操作消息携带上述N个接受节点的信息,以使得上述旧分布式集群和上述新分布式集群中的每个接受节点进行节点地图的更新;
上述管理节点分别接收上述旧分布式集群和上述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;
在确认满足重配成功条件时,上述管理节点将上述N个接受节点的信息更新到自身的节点地图中。
上述实施例的装置对应的可用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种分布式集群重配方法,其特征在于,用于将旧分布式集群重配为新分布式集群,所述旧分布式集群包括管理节点和S个接受节点,所述新分布式集群包括所述管理节点和N个接受节点,其中,所述S为大于等于1的整数,所述N为大于等于1的整数,所述重配方法包括:
所述管理节点接收重配命令,所述重配命令指示对所述旧分布式集群进行重配,且携带所述新分布式集群包含的N个接受节点的信息;
所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息,每个所述重配操作消息携带所述管理节点当前的最大版本号,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行版本更新;
所述管理节点分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;
在确认满足激活条件时,所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送激活操作消息,每个所述激活操作消息携带所述N个接受节点的信息,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行节点地图的更新;
所述管理节点分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;
在确认满足重配成功条件时,所述管理节点将所述N个接受节点的信息更新到自身的节点地图中。
2.根据权利要求1所述的方法,其特征在于,所述确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,包括:
若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
其中,所述第一预设值为大于等于S+1/2且小于S的整数,所述第二预设值为大于等于N+1/2且小于N的整数。
3.根据权利要求1或2所述的方法,其特征在于,所述确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,包括:
若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
其中,所述第三预设值为大于等于S+1/2且小于S的整数,所述第四预设值为大于等于N+1/2且小于N的整数。
4.根据权利要求1所述的方法,其特征在于,
所述确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件,包括:
若所述管理节点接收到接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
所述第五预设值为大于等于N+1/2且小于N的整数。
5.根据权利要求4所述的方法,其特征在于,所述确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件,包括:
若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
其中,所述第五预设值为大于等于N+1/2且小于N的整数。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述管理节点分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息之前,还包括:
所述管理节点确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号,所述N+1/2≤M≤N且为整数,所述R为大于等于1的整数。
7.根据权利要求6所述的方法,其特征在于,所述管理节点确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号之前,还包括:
所述管理节点接收所述N个接受节点中的L个接受节点发送的请求补充版本消息,所述请求补充版本消息中包含所述接受节点的最大版本号,所述1≤L≤N且为整数;
所述管理节点根据所述接受节点的最大版本号与所述管理节点的最大版本号,确定所述接受节点待补充的版本和对应的决议值;
所述管理节点向所述接受节点发送所述请求补充版本消息的响应消息,所述请求补充版本消息的响应消息中包含所述接受节点待补充的版本和对应的决议值。
8.根据权利要求6或7所述的方法,其特征在于,所述R个版本为X次协商的版本数,所述X为大于等于1的整数。
9.一种分布式集群重配装置,其特征在于,用于将旧分布式集群重配为新分布式集群,所述旧分布式集群包括管理节点和S个接受节点,所述新分布式集群包括所述管理节点和N个接受节点,其中,所述S为大于等于1的整数,所述N为大于等于1的整数,所述装置包括:
接收模块,用于接收重配命令,所述重配命令指示对所述旧分布式集群进行重配,且携带所述新分布式集群包含的N个接受节点的信息;
发送模块,用于分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送重配操作消息,每个所述重配操作消息携带所述管理节点当前的最大版本号,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行版本更新;
处理模块,用于分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成版本更新后发送的重配操作消息的响应消息,确认当前接收到的重配操作消息的响应消息的个数是否满足激活条件;
所述发送模块,还用于在确认满足激活条件时,分别向所述旧分布式集群和所述新分布式集群中的每个接受节点发送激活操作消息,每个所述激活操作消息携带所述N个接受节点的信息,以使得所述旧分布式集群和所述新分布式集群中的每个接受节点进行节点地图的更新;
所述处理模块,还用于分别接收所述旧分布式集群和所述新分布式集群中的多个接受节点在完成节点地图的更新后发送的激活操作消息的响应消息,确认当前接收到的激活操作消息的响应消息的个数是否满足重配成功条件;
更新模块,用于在确认满足重配成功条件时,将所述N个接受节点的信息更新到自身的节点地图中。
10.根据权利要求9所述的装置,其特征在于,所述处理模块具体用于若所述管理节点接收到所述旧分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第一预设值,并且,接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第二预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
其中,所述第一预设值为大于等于S+1/2且小于S的整数,所述第二预设值为大于等于N+1/2且小于N的整数。
11.根据权利要求9或10所述的装置,其特征在于,所述处理模块具体用于若所述管理节点接收到所述旧分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第三预设值,并且,接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第四预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
其中,所述第三预设值为大于等于S+1/2且小于S的整数,所述第四预设值为大于等于N+1/2且小于N的整数。
12.根据权利要求9所述的装置,其特征在于,
所述处理模块具体用于若所述管理节点接收到所述新分布式集群中的接受节点发送的重配操作消息的响应消息的个数大于等于第五预设值,则确定当前接收到的重配操作消息的响应消息的个数满足激活条件;
所述第五预设值为大于等于N+1/2且小于N的整数。
13.根据权利要求12所述的装置,其特征在于,所述处理模块具体用于若所述管理节点接收到所述新分布式集群中的接受节点发送的激活操作消息的响应消息的个数大于等于第六预设值,则确定当前接收到的激活操作消息的响应消息的个数满足重配成功条件;
其中,所述第五预设值为大于等于N+1/2且小于N的整数。
14.根据权利要求9~13任一项所述的装置,其特征在于,所述处理模块还用于确定所述N个接受节点中的M个接受节点的最大版本号与所述管理节点的最大版本号相差小于R个版本号,所述N+1/2≤M≤N且为整数,所述R为大于等于1的整数。
15.根据权利要求14所述的装置,其特征在于,所述接收模块,还用于接收所述N个接受节点中的L个接受节点发送的请求补充版本消息,所述请求补充版本消息中包含所述接受节点的最大版本号,所述1≤L≤N且为整数;
所述处理模块,还用于根据所述接受节点的最大版本号与所述管理节点的最大版本号,确定所述接受节点待补充的版本和对应的决议值;
所述发送模块,还用于向所述接受节点发送所述请求补充版本消息的响应消息,所述请求补充版本消息的响应消息中包含所述接受节点待补充的版本和对应的决议值。
16.根据权利要求14或15所述的装置,其特征在于,所述R个版本为X次协商的版本数,所述X为大于等于1的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410582569.3A CN104320464B (zh) | 2014-10-27 | 2014-10-27 | 分布式集群重配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410582569.3A CN104320464B (zh) | 2014-10-27 | 2014-10-27 | 分布式集群重配方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104320464A true CN104320464A (zh) | 2015-01-28 |
CN104320464B CN104320464B (zh) | 2017-10-10 |
Family
ID=52375632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410582569.3A Active CN104320464B (zh) | 2014-10-27 | 2014-10-27 | 分布式集群重配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104320464B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302660A (zh) * | 2016-08-01 | 2017-01-04 | 成都鼎智汇科技有限公司 | 药品信息分布式存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004830A1 (en) * | 2004-06-07 | 2006-01-05 | Lora Brian M | Agent-less systems, methods and computer program products for managing a plurality of remotely located data storage systems |
CN1973282A (zh) * | 2004-06-25 | 2007-05-30 | 诺基亚公司 | 用于管理针对集群配置的改变的系统和方法 |
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN101960427A (zh) * | 2007-12-26 | 2011-01-26 | 斯曼泰克公司 | 分布式资源管理的平衡一致性散列 |
CN102124697A (zh) * | 2008-08-18 | 2011-07-13 | F5网络公司 | 更新网络流量管理设备同时维持有效性 |
CN102197388A (zh) * | 2008-10-23 | 2011-09-21 | 微软公司 | 分布式存储系统中基于定额的事务一致成员管理 |
-
2014
- 2014-10-27 CN CN201410582569.3A patent/CN104320464B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004830A1 (en) * | 2004-06-07 | 2006-01-05 | Lora Brian M | Agent-less systems, methods and computer program products for managing a plurality of remotely located data storage systems |
CN1973282A (zh) * | 2004-06-25 | 2007-05-30 | 诺基亚公司 | 用于管理针对集群配置的改变的系统和方法 |
CN101960427A (zh) * | 2007-12-26 | 2011-01-26 | 斯曼泰克公司 | 分布式资源管理的平衡一致性散列 |
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN102124697A (zh) * | 2008-08-18 | 2011-07-13 | F5网络公司 | 更新网络流量管理设备同时维持有效性 |
CN102197388A (zh) * | 2008-10-23 | 2011-09-21 | 微软公司 | 分布式存储系统中基于定额的事务一致成员管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302660A (zh) * | 2016-08-01 | 2017-01-04 | 成都鼎智汇科技有限公司 | 药品信息分布式存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104320464B (zh) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427284B (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
CN104079630A (zh) | 一种业务服务端负载均衡方法、客户端、服务端以及系统 | |
CN105338078A (zh) | 用于存储系统的数据存储方法和装置 | |
CN112416969B (zh) | 分布式数据库中的并行任务调度系统 | |
CN105119997A (zh) | 云计算系统的数据处理方法 | |
CN104317676A (zh) | 一种数据备份容灾方法 | |
CN109508912B (zh) | 一种业务调度方法、装置、设备和存储介质 | |
CN104881454A (zh) | 参数的更新方法及系统 | |
CN104954474A (zh) | 负载均衡中数据更新的方法及装置 | |
CN102708063B (zh) | 磁盘空间管理方法及装置 | |
CN109918381B (zh) | 用于存储数据的方法和装置 | |
US9317098B2 (en) | Server, power management system, power management method, and program | |
CN113168314A (zh) | 更新管理装置、更新管理系统及更新管理方法 | |
CN112486733B (zh) | 系统还原方法、装置、终端及存储介质 | |
CN104320464A (zh) | 分布式集群重配方法和装置 | |
CN104394220A (zh) | 一种智能电网的升级方法和智能电网 | |
CN101526959A (zh) | 一种数据存储方法和装置 | |
CN103714059A (zh) | 一种更新数据的方法及装置 | |
CN106462421B (zh) | 电信设备以及用于更新电信设备中的软件的方法 | |
CN104063377A (zh) | 信息处理方法和使用其的电子设备 | |
CN102769495A (zh) | 一种光纤接入网设备通信方法、装置及系统 | |
CN105406989A (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
CN105808268A (zh) | 一种信息处理方法、电子设备及系统 | |
CN115167907A (zh) | 终端设备升级方法、服务器、电子设备及存储介质 | |
CN103488503B (zh) | 软件更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |