一种一致性级别可控的自适应数据同步方法和系统转让专利

申请号 : CN201910903210.4

文献号 : CN110855737B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄涛唐震王伟魏峻郑莹莹宋傲

申请人 : 中国科学院软件研究所

摘要 :

本发明提供一种一致性级别可控的自适应数据同步方法和系统,本方法包括接收集群中节点基本特征与场景特征;计算节点失效概率分布和用户请求概率分布,并与节点基本特征与场景特征一同送入至环境特征模型,结合排除规则集合获取算法的选择范围;根据算法的选择范围与场景特征,结合收益规则集合确定算法以及算法参数,并生成算法决策并同步到每个节点;每个节点根据接收到的算法决策确定算法以及算法参数,以响应用户请求并实现数据同步。本发明解决了大规模集群的数据同步过程中针对不同类型数据的时效性需求,增强了数据同步的性能,保障了水平扩展能力且适用于大规模集群,提供了动态调整和插拔的能力。

权利要求 :

1.一种一致性级别可控的自适应数据同步方法,包括以下步骤:

1)监测集群中节点的状态,接收集群中节点基本特征与场景特征,其中所述场景特征包括客户端节点和服务器节点的集群规模、节点健康状态、用户预先配置的信息、用户发起数据更新请求的速率与模式和请求响应时间;

2)根据节点健康状态拟合出节点失效概率分布,根据用户发起数据更新请求的速率与模式得到用户请求概率分布,并将节点失效概率分布、用户请求概率分布、节点基本特征与场景特征一同送入至环境特征模型,结合排除规则集合获取算法的选择范围,其中所述排除规则集合为包含了特定条件与在此条件下无法使用的算法的映射关系,所述环境特征模型是根据MAPE-K自治计算模型构建,所述环境特征模型的维度包括服务器集群特征、客户端集群特征、用户最大可容忍的不一致窗口、网络延迟和节点失效的概率模型;

3)根据算法的选择范围与场景特征,结合收益规则集合确定算法以及算法参数,并生成算法决策,其中所述收益规则集合为包含了针对特定场景特征和用户需求,对应特定算法的参数调整规则;

4)将算法决策同步到每个节点;

5)根据每个节点接收到的算法决策确定算法以及算法参数,以响应用户请求并实现数据同步。

2.如权利要求1所述的方法,其特征在于,所述节点包括生成决策的管理节点、提供分布式Key-Value存储的服务器节点以及订阅具体数据并接收更新数据的客户端节点。

3.如权利要求1所述的方法,其特征在于,所述节点基本特征包括网络特征、可使用的计算能力比例以及节点的CPU、内存、磁盘的配置。

4.如权利要求1所述的方法,其特征在于,将算法参数导入算法模板中,生成所述算法决策。

5.如权利要求1所述的方法,其特征在于,将所述算法决策同步到每个节点,包括以下步骤:

1)通知所有节点应用新算法;

2)将新算法以及对应参数同步到每个节点;在同步过程中,所有节点同时持有新、旧两份算法,并遵照旧算法执行;

3)当超过半数的节点成功收到新算法,且新算法执行不依赖于未收到新算法的节点之后,向所有节点发出切换算法的请求,收到这一请求的节点遵照新算法执行。

6.如权利要求1所述的方法,其特征在于,当检测到集群中所述节点基本特征与所述场景特征发生变化时,重新生成算法决策。

7.一种一致性级别可控的自适应数据同步系统,包括:

1)监测模块,用以监测集群中节点的状态,接收集群中节点基本特征与场景特征,其中所述场景特征包括客户端节点和服务器节点的集群规模、节点健康状态、用户预先配置的信息、用户发起数据更新请求的速率与模式和请求响应时间;

2)分析模块,用以根据节点健康状态拟合出节点失效概率分布,根据用户发起数据更新请求的速率与模式得到用户请求概率分布,并将节点失效概率分布、用户请求概率分布、节点基本特征与场景特征一同送入至环境特征模型,结合排除规则集合获取算法的选择范围,其中所述排除规则集合为包含了特定条件与在此条件下无法使用的算法的映射关系,所述环境特征模型是根据MAPE-K自治计算模型构建,所述环境特征模型的维度包括服务器集群特征、客户端集群特征、用户最大可容忍的不一致窗口、网络延迟和节点失效的概率模型;

3)规划模块,用以根据算法的选择范围与场景特征,结合收益规则集合确定算法以及算法参数,并生成算法决策,其中所述收益规则集合为包含了针对特定场景特征和用户需求,对应特定算法的参数调整规则;

4)执行模块,用以将算法决策同步到每个节点;

5)请求处理模块,用以根据每个节点接收到的算法决策确定算法以及算法参数,以响应用户请求并实现数据同步;

6)算法模块,由请求处理模块调用,用以接收具体的算法参数并执行算法逻辑,实现数据同步的操作。

说明书 :

一种一致性级别可控的自适应数据同步方法和系统

技术领域

[0001] 本发明涉及软件技术领域,尤其涉及一种一致性级别可控的自适应数据同步方法和系统。

背景技术

[0002] 分布式键值对(Key-Value)存储系统在集群中维护了数据的多份副本并保障了一致性,在很多领域得到广泛应用,一种典型的适用场景是在集群中共享具有指定主题(Topic)的相关数据(如应用共享的配置信息等),并基于发布-订阅机制,在对应Topic更新时通知所有已订阅这一Topic的节点获取最新数据,节点响应这些数据改变并进行相应的操作以实现集群管理、负载均衡、故障转移等目标。这一系统中包含两个集群,分别由客户端节点和服务器节点组成,客户端节点会向服务器集群中的某个服务器节点发出请求以订阅指定的Topic,服务器节点会将这一信息在服务器集群内同步,当对应Topic的数据有更新时,所有服务器节点上的所有数据副本以及所有订阅这一Topic的客户端节点上的数据副本都会收到更新,从而实现数据同步。
[0003] 目前广泛使用的分布式Key-Value存储系统包括ZooKeeper及etcd等,都依赖底层的一致性保障机制确保针对特定Key的更新可以正确、高效地应用在所有数据副本上。但在云计算的大环境下,主流的云服务提供商所管理的虚拟机和容器等计算资源实例的规模日益增大,达到百万乃至千万的规模。现有的在ZooKeeper及etcd等系统中使用的Paxos变种或Raft等数据同步和一致性保障方法需要依赖选举机制得到唯一的Leader作为协调者以保障顺序一致性,这一过程会带来大量的节点间网络交互,在集群规模超过数百节点时选举的开销急剧增加,对性能影响巨大;另一方面,Leader节点需要处理所有客户端发起的读写请求以保障一致性,这也导致在集群规模增大时Leader节点的负载增加,最终限制了集群的横向扩展能力。而在实际场景中,大规模集群中需要在所有节点间共享的信息也存在一定比例的节点级别的标注与配置数据等,这些数据只与节点和应用相关,与应用中实际承载的用户业务无关。对这类数据而言,通常在运维层面只存在“正确”与“不正确”的差异,因此Paxos变种算法以及Raft算法等保障的顺序一致性对这个场景而言过强。因此,现有的保障顺序一致性的方法和系统并不适用于大规模集群的场景。
[0004] 其次,相比数据副本一致性而言,大规模集群场景下的数据同步更关注性能以及方法的可靠性,针对不同类型的数据更新,会存在不同的最大可容忍的数据副本不一致窗口。例如,客户端节点订阅了分布式Key-Value存储系统中维护的某一个服务的可用地址列表,当地址列表变化时客户端节点将收到更新,从而保证服务可以被正常调用。在这一例子中,针对服务的可用地址列表的不同类型的修改操作的最大可容忍不一致窗口存在差异。向地址列表中添加一个新节点的操作的最大可容忍不一致窗口较大,因为这一更新数据未及时同步可能导致短时间内新加入的节点的计算资源未充分利用,但不会导致服务中断;
相比较而言从地址列表中移除一个失效节点的操作的最大可容忍不一致窗口较小,因为未及时更新地址列表的客户端节点有可能访问失效节点以调用服务,从而导致服务中断。然而,现有的保障顺序一致性的方法和系统未能考虑一致性级别需要随着数据类型变化的情形,难以适用于大规模集群数据同步的场景。
[0005] 第三,现有的方法不具备动态感知环境特征并作出相应调整的能力。当集群特征或用户需求发生变化时,需要及时调整算法参数乃至选择不同的算法以满足用户对数据同步的性能、一致性、可靠性等需求。现有方法具备一定的调整集群拓扑的能力,可以应对集群中添加、删除节点以及节点失效等场景,但算法本身的流程是固定的,难以调整特定的参数以实现性能、一致性、可靠性维度的权衡,满足特定场景下对三个维度的不同需求,也无法响应需求的变化作出调整。当出现用户需要改变一致性级别或微调预期性能的情形时难以应对。
[0006] 综上,现有的保障顺序一致性的方法和系统水平扩展能力受到Leader节点计算能力的限制,提供的一致性保障相对于大规模集群数据同步的需求而言过强,也难以针对具体数据类型改变一致性保障级别,同时不具备自适应调整的能力,因此难以适用于大规模集群数据同步的场景。亟需一种一致性级别可控的自适应数据同步方法和系统以解决这一问题。

发明内容

[0007] 针对现有技术的不足,本发明提出一种一致性级别可控的自适应数据同步方法和系统,解决大规模集群环境中数据同步的性能问题,并保证数据同步过程的正确性,可以应对大规模集群中常见的节点失效、网络不可达等问题。
[0008] 一种一致性级别可控的自适应数据同步方法,包括以下步骤:
[0009] 1)监测集群中节点的状态,接收集群中节点基本特征与场景特征;
[0010] 2)根据场景特征计算节点失效概率分布和用户请求概率分布,并与节点基本特征与场景特征一同送入至环境特征模型,结合排除规则集合获取算法的选择范围;
[0011] 3)根据算法的选择范围与场景特征,结合收益规则集合确定算法以及算法参数,并生成算法决策;
[0012] 4)将算法决策同步到每个节点;
[0013] 5)根据每个节点接收到的算法决策确定算法以及算法参数,以响应用户请求并实现数据同步。
[0014] 进一步地,所述节点包括生成决策的管理节点、提供分布式Key-Value存储的服务器节点,以及订阅具体数据并接收更新数据的客户端节点。
[0015] 进一步地,所述节点基本特征包括网络特征、可使用的计算能力比例以及节点的CPU、内存、磁盘的配置;所述场景特征包括客户端节点和服务器节点的集群规模、节点健康状态、用户预先配置的信息、用户发起数据更新请求的速率与模式、请求响应时间。
[0016] 进一步地,根据节点健康状态拟合出所述节点失效概率分布;根据用户发起数据更新请求的速率与模式,得到所述用户请求概率分布。
[0017] 进一步地,所述环境特征模型是通过MAPE-K自治计算模型构建;所述环境特征模型的维度包括服务器集群特征、客户端集群特征、用户最大可容忍的不一致窗口、网络延迟、节点失效的概率模型。
[0018] 进一步地,所述排除规则集合为包含了特定条件与在此条件下无法使用的算法的映射关系;所述收益规则集合为包含了针对特定场景特征和用户需求,对应特定算法的参数调整规则。
[0019] 进一步地,将算法参数导入算法模板中,生成所述算法决策。
[0020] 进一步地,将所述算法决策同步到每个节点,包括以下步骤:
[0021] 1)通知所有节点应用新算法;
[0022] 2)将新算法以及对应参数同步到每个节点;在同步过程中,所有节点同时持有新、旧两份算法,并遵照旧算法执行;
[0023] 3)当超过半数的节点成功收到新算法,且新算法执行不依赖于未收到新算法的节点之后,向所有节点发出切换算法的请求,收到这一请求的节点遵照新算法执行。
[0024] 进一步地,当检测到集群中所述节点基本特征与所述场景特征发生变化时,重新生成算法决策。
[0025] 一种一致性级别可控的自适应数据同步系统,包括:
[0026] 1)监测模块,用以监测集群中节点的状态,接收集群中节点基本特征与场景特征;
[0027] 2)分析模块,用以根据场景特征计算节点失效概率分布和用户请求概率分布,并与节点基本特征与场景特征一同送入至环境特征模型,结合排除规则集合获取算法的选择范围;
[0028] 3)规划模块,用以根据算法的选择范围与场景特征,结合收益规则集合确定算法以及算法参数,并生成算法决策;
[0029] 4)执行模块,用以将算法决策同步到每个节点;
[0030] 5)请求处理模块,用以根据每个节点接收到的算法决策确定算法以及算法参数,以响应用户请求并实现数据同步;
[0031] 6)算法模块,由请求处理模块调用,用以接收具体的算法参数并执行算法逻辑,实现数据同步的操作。
[0032] 本发明与现有技术相比的优点在于:
[0033] (1)解决了大规模集群的数据同步过程中针对不同类型数据的时效性需求。
[0034] (2)增强了数据同步的性能。
[0035] (3)保障了水平扩展能力,适用于大规模集群。
[0036] (4)结合软件定义的理念,提供了动态调整和插拔的能力。

附图说明

[0037] 图1本发明的部署图;
[0038] 图2本发明的实施原理图。

具体实施方式

[0039] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合说明书附图和实施例对本发明中技术核心作进一步详细的说明。
[0040] 本发明提出一种一致性级别可控的自适应数据同步方法和系统。这一系统主要由监测模块、分析模块、规划模块、执行模块、请求处理模块和算法模块组成,其主要部署模式如图1所示。
[0041] 如图2所示,本发明主要借鉴MAPE-K(M-Monitor,监测;A-Analyze,分析;P-Plan,规划;E-Execute,执行;K-Knowledge,知识库)自治计算模型,由环境特征模型驱动和指导,由监测模块、分析模块、规划模块、执行模块、请求处理模块和算法模块共同完成数据同步。系统中包含用于生成决策的管理节点、提供分布式Key-Value存储的服务器节点,以及订阅具体数据并接收更新数据的客户端节点。各模块的主要职责、交互模式和实现如下:
[0042] 1、环境特征模型
[0043] 环境特征模型是根据MAPE-K自治计算模型构建,用于刻画集群中节点的基本特征,结合特定场景的特征,驱动算法以及算法参数的选择,最终生成适用于特定场景的算法,以符合特定场景下的最大可容忍不一致窗口,满足性能需求。环境特征模型可映射到MAPE-K自治计算模型中的“知识库”,由实际场景抽取出的环境特征模型贯穿自适应闭环执行的各阶段,监测模块收集用于构建环境特征模型的原始数据,分析模块加工监测模块获得的原始数据并填充环境特征模型,规划模块由环境特征模型指导,确定具体算法选择以及算法参数,执行模块负责执行环境特征模型导出的具体决策。
[0044] 所述环境特征模型包含如下维度:
[0045] (1)服务器集群特征:服务器节点可提供全部计算能力用于数据同步,这一维度包含集群规模和节点自身的CPU、内存、存储等配置;
[0046] (2)客户端集群特征:客户端集群可提供部分计算能力用于数据同步,这一维度包含连接到每个服务器节点上的以应用和数据中心粒度划分的客户端集群规模以及每个客户端节点的CPU、内存、存储等配置,同时包含客户端可使用的计算能力的比例;
[0047] (3)用户最大可容忍的不一致窗口:可对应为用户需求中针对不同类型的数据所期望的数据同步的最长完成时间;
[0048] (4)网络延迟:节点间交换数据时耗费在网络传输上的时间;
[0049] (5)节点失效的概率模型:结合先验知识和统计结果分析获得,包括节点失效的概率分布及参数。
[0050] 2、监测模块
[0051] 监测模块部署在管理节点上,负责持续监测集群中节点基本特征以及场景特征,监测并记录客户端对数据副本更新的最大可容忍一致性窗口以及当前客户端的访问负载模式等,作为环境特征模型的数据输入以指导决策。节点基本特征包括网络特征(链路带来的时延、网络拓扑、丢包率等)、可使用的计算能力比例以及节点的CPU、内存、磁盘等配置,场景特征包括客户端节点和服务器节点的集群规模、节点健康状态、用户预先配置的信息、用户发起数据更新请求的速率与模式、请求响应时间。
[0052] 所述监测模块的具体实现如下:
[0053] (1)与所有客户端节点和服务器节点上的请求处理模块交互,统计客户端节点和服务器节点的集群规模、网络特征、可使用的计算能力比例以及各节点的CPU、内存、磁盘等配置,并测量节点间网络交互的时延;
[0054] (2)与服务器节点上的请求处理模块交互,统计自适应闭环采样周期内用户发起数据更新请求的速率,包括数据更新请求对应的Key和相应的请求数目;
[0055] (3)与服务器节点上的请求处理模块交互,统计自适应闭环采样周期内用户发起数据更新请求的模式,包括针对不同Key的权重以及请求的组合;
[0056] (4)与所有节点建立通讯,定期发送心跳包以检测节点失效和网络分区,获取节点健康状态;
[0057] (5)接收节点上报的汇总信息,获得请求响应时间,即自适应闭环采样周期内请求处理的平均时延和最大时延;
[0058] (6)读取用户预先配置的信息,主要包括一致性需求、时延需求和可靠性需求。
[0059] 3、分析模块
[0060] 分析模块部署在管理节点上,接收监测模块的输入,对特定的数据同步场景,结合环境特征模型,加工得到针对数据同步算法性能和可靠性的需求,并确定算法的选择范围。
[0061] 所述分析模块的具体实现如下:
[0062] (1)接收监测模块的输入,根据节点健康状态拟合出节点失效概率分布;
[0063] (2)接收监测模块的输入,根据用户发起数据更新请求的速率与模式,从而得到用户请求概率分布;
[0064] (3)将监测模块获得的节点基本特征以及场景特征,结合步骤(1)、(2)分析得到的节点失效与用户请求概率分布,导入环境特征模型中;
[0065] (4)结合环境特征模型与排除规则集合,确定排除不合适的算法,获取算法的选择范围,所述排除规则集合为包含了特定条件与在此条件下无法使用的算法的映射关系,例如,排除规则集合中约定“保障最终一致性的算法无法满足顺序一致性需求”,那么当用户要求系统能够保证更新的顺序一致性时,就无法选择保障最终一致性的算法;
[0066] 本发明可选的算法包含:完全偏向一致性需求但难以保障性能和可靠性的两阶段和三阶段提交算法、保障顺序一致性的Paxos变种及Raft算法、偏向性能和可靠性但只保障最终一致性的Gossip算法等。
[0067] (5)将相关结果输入规划模块。
[0068] 4、规划模块
[0069] 规划模块部署在管理节点上,接收分析模块的输入,对特定的数据同步场景,确定具体的算法并生成相应的参数。
[0070] 所述规划模块的具体实现如下:
[0071] (1)接收分析模块的输入,在算法库中排除不合适的算法后,根据收益规则集合(用户在一致性、性能、可靠性三个维度中最关心的目标),选择合适的算法作为调整的基准,所述收益规则集合为包含了针对特定场景特征和用户需求,对应特定算法的参数调整规则,例如,用户对顺序一致性的要求大于性能和可靠性时,选用类似两阶段提交的算法作为调整基准,以最大程度保障一致性;
[0072] (2)结合环境特征模型中的用户的一致性、性能和可靠性需求,确定参数调整的目标以契合用户需求,例如,用户对时延需求较高时,算法参数调整主要集中在降低全局消息量并尽量保证各节点的负载均衡;
[0073] (3)结合参数调整的目标和环境特征模型中的用户请求概率分布以及节点失效的概率分布,生成算法参数;
[0074] (4)将算法参数导入算法模板中,生成具体的算法决策,供执行模块使用。
[0075] 5、执行模块
[0076] 执行模块部署在管理节点上,接收规划模块的输入,将具体的决策持久化,供后续数据同步过程使用,并将这一决策同步到所有服务器节点。
[0077] 所述执行模块的具体实现如下:
[0078] (1)当收到规划模块传入的具体的算法决策后,通知所有服务器节点和客户端节点应用新的算法;
[0079] (2)将新的算法以及对应参数同步到每个节点;在同步过程中,所有节点同时持有新、旧两份算法,并遵照旧算法执行;
[0080] (3)当执行模块确认超过半数的节点成功收到新算法,且新算法执行不依赖于未收到新算法的节点之后(例如,在需要切换到Raft算法的场景,当节点数足够完成Leader选举后),向所有节点发出切换算法的请求,收到这一请求的节点遵照新算法执行。
[0081] 6、请求处理模块
[0082] 请求处理模块部署在所有服务器节点和客户端节点上,用于处理具体数据同步的过程。部署在服务器节点上的请求处理模块会根据管理节点发送的具体算法决策,选择合适的数据同步算法和算法参数,部署在客户端节点上的请求处理模块会接收并处理服务器节点传递的数据并在必要情形下协助进行数据同步。
[0083] 所述请求处理模块的具体实现如下:
[0084] (1)接收用户发起的更新请求,调用具体的算法模块,传入指定的算法参数完成数据同步操作;
[0085] (2)接收到监测模块的请求时,返回该节点对应的统计信息,如心跳信息、请求处理时延等;
[0086] (3)接收到执行模块的请求时,应用最新的算法决策。
[0087] 7、算法模块
[0088] 部署在所有服务器节点和客户端节点上,封装了具体的算法逻辑,同时提供了调整参数的接口。在自适应闭环生成具体的算法决策和算法参数后,相关信息会被同步至所有服务器节点和客户端节点。后续请求处理模块在处理用户请求时会调用指定的算法模块并传入算法参数,以实际完成数据同步操作。
[0089] 一种一致性级别可控的自适应数据同步方法,实现步骤如下:
[0090] (1)监测模块持续监测集群状态,接收节点基本特征以及场景特征。
[0091] (2)分析模块根据监测模块的数据计算节点失效的概率分布及用户请求概率分布,并同监测模块的数据一同导入环境特征模型,结合排除规则集合获得算法的选择范围。
[0092] (3)规划模块获得分析模块的输入,根据环境特征模型中导出的结果,结合收益规则集合,选择合适的算法并确定算法参数。
[0093] (4)执行模块将具体的算法决策同步到每个节点,算法决策被成功应用后,后续的用户请求将遵照新算法和参数执行。
[0094] (5)步骤(1)~(4)构成完整的自适应闭环,定期执行。此外,当检测到请求模式或集群特征发生变化时,重新执行(1)~(4)步,生成新的决策。
[0095] (6)用户将请求发送至服务器集群中的任意服务器节点,最终到达服务器节点上的请求处理模块,部署在服务器节点上的请求处理模块根据当前的算法决策调用算法,响应用户请求并开始数据同步,当算法结束且数据更新到达所有客户端节点时此轮数据同步操作完成。
[0096] 下面描述一个简单的实例,系统中可供选择的算法包括改进的两阶段提交算法、Raft算法和Gossip算法。两阶段提交算法可供调整的参数是协调者提交事务所需回收的同意票数、客户端连接的服务器数;Raft算法可供调整的参数是读请求是否转发给Leader,Leader节点发起数据同步请求依赖的生成树,以及客户端连接的服务器数;Gossip算法可供调整的参数是扇出系数(每轮数据同步需要通讯的节点数),数据同步时间间隔。针对这一实例的具体步骤如下:
[0097] (1)监测模块收集到服务器集群规模为500节点,客户端节点总数为25000,每个服务器节点管理一个500节点的客户端集群。每个节点均为虚拟机实例,配置为4个CPU核心、8GB内存、256GB SSD存储。服务器集群失效节点失效数服从n=500,p=0.0001的二项分布,客户端集群失效节点数服从n=25000,p=0.0001的二项分布。所有客户端和服务器节点最终连接至同一个物理交换机,节点间的网络时延t=1ms,丢包率为0.0001。客户端可用于协助数据同步的最大计算能力(CPU时间)为20%。
[0098] (2)监测模块收集到用户的核心需求是需要保证数据更新操作的顺序一致性,同时兼顾更新时延,可容忍的最大一致性窗口为5s。此外,用户向服务器集群发起请求服从强度为lambda=100请求/秒的泊松分布,即每秒服务器集群需要处理的用户请求数的数学期望为100。
[0099] (3)分析模块接收监测模块的数据,拟合得到用户发起数据请求的概率分布为参数lambda=100请求/秒的泊松分布,并遵照排除规则集合中的规则“保障最终一致性的算法无法保障顺序一致性和严格一致性”,“保障严格一致性的算法的执行时间不确定”,排除保障最终一致性的算法,同时由于需要兼顾时延,排除了两阶段提交算法,最终调整目标是在确保Raft算法基本执行流程(Leader选举、复制状态机等)不变的前提下,通过修改拓扑结构和参数的方式降低每个节点的负载。
[0100] (4)规划模块确定使用Raft算法,并遵照收益规则集合中的规则“组播策略比广播策略在负载均衡方面的效果更好,适用于大规模集群”,“客户端连接的服务器节点数满足Quorum条件时,结合版本号可获得最新更新”,生成具体的算法参数和决策:客户端节点需要连接任意3个服务器节点获取更新;取版本号更大的更新;服务器节点不限定只有Leader节点可以响应读请求;Leader节点向Follower节点发送数据时使用组播的方式,根据网络延迟和权重由网络拓扑图构建最小生成树,在进行数据传播时首先传播到生成树中的邻居节点,由这些节点继续分层向下传播数据。连接到同一个服务器节点的客户端节点使用与服务器集群类似的组播方式协助传播数据更新。
[0101] (5)执行模块将新的算法决策同步到所有服务器,接收到这一请求的服务器重新配置本地的算法以及相应的参数。
[0102] (6)请求处理模块收到执行模块发出的切换算法请求后,切换到新的算法并使用新的参数处理后续请求。
[0103] (7)请求处理模块接收到用户发起的数据更新请求,调用新的算法模块并结合新参数执行数据同步操作,并向用户返回操作结果。
[0104] (8)当用户需求发生改变时,触发新一轮调整,遵照步骤(1)~(6)执行。
[0105] 最后所应说明的是,以上实施案例仅用以说明本发明的技术方案而非限制,尽管实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可对本发明的技术方案进行修改或者等价替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。