当前位置: 首页 > 专利查询>微软公司专利>正文

便宜的PAXOS制造技术

技术编号:2856005 阅读:307 留言:0更新日期:2012-04-11 18:40
可以以容错方式使用辅助计算设备的集合和多于所述系统可以容纳的错误数量的主计算设备来操作分布式计算系统。所有所述主计算设备的定额可以被使用。如果发生错误,包括至少一台主计算设备和一些或者全部所述辅助计算设备的,来自被选择的一组定额的作为选择的定额可以被用于完成未决的操作并且去选择新的一组定额。作为选择地,包括至少一台主计算设备和一些或者全部的所述辅助计算设备的其它状态机可以选择新的包括当前操作的主计算设备的定额,并且所述新定额可以接着完成未决的操作并且可以继续去选择使用由所述其它状态机指定的建议数字的建议。

【技术实现步骤摘要】

本专利技术主要涉及分布式计算,并且,更特别地,涉及使用主设备和辅助设备二者的容错分布式计算。
技术介绍
由于个人计算设备变得更加功能强大,包含了增加的存储空间和处理能力,一般的用户消耗占有执行每日任务的那些资源的越来越小的百分比的资源。因而,许多现今的个人计算设备的全部潜能往往不能被利用,由于它们的计算能力远远超过了大部分用户在它们之上发出的需求。一种从功能强大的现代个人计算设备的未利用资源得到使用和价值的日益流行的方法是分布式计算系统,在其中计算设备与其他设备配合动作以提供更加可靠的数据和可计算资源的访问。除了提供用于使用额外的计算能力的有效的机制外,分布式系统也能够由专用的便宜的计算设备组成以便达到一个更大,更昂贵的计算设备的执行和存储能力。分布式系统的更大的优势在于面对可能损坏单个的,更大型的计算设备的物理困难的连续操作。这些困难可能包括持续的电能中断,恶劣的天气,洪水,恐怖活动,以及诸如此类。为了补偿增加的风险,独立构件计算设备可以变得从网络断开连接,关闭,遭受系统故障,或者另外变得不可用,冗余可以被用于允许所述分布式计算系统保持运行。因而,存储于任何一个个人计算设备上的信息可以被冗余地存储在至少一个附加个人计算设备上,允许所述信息保持可访问性,即使所述个人计算设备中的一个故障。分布式计算系统能够实行完全的冗余,在其中每个系统内部的设备执行同样的任务并且存储同样的信息。这样的系统能够允许用户连续执行有效的操作,即使除了设备中的一个外所有的设备都故障。作为选择地,这样的系统可以被用于允许相同信息的多重副本被分配遍布于地理区。例如,一跨国公司可以建立一个全球分布式计算系统。然而,由于使组成所述系统的独立的设备完全地同步的复杂性,分布式计算系统可能很难保持。因为越过独立的处理过程的计时可能是最困难的,状态机方法往往被用于在所述独立设备之间配合作业。状态机可以通过一组状态,一组响应和连接每一响应/状态对到每一命令/状态对的客户命令来描述。状态机可以通过改变其状态和生成响应来执行命令。因而,状态机可以通过它当前的状态和动作被完全地描述为它将要执行,移除使用精确计时的需要。因此,状态机的当前状态依赖于其前一状态,自那时执行的命令,以及那些被执行的命令的顺序。为了保持两个或者多个状态机之间的同步,可以建立一公用的初始状态,并且每一状态机都可以,随着所述初始状态开始,以相同的顺序执行相同的命令。因此,为了使一个状态机和另一个同步,需要做出由其他状态机执行的命令的决定。因此,同步的问题变为决定被执行的命令的顺序的问题,或者,更特别地,变为决定为特定步骤所执行的特别的命令的问题。用于决定哪一个命令被执行以用于特定步骤的一个机制被认为是Paxos算法。在Paxos算法中,独立设备的任何一个都可以起到领导者的作用并且设法去建议用于由所述系统中的每一台设备执行的客户命令。每一个这样的建议都可以与一个建议数字一起被发送以更加容易地跟踪所述建议。这样的建议数字不需要带有任何与所述特定步骤的联系,所述特定步骤是所述设备正在尝试对命令取得一致时所要执行的步骤。最初,所述领导者可以提供一个建议数字以用于所述领导者打算提交的建议。每一个剩余的设备可以接着以它们投票赞成的最后建议的指示,或者它们还未对任何建议进行投票赞成的指示来响应所述领导者的建议数字的提议。如果,通过所述不同的响应,所述领导者不可以获悉任何由所述设备投票赞成的其它建议,所述领导者可以建议由所述设备执行的特定的客户命令,使用在较早的信息中建议的建议数字。每一台设备可以,在那个阶段,决定是否投票赞成所述动作或者否决它。设备应当仅仅否决动作,如果它已经响应了其他领导者的更高的建议数字的提议。如果设备的充分数字,即定额,投票赞成所述建议,所述建议的动作被说成已经被达成一致,并且每一台设备执行所述动作以及可以传输所述结果。在这种情况之下,每一个所述设备都可以以相同的顺序执行动作,在所有的设备之中保持相同的状态。通常地,可以以两个阶段考虑Paxos算法,在初始阶段允许领导者获悉由所述设备投票的在前的建议,如上所述,以及在第二阶段中所述领导者可以建议用于执行的客户命令。一旦所述领导者已经获悉在前的建议,就不需要连续地重复所述第一阶段。作为替代地,所述领导者可以连续地重复所述第二阶段,建议可以由所述分布式计算系统在多个步骤中执行的一连串的客户命令。在这种情况下,当由所述分布式计算系统为了每一步骤执行的每一个客户命令可以被考虑为Paxos算法的一个实例时的时候,所述领导者不需要等待所述设备去投票用于特定步骤的建议客户命令在建议用于下一步骤的其他客户命令之前。所述分布式计算系统,总体上,可以被制造为状态机。因此,分布式计算系统执行完整的冗余可以使每一台设备复制整个系统的状态。这样的系统要求每一台设备保持相同的状态。如果某些设备认为一个客户命令已经被执行,当第二组设备认为不同的客户命令已经被执行的时候,整个系统不再作为一单一的状态机进行操作。为了避免这样一种状况,所述设备的多数通常被要求通过所述系统去选择用于执行的建议客户命令。因为任何两组设备,每一组都具有大多数,必须分享至少一台设备,机制,就像Paxos算法,可以被执行去依赖至少一个普通设备以阻止两组,每一组都包含设备的大多数,去挑选不同的建议客户命令。然而,Paxos算法需要计算设备的真实的数量以容错和继续适当地操作。特别地,为了执行可以容许特定数量的错误的系统,Paxos算法使用计算设备数量的两倍以上来执行所述系统。计算设备在日益减少成本的情况下连续地提供更强的处理和存储能力的时候,其仍然保留有花费比设计所述系统而产生的错误的最大数量两倍还多的计算设备的不情愿的情况。经常,这样庞大数量的计算设备在那些必须最终批准费用的人看来似乎是低效率的。本专利技术的概述因此,在本专利技术的一个实施例中,将要设计一个可以使用主计算设备的集合来执行经修改的Paxos算法的系统,其中所述主计算设备只具有一个超过系统的错误的最大数量的计算设备,连同若所述主计算设备的一个或者多个错误时使用的辅助计算设备的集合。在另一个实施例中,经修改的Paxos算法存在于可以使用主计算设备的定额直到所述主计算设备的一个经历一个错误为止,于是领导者可以使用其它的定额,其包括至少一个主计算设备和充足数量的辅助计算设备,为了选择命令以及去选择由当前运行的主计算设备的全体或者全部所述计算设备的任意的多数之一组成的一个新的定额组,只要那个多数包括至少一个主计算设备。在又一个实施例中,经修改的Paxos算法存在于一个状态机中,由定额的主计算设备执行,可以被使用直到所述主计算设备的一个经历错误为止,于是其它的状态机,其包括充足数量的主或者辅助计算设备,可以被用于挑选用于组成所述当前运行的主计算设备的第一状态机的新的定额。在再一个实施例中,置于所述辅助计算设备的负荷可以通过限制由所述辅助计算设备执行的处理过程,以及限制由所述辅助计算设备存储的信息的数量来进一步的减少,包括存储建议命令的哈希值,而不是存储完整的命令。尽管此处的描述主要地集中于分布式计算系统中的计算设备的操作上,可以理解的是所述描述可以同样地适用于运行在单一计算设备上的处理,就像在单独的处理器或者在单独的存储本文档来自技高网...

【技术保护点】
一种用于选择分布式计算系统中的值的方法,所述分布式计算系统执行用于选择所述值的系统状态机以及和所述系统状态机分离的定额选择状态机,所述分布式计算系统包括一台或者多台主计算设备和一台或者多台辅助计算设备,所述方法包括步骤:给所述分布式 计算系统中的第一组计算设备进行建议,第一建议包括:第一定额,所述第一定额的第一领导者计算设备,以及与所述第一定额和所述第一领导者计算设备相联系的第一建议数字,其中:所述第一定额执行所述系统状态机并且包括所述分布式计算系统的所有运行的主计算设备,以及其中所述第一组计算设备执行所述定额选择状态机并包括至少所述分布式计算系统的计算设备的多数;接收来自所述第一组计算设备的第一组投票响应;并且如果来自所述第一组计算设备的第一组投票响应指示,至少所述分布式计算系统的计算设 备的多数已经投票赞成了所述第一建议,发送所述第一建议的选择的通知。

【技术特征摘要】
US 2004-6-18 10/872,3391.一种用于选择分布式计算系统中的值的方法,所述分布式计算系统执行用于选择所述值的系统状态机以及和所述系统状态机分离的定额选择状态机,所述分布式计算系统包括一台或者多台主计算设备和一台或者多台辅助计算设备,所述方法包括步骤给所述分布式计算系统中的第一组计算设备进行建议,第一建议包括第一定额,所述第一定额的第一领导者计算设备,以及与所述第一定额和所述第一领导者计算设备相联系的第一建议数字,其中所述第一定额执行所述系统状态机并且包括所述分布式计算系统的所有运行的主计算设备,以及其中所述第一组计算设备执行所述定额选择状态机并包括至少所述分布式计算系统的计算设备的多数;接收来自所述第一组计算设备的第一组投票响应;并且如果来自所述第一组计算设备的第一组投票响应指示,至少所述分布式计算系统的计算设备的多数已经投票赞成了所述第一建议,发送所述第一建议的选择的通知。2.如权利要求1的方法,其中,在接收所述第一建议的选择的通知之后,至少一台来自所述第一定额的计算设备执行步骤,包括建议所述第一建议数字用于大于最后的已知系统步骤的系统步骤,其中所述最后的已知系统步骤是最大系统步骤,为了所述最大系统步骤,至少一台计算设备已经记录了相应的值;接收一个或者多个来自一台或者多台响应计算设备的建议响应,每一个用于大于所述最后的已知系统步骤的系统步骤的建议响应包括最后投票信息,在前建议响应信息,和已知可靠信息;并且传送,给所述第一定额,增加已知可靠消息,所述增加的已知可靠消息包括一个或者多个被决定的可靠值,所述增加的已知可靠消息来源于所述最后投票信息和通过一个或者多个建议响应接收的已知可靠消息。3.如权利要求2的方法,其中所述最后投票信息包括由用于每一个大于所述最后的已知系统步骤的系统步骤的响应计算设备投票赞成的最后值,和被用于建议所述最后值的最后值建议数字,所述最后值建议数字大于任何与其它值相联系的建议数字,所述其它建议数字由用于每一个大于所述最后的已知系统步骤的系统步骤的响应计算设备投票赞成;所述在前建议响应信息包括所述响应计算设备之前已经响应了的最大建议数字;所述已知可靠信息包括在前被决定的可靠值,由所述响应计算设备在在前增加的已知可靠消息和相应于所述在前增加的已知可靠消息的在前可靠建议数字中接收所述在前被决定的可靠值,所述在前可靠建议数字大于任何与其它可靠值相联系的建议数字,由所述响应计算设备为了每一个大于所述最后已知系统步骤的系统步骤接收所述其它可靠值;并且用于每一个大于所述最后已知系统步骤的系统步骤的一个或者多个被决定的可靠值包括,一个或者多个的由所述响应计算设备投票赞成的最后值以及由所述响应计算设备接收的在前被决定的可靠值。4.如权利要求3的方法,其中所述建议所述第一建议数字包括,建议所述第一建议数字到第二组计算设备;并且其中所述一台或者多台响应计算设备是来自所述第二组计算设备所述第二组计算设备被如此的选择以至于,用于来自全部的最大建议数字的许多建议数字,在所述一台或者多台响应计算设备之前已经响应的最大建议数字,直到所述第一建议数字之间,至少一台或者多台响应计算设备中的一台已经在相应于所述多个建议数字的定额中了。5.如权利要求1的方法,进一步包括步骤感知目标主计算设备的错误;通过执行定额选择状态机命令,输入所述目标主计算设备的被感知的错误的指示到数据结构中,所述数据结构相关于感知设备和所述目标主计算设备;并且根据所述数据结构,决定所述目标主计算设备不是运行的主计算设备。6.如权利要求1的方法,其中所述第一建议进一步包括紧接在所述第一建议数字之后的第二建议数字,其中所述第一建议数字是快速建议数字并且所述第二建议数字是缓慢建议数字。7.一种用于在分布式计算系统中选择值的方法,包括步骤为大于最后的已知系统步骤的系统步骤建议第一建议数字;接收一个或多个来自一台或者多台响应计算设备的建议响应,每一个用于大于最后的已知系统步骤的系统步骤的建议响应包括最后投票信息,在前建议响应信息,以及已知可靠信息;以及向所述第一定额传送增加的已知可靠消息,所述增加的已知可靠消息包括一个或者多个被决定的可靠值,所述增加的已知可靠消息来源于通过一个或者多个建议响应接收的所述最后投票信息和已知可靠消息。8.如权利要求7的方法,其中由系统状态机选择所述值,并且其中由定额选择状态机选择所述第一定额和所述第一建议数字,所述定额选择状态机和所述系统状态机分离。9.如权利要求7的方法,其中所述最后投票信息包括由用于每一个大于所述最后的已知系统步骤的系统步骤的响应计算设备投票赞成的最后值,和被用于建议所述最后值的最后值建议数字,其中,对每一个大于最后已知系统步骤的系统步骤来说,最后建议数字的值大于,基于步骤对步骤,任何根据响应计算设备而进行的其他投票值相关的建议数字;所述在前建议响应信息包括所述响应计算设备之前已经响应了的最大建议数字;所述已知可靠信息包括在前被决定的可靠值,由所述响应计算设备在在前增加的已知可靠消息和相应于所述在前增加的已知可靠消息的在前可靠建议数字中接收所述在前被决定的可靠值,其中,对每一个大于最后已知系统步骤的系统步骤来说,在先可靠建议数字的值大于最后已知的系统步骤,所述在先可靠建议数字大于,基于步骤对步骤,任何根据响应计算设备获得的进行其他投票值相关的建议数字;并且用于每一个大于所述最后已知系统步骤的系统步骤的一个或者多个被决定的可靠值包括,一个或者多个的由所述响应计算设备投票赞成的最后值以及由所述响应计算设备接收的在前被决定的可靠值。10.如权利要求9的方法,其中所述建议所述第一建议数字包括,建议所述第一建议数字到第二组计算设备;并且其中所述一台或者多台响应计算设备是来自所述第二组计算设备所述第二组计算设备被如此的选择以至于,用于来自全部的最大建议数字的许多建议数字,在所述一台或者多台响应计算设备之前已经响应的最大建议数字,直到所述第一建议数字之间,至少一台或者多台响应计算设备中的一台已经在相应于所述多个建议数字的定额中了。11.如权利要求7的方法,进一步包括步骤建议所述值到使用所述第一建议数字的第一定额中,如果所述值是所述一个或者多个被决定的可靠值的其中之一;接收来自所述第一定额的第一组投票响应;决定所述值被选择,如果来自所述第一定额的第一组投票响应指示所述第一定额中的每一台计算设备已经投票赞成所述值。12.如权利要求11的方法,进一步包括步骤如果来自所述第一定额的第一组投票响应指示所述第一定额中的每一台计算设备还未投票赞成所述值,要求在定额选择状态机中的一台或者多台计算设备使用所述定额选择状态机去选择第二定额,用于所述第二定额的第二领导者计算设备,以及与所述第二定额和所述第二领导者计算设备相联系的第二建议数字,其中所述第二建议数字紧跟在所述第一建议数字之后。13.如权利要求7的方法,进一步包括步骤指示,到所述第一定额,直接从一个或者多个客户接收的后来的值将被对待为具有相当于所述第一建议数字的建议数字的被建议的值;并且指示,到所述第一定额,到所述后来的值的响应将被发送到所述一个或者多个客户。14.一种计算机可读介质,其具有计算机可执行指令,所述可执行指令用于用于选择分布式计算系统中的值,所述分布式计算系统执行用于选择所述值的系统状态机以及和所述系统状态机分离的定额选择状态机,所述分布式计算系统包括一台或者多台主计算设备和一台或者多台辅助计算设备,所述计算机可执行指令执行的步骤包括给所述分布式计算系统中的第一组计算设备进行建议,第一建议包括第一定额,所述第一定额的第一领导者计算设备,以及与所述第一定额和所述第一领导者计算设备相联系的第一建议数字,其中所述第一定额执行所述系统状态机并且包括所述分布式计算系统的所有运行的主计算设备,以及其中所述第一组计算设备执行所述定额选择状态机并包括至少所述分布式计算系统的计算设备的多数;接收来自所述第一组计算设备的第一组投票响应;并且如果来自所述第一组计算设备的第一组投票响应指示,至少所述分布式计算系统的计算设备的多数已经投票赞成了所述第一建议,发送所述第一建议的选择的通知。15.如权利要求14的计算机可读介质,其中,在接收所述第一建议的选择的通知之后,至少一台来自所述第一定额的计算设备执行步骤,包括建议所述第一建议数字用于大于最后的已知系统步骤的系统步骤,其中所述最后的已知系统步骤是最大系统步骤,为了所述最大系统步骤,至少一台计算设备已经记录了相应的值;接收一个或者多个来自一台或者多台响应计算设备的建议响应,每一个用于大于所述最后的已知系统步骤的系统步骤的建议响应包括最后投票信息,在前建议响应信息,和已知可靠信息;并且传送给所述第一定额增加的已知可靠消息,所述增加的已知可靠消息包括一个或者多个被决定的可靠值,所述增加的已知可靠消息来源于所述最后投票信息和通过一个或者多个建议响应接收的已知可靠消息。16.如权利要求15的计算机可读介质,其中所述最后投票信息包括由用于每一个大于所述最后的已知系统步骤的系统步骤的响应计算设备投票赞成的最后值,和被用于建议所述最后值的最后值建议数字,所述最后值建议数字大于任何与其它值相联系的建议数字,所述其它建议数字由用于每一个大于所述最后的已知系统步骤的系统步骤的响应计算设备投票赞成;所述在前建议响应信息包括所述响应计算设备之前已经响应了的最大建议数字;所述已知可靠信息包括在前被决定的可靠值,由所述响应计算设备在在前增加的已知可靠消息和相应于所述在前增加的已知可靠消息的在前可靠建议数字中接收所述在前被决定的可靠值,所述在前可靠建议数字大于任何与其它可靠值相联系的建议数字,由所述响应计算设备为了每一个大于所述最后已知系统步骤的系统步骤接收所述其它可靠值;并且用于每一个大于所述最后已知系统步骤的系统步骤的一个或者多个被决定的可靠值包括,一个或者多个的由所述响应计算设备投票赞成的最后值以及由所述响应计算设备接收的在前被决定的可靠值。17.如权利要求16的计算机可读介质,其中所述计算机可执行指令建议所述第一建议数字包括,用于建议所述第一建议数字到第二组计算设备的计算机可执行指...

【专利技术属性】
技术研发人员:LB兰姆波特MT玛萨
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1