一种paxos实例更新方法、设备及系统的制作方法

文档序号:7988755阅读:231来源:国知局
一种paxos实例更新方法、设备及系统的制作方法
【专利摘要】本发明公开了一种paxos实例更新方法,所述方法包括:提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID;提案节点获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。相应的,本发明还公开了一种用于paxos实例更新的设备及系统,本发明简化了paxos算法的执行,提高了paxos算法的执行效率,解决了现有paxos算法执行效率低的问题。
【专利说明】一种paxos实例更新方法、设备及系统
【技术领域】
[0001]本发明涉及分布式计算领域,特别涉及一种paxos实例更新方法、设备及系统。
【背景技术】
[0002]分布式计算系统中各节点之间的配合动作为用户提供更加可靠的数据和可计算资源的访问。分布式计算系统中每个节点执行相同的任务并储存相同的信息,因而分布式计算系统常不可避免的会产生如下错误:进程慢、重启以及消息延迟、消息丢失、消息重复
坐寸ο
[0003]为保证分布式计算系统中每个节点执行相同的命令,需要在每一条指令上执行一个“一致性算法”。paxos算法就是一种应用于分布式计算系统的“一致性算法”。在paxos算法中,如果进行一次在所有副本上的数据更新操作,首选需要一个学习(Iearn)过程来确定是针对哪个paxos实例,再进行一个准备(prepare)过程以获得批准(accept)的请求权利及执行批准过程所需要的序列号,最后执行一个批准过程,过程复杂,涉及场景多,因此,执行效率低,不能用于高负载、高并发的应用场景。

【发明内容】

[0004]本发明提供的实现分布式计算系统一致性的方法、设备及系统,以解决现有paxos算法执行效率低的问题。
[0005]本发明提供了一种paxos实例更新方法,所述方法包括:
[0006]提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ;
[0007]提案节点获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0008]在上述方案中,如果所述批准请求没有被多数派所述批准节点接受,所述方法还包括:提案节点以所述实例ID执行准备过程,确定序列号;提案节点以所述准备过程确定的序列号和所述实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0009]在上述方案中,所述提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,包括:提案节点接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
[0010]在上述方案中,所述提案节点为预先指定的主提案节点。
[0011]本发明还提供了一种用于paxos实例更新的设备,所述设备包括:学习单元和批准单元;其中,[0012]学习单元,用于执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ;
[0013]批准单元,用于获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0014]在上述方案中,所述设备还包括:准备单元;
[0015]所述批准单元,还用于在所述批准请求没有被多数派所述批准节点接受时,通知所述准备单元;以及,用于以所述准备单元确定的序列号和所述学习单元得到的实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例;
[0016]所述准备单元,用于在接收到所述批准单元的通知后,以所述学习单元得到的实例ID执行准备过程,确定序列号。
[0017]在上述方案中,所述学习单元,用于接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
[0018]在上述方案中,其特征在于,所述用于paxos实例更新的设备为在分布式计算系统中预先指定的主提案节点。
[0019]本发明还提供了一种分布式计算系统,所述系统包括上述用于paxos实例更新的设备。
[0020]在上述方案中,所述分布式计算系统存在多个提案节点时,所述用于paxos实例更新的设备为所述分布式计算系统中预先指定的主提案节点。
[0021]本发明实施例的有益效果是dARpaxos实例更新时,提案节点采用上次已批准paxos实例成功使用过的序列号直接向所有的批准节点发起批准请求,这样,采用使用过的序列号中最大的序列号直接发起批准请求来执行paxos实例更新,不仅执行成功率比较高,而且可以避免重复执行准备过程,既不违背paxos算法已有的准则,也简化了 paxos算法的执行,提高了 paxos算法的执行效率,解决了现有paxos算法执行效率低的问题。
【专利附图】

【附图说明】
[0022]图1为本发明实施例paxos实例更新方法的实现流程图;
[0023]图2为本发明实施例中paxos实例更新过程的具体实现流程图;
[0024]图3为本发明实施例用于paxos实例更新的设备的组成结构示意图;
[0025]图4为本发明实施例分布式计算系统一种示例性组成结构示意图。
【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0027]paxos算法需要三类节点来完成:提案节点(Proposer)、批准节点(Acceptor)和学习节点(Learner),其中,学习节点和提案节点可以是同一个节点,批准节点需要至少有两个。
[0028]Paxos算法中,提案节点向批准节点提出值(value),即发起一个paxos实例的更新,如果多数派批准节点接受所述paxos实例的更新,则批准所述paxos实例的更新,执行相应的更新操作,如果接受所述paxos实例更新的批准节点数目不满足多数派要求,则不批准所述paxos实例的更新,返回重新执行所述paxos实例的更新。在paxos实例的更新已批准,学习节点或提案节点可以向各批准节点学习已批准paxos实例的相关信息。
[0029]一个paxos实例的更新是指一次完整的将某个值更新到分布式计算系统所有节点上的过程。在分布式计算系统将当前paxos实例的更新操作执行成功后,提案节点接收到客户端发起的方案更新请求,便开始执行下一个paxos实例的更新,向所有批准节点发起下一个paxos实例的更新,在下一个paxos实例的更新被多数派批准节点接受时,则批准下一个paxos实例的更新,执行相应的更新操作。
[0030]paxos算法中,一个提案节点完成一个paxos实例的更新一般需要有三个过程:学习过程、准备过程和批准过程。
[0031]其中,学习过程中,提案节点通过向所有的批准节点发起学习请求,获取多数派批准节点已批准paxos实例的实例信息,如已批准paxos实例的实例ID、已批准的值和成功使用的序列号等。然后,提案节点根据已批准paxos实例的实例信息,得到下一个paxos实例更新所需的实例ID,其中下一个paxos实例为待批准进行更新的实例;
[0032]准备过程中,提案节点首先计算该下一个paxos实例更新所需的序列号,再基于计算得到的序列号和学习过程中得到的实例ID向所有的批准节点发起准备请求,如果所述准备请求被多数派批准节点所接受,则提案节点将以所述准备请求中包含的序列号进行后续的批准过程。
[0033]批准过程中,提案节点以准备过程中确定的序列号和学习过程中得到的实例ID发起批准请求,该批准请求中还包含提案节点提出的值(即该下一个paxos实例的值),如果多数派批准节点接受所述批准请求,则批准该下一个paxos实例的更新,执行相应的更新操作,一次paxos实例的更新过程结束。
[0034]本发明实施例提供一种paxos实例更新方法、设备及系统,以简化paxos算法,提高其执行效率。
[0035]参照图1所示,本发明实施例提供的paxos实例更新方法主要可以包括如下步骤:
[0036]步骤101:提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ;
[0037]步骤102:提案节点获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0038]其中,提案节点需要在执行下一个实例之前获取上次已批准paxos实例成功使用的序列号。具体的获取方式有多种,例如,提案节点可以在确认上次已批准paxos实例已批准时,将包含其成功使用的序列号的实例信息记录在本地的指定位置,后续执行下一个实例时,可以直接从所述指定位置读取。再例如,提案节点也可以在执行下一个实例时,从批准所述上次已批准paxos实例的任意一个批准节点上主动获取上次已批准paxos实例成功使用的序列号。
[0039]其中,如果所述批准请求没有被多数派所述批准节点接受,所述方法还包括:提案节点以所述实例ID执行准备过程,确定序列号;提案节点以所述准备过程确定的序列号和所述实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0040]其中,所述提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,可以包括:提案节点接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
[0041]本发明实施例提供的paxos实例更新方法,在执行paxos实例更新时,提案节点采用上次已批准实例成功使用的序列号来直接向所有的批准节点发起批准请求。在所述批准请求没有得到多数派批准节点接受时,仍然按照原有paxos算法的处理方法执行paxos实例的更新。
[0042]按照paxos算法的准则“对于同一个paxos实例的更新,每次批准请求中使用的序列号都要大于上次批准请求中使用的序列号”,采用上次已批准paxos实例成功使用的序列号也就是采用上次已批准paxos实例在更新时使用过的最大序列号,这样,能够确保paxos实例更新所采用的序列号为最大,也就提高了 paxos实例更新已批准的概率,提高了 paxos实例更新的执行成功率;并且,使得同一个提案节点执行多个paxos实例的过程中不需要在每个paxos实例更新时都执行准备过程,也就是说一次准备过程可以被多个paxos实例共用,在不违背现有paxos算法规则的前提下,简化了 paxos算法,提高了 paxos算法的执行效率,解决了现有paxos算法执行效率低的问题。
[0043]如果存在多个提案节点对同一 paxos实例执行更新,那么提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求时,已批准的概率就会降低,本发明实施例中方法的执行效率会随之降低。为了解决这一问题,可以预先指定一个提案节点为主提案节点,使得客户端优先访问所述主提案节点,这样可以确保同一 paxos实例由同一个提案节点执行更新,提高提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求的批准概率,相应的,也会提高本发明实施例中方法的执行效率。
[0044]具体的,可以预先设置一个配置文件,该配置文件用于指示客户端有限访问指定的主提案节点,所有的客户端均可以读取该配置文件。这样,客户端在发起方案更强请求之前可以通过读取所述配置文件来访问主提案节点。这里,所述配置文件可以是文本格式或者其他类似格式。
[0045]本发明实施例中执行图1所示方法的提案节点优选为预先指定的主提案节点。
[0046]如图2所示,本发明实施例中paxos实例更新过程的具体实现流程可以包括如下步骤:
[0047]步骤201:提案节点接收到客户端发起的方案更新请求;
[0048]步骤202:提案节点向所有的批准节点发起学习(Iearn)请求;
[0049]步骤203:各批准节点接收所述学习请求,并向所述提案节点返回应答,该应答中包含有当前方案下已批准paxos实例的实例信息;[0050]具体的,所述应答中可以包含当前方案下已批准paxos实例的实例信息,所述实例信息可以包括:已批准paxos实例的实例ID、值和成功使用的序列号。
[0051]实际应用中,一个paxos实例的值可以是任何操作指令,例如,一个paxos实例的值可以是“修改某个变量的值为某个值”、“设置当前节点为主节点”等等。
[0052]这里,如果批准节点没有进行过当前方案下的批准,则直接返回空应答或者不返回应答。
[0053]步骤204:提案节点接收各批准节点返回的应答,如果返回应答的个数满足多数派要求,则继续步骤205 ;如果返回应答的个数不满足多数派要求,则返回步骤202 ;
[0054]步骤205:提案节点根据所述接收的应答得到paxos实例更新的实例ID ;
[0055]具体的,提案节点可以从所述应答中提取已批准paxos实例的实例信息,根据已批准paxos实例的实例ID采用预先约定的算法计算得到当前方案下的所述paxos实例更新的实例ID。
[0056]例如,对于paxos实例的实例IDl,可以由同一方案下上一个paxos实例的实例ID加I得到。例如,同一方案下上一个paxos实例的实例ID为2,那么所述paxos实例的实例ID就为3。
[0057]步骤206:提案节点获取上次已批准的paxos实例成功使用的序列号;
[0058]这里,上次已批准paxos实例成功使用的序列号是指,在上次已批准paxos实例的更新过程中被多数派批准节点接受的批准请求中包含的序列号。
[0059]这里,具体的获取方式有多种,例如,提案节点可以在确认上次已批准paxos实例已批准时,将包含其成功使用的序列号的实例信息记录在本地的指定位置,执行paxos实例更新时,可以直接从所述指定位置读取。再例如,提案节点也可以在执行paxos实例更新时,从批准所述上次已批准paxos实例的任意一个批准节点上主动获取上次已批准paxos实例成功使用的序列号。
[0060]步骤207:提案节点以所述paxos实例更新的实例ID和上次已批准的paxos实例成功使用的序列号向所有的批准节点发起批准请求;
[0061]这里,所述批准请求中还可以包括所述paxos实例更新的值。具体的,可以采用paxos算法中已有的相关方法得到所述paxos实例的值。例如,可以根据客户端发起的方案更新请求得到,也可以根据已批准Paxos实例的值得到。
[0062]步骤208:各批准节点接收所述批准请求,判断是否接受所述批准请求,如果是,则批准所述paxos实例的更新,执行当前方案的更新,并向所述提案节点返回同意应答,否贝U,拒绝所述提案节点的批准请求;
[0063]实际应用中,批准节点接收所述批准请求,判断所述批准请求中的序列号是否大于同一 paxos实例中上次回复过的批准请求中的序列号,如果是,则接受所述批准请求,向提案节点返回OK消息,如果不是,则忽略所述准备请求,不向提案节点返回任何消息。
[0064]步骤209:提案节点接收各批准节点返回的同意应答,判断所述同意应答的个数是否满足多数派要求,如果是,则确认所述paxos实例更新已批准,继续步骤214,否则继续步骤210 ;
[0065]步骤210:提案节点开始执行所述paxos实例更新的准备过程,计算序列号SN1,并以该序列号SNl向所有批准节点发起准备请求;[0066]具体的,提案节点可以采用预先约定的计算方法计算出序列号SN。
[0067]例如,可以采用如下公式⑴所示的方法计算序列号SN:
[0068]SN = MXN+n (I)
[0069]其中,SN为序列号,M为所述paxos实例的序列号计算轮次,N为提案节点总数,η为当前提案节点的编号。如果当前分布式计算系统中包含有10个提案节点,提案节点的编号分别为O至9,需更新的所述paxos实例下计算序列号的轮次为第一次即M=0,则所述paxos实例的最小序列号SN_INIT为O。
[0070]步骤211:各批准节点接收所述准备请求,判断是否接受所述准备请求,如果是,则向所述提案节点返回同意应答;如果不是,则忽略所述提案节点的准备请求;
[0071]实际应用中,批准节点接收所述准备请求,判断所述准备请求中的序列号SNl是否大于同一 paxos实例下上次回复过的准备请求中的序列号,如果是,则接受所述准备请求,如果不是,则忽略所述准备请求,不向提案节点返回任何消息。
[0072]步骤212:提案节点接收各批准节点返回的同意应答,如果所述同意应答的个数满足多数派要求,则继续步骤213,否则返回步骤210 ;
[0073]步骤213:提案节点以所述paxos实例更新的实例ID和序列号SNl向所有批准节点发起批准请求,并返回步骤208 ;
[0074]这里,所述批准请求中还包括所述paxos实例更新的值。具体的,可以采用paxos算法中已有的相关方法得到所述paxos实例的值。例如,可以根据客户端发起的方案更新请求得到,也可以根据已批准paxos实例的值得到。
[0075]步骤214:当前方案更新成功,流程结束。
[0076]其中,所述多数派要求可以根据实际应用的需要去设置,例如,多数派要求可以是超过半数,或者可以是超过总数的四分之三等等。一般情况下,多数派要求采用超过半数的设置。
[0077]如果存在多个提案节点对同一 paxos实例执行更新,那么提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求时,已批准的概率就会降低,本发明实施例中方法的执行效率会随之降低。为了解决这一问题,可以预先指定一个提案节点为主提案节点,使得客户端优先访问所述主提案节点,这样可以确保同一 paxos实例由同一个提案节点执行更新,提高提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求的批准概率,相应的,也会提高本发明实施例中方法的执行效率。
[0078]具体的,可以预先设置一个配置文件,该配置文件用于指示客户端有限访问指定的主提案节点,所有的客户端均可以读取该配置文件。这样,客户端在发起方案更强请求之前可以通过读取所述配置文件来访问主提案节点。这里,所述配置文件可以是文本格式或者其他类似格式。
[0079]本发明实施例中执行图2所示流程的提案节点优选为预先指定的主提案节点。
[0080]本发明实施例还提供了一种用于paxos实例更新的设备,如图3所示,所述用于paxos实例更新的设备可以包括:学习单元31、和批准单元32 ;其中,
[0081]学习单元31,用于执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ;
[0082]批准单元32,用于获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
[0083]这里,所述设备中还可以包括准备单元33,用于在接收到批准单元32的通知后,以所述学习单元31得到的实例ID执行准备过程,确定序列号。
[0084]其中,所述批准单元32,还用于在所述批准请求没有被多数派所述批准节点接受时,通知所述准备单元33 ;以及,用于以所述准备单元33确定的序列号和所述学习单元31得到的实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例;
[0085]这里,所述学习单元31,用于接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
[0086]如果存在多个设备对同一 paxos实例执行更新,那么所述设备以上次已批准的paxos实例成功使用的序列号发起批准请求时,已批准的概率就会降低,执行效率会随之降低。
[0087]为了解决这一问题,可以预先指定分布式计算系统中的一个提案节点为主提案节点,将该主提案节点作为上述用于paxos实例更新的设备,使得客户端优先访问所述主提案节点,这样可以确保同一 paxos实例由同一个提案节点执行更新,提高提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求的批准概率,相应的,也会提高本发明实施例中方法的执行效率。
[0088]具体的,可以预先设置一个配置文件,该配置文件用于指示客户端有限访问指定的主提案节点,所有的客户端均可以读取该配置文件。这样,客户端在发起方案更强请求之前可以通过读取所述配置文件来访问主提案节点。这里,所述配置文件可以是文本格式或者其他类似格式。
[0089]本发明实施例中用于paxos实例更新的设备采用上次已批准paxos实例成功使用过的序列号直接向所有的批准节点发起批准请求,这样,采用使用过的序列号中最大的序列号直接发起批准请求来执行paxos实例更新,不仅执行成功率比较高,而且可以避免重复执行准备过程,既不违背paxos算法已有的准则,也简化了 paxos算法的执行,提高了paxos算法的执行效率,解决了现有paxos算法执行效率低的问题。
[0090]本发明实施例提供了一种分布式计算系统,该分布式计算系统包含有上述实施例所述用于paxos实例更新的设备。
[0091]实际应用中,本发明实施例提供的分布式计算系统主要可以包括:至少一个提案节点和至少两个批准节点,其中,提案节点与各批准节点之间交互能够实现paxos算法,所述提案节点即为上述实施例所述用于paxos实例更新的设备。
[0092]如果所述分布式计算系统中存在多个提案节点,则所述用于paxos实例更新的设备优选为预先指定的主提案节点。
[0093]实际应用中,如果存在多个提案节点对同一 paxos实例执行更新,那么提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求时,已批准的概率就会降低,本发明实施例中系统执行paxos实例更新的效率会随之降低。为了解决这一问题,可以预先指定一个提案节点为主提案节点,使得客户端优先访问所述主提案节点,这样可以确保同一 paxos实例由同一个提案节点执行更新,提高提案节点以上次已批准的paxos实例成功使用的序列号发起批准请求的批准概率,相应的,也会提高本发明实施例中方法的执行效率。
[0094]具体的,可以预先设置一个配置文件,该配置文件用于指示客户端有限访问指定的主提案节点,所有的客户端均可以读取该配置文件。这样,客户端在发起方案更强请求之前可以通过读取所述配置文件来访问主提案节点。这里,所述配置文件可以是文本格式或者其他类似格式。
[0095]实际应用中,提案节点和批准节点可以是计算机、移动设备或者类似的其他设备。提案节点可以有一个,也可以是两个或者多个,每个提案节点都可以发起paxos实例更新。各批准节点之间是完全对等独立的。
[0096]参见图4,为本发明实施例中所述分布式计算系统的一种示例,该示例包括一个提案节点41和四个批准节点42。
[0097]本发明实施例中所述分布式计算系统执行paxos实例更新时,提案节点采用上次已批准paxos实例成功使用过的序列号直接向所有的批准节点发起批准请求,这样,采用使用过的序列号中最大的序列号直接发起批准请求来执行paxos实例更新,不仅执行成功率比较高,而且可以避免重复执行准备过程,既不违背paxos算法已有的准则,也简化了paxos算法的执行,提高了 paxos算法的执行效率,解决了现有paxos算法执行效率低的问题。
[0098]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种paxos实例更新方法,其特征在于,所述方法包括: 提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ; 提案节点获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新Paxos实例已批准,更新所述需更新paxos实例。
2.根据权利要求1所述的方法,其特征在于,如果所述批准请求没有被多数派所述批准节点接受,所述方法还包括: 提案节点以所述实例ID执行准备过程,确定序列号; 提案节点以所述准备过程确定的序列号和所述实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例。
3.根据权利要求1所述的方法,其特征在于,所述提案节点执行学习过程,获得当前方案下已批准paxos实例的实例信息,包括: 提案节点接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
4.根据权利要求1、2或3所述的方法,其特征在于,所述提案节点为预先指定的主提案节点。
5.一种用于paxos实例更新的设备,其特征在于,所述设备包括:学习单元和批准单元;其中, 学习单元,用于执行学习过程,获得当前方案下已批准paxos实例的实例信息,根据所述已批准paxos实例的实例信息得到需更新paxos实例的实例ID ; 批准单元,用于获取上次已批准paxos实例成功使用的序列号,并以所述上次已批准paxos实例成功使用的序列号和所述实例ID直接向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新Paxos实例已批准,更新所述需更新paxos实例。
6.根据权利要求5所述的设备,其特征在于,所述设备还包括:准备单元; 所述批准单元,还用于在所述批准请求没有被多数派所述批准节点接受时,通知所述准备单元;以及,用于以所述准备单元确定的序列号和所述学习单元得到的实例ID,向所有的批准节点发起批准请求,在所述批准请求被多数派所述批准节点接受后,确认所述需更新paxos实例已批准,更新所述需更新paxos实例; 所述准备单元,用于在接收到所述批准单元的通知后,以所述学习单元得到的实例ID执行准备过程,确定序列号。
7.根据权利要求5所述的设备,其特征在于,所述学习单元,用于接收客户端发起的方案更新请求,并向所有的批准节点发起学习请求;在接受所述学习请求的批准节点数目满足多数派要求时,获得当前方案下已批准paxos实例的实例信息。
8.根据权利要求5、6或7所述的设备,其特征在于,所述用于paxos实例更新的设备为在分布式计算系统中预先指定的主提案节点。
9.一种分布式计算系统,其特征在于,所述系统包括如权利要求5至8任一项所述的用于paxos实例更新的设备。
10.根据权利要求9所述的系统,其特征在于,所述分布式计算系统存在多个提案节点时,所述用于Paxos实例更新的设备为所述分布式计算系统中预先指定的主提案节点。
【文档编号】H04L29/08GK103916426SQ201210593773
【公开日】2014年7月9日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】林谡 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1