paxos算法ppt.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
paxos算法ppt

Paxos算法详解 The basic algorithm of paxos 网络组:胡术、杨诚、杨铮 P:proposer,也可以是客户端,提交议案。 C:coordinator,协调者, A:acceptor,选举者, L:learner,学习者, A round include two phases: (i)phase 1 (ii)phase 2 crnd:某C开始的rounds中的最高的round number cval:某C在round crnd中提出的value。 rnd:某A参加过的rounds中最高的round number vrnd:某A批准过的rounds中最高的round number vval:某A在round vrnd中批准的value。 Quorum:a majority of the acceptors 所有的消息可能丢失或者延时,但是不会出错。 message Phase 1a:prepare Phase 1b:promise Phase 2a:accept Phase 2b:accepted 1、C要提出一个value并获得批准的过程叫做一个round,它两个阶段:phase1和phase2. 2、C开始某个round i,发送phase 1a[i]给所有的A,如果收到某A的reject[j](ji),重新发送phase 1a[j+x](为方便举例,令x = 1),并设置[crnd = j+1,cval = 0]。 3、Pick a value: 收到来自某quorum的phase 1b[j+1,vrnd,vval]消息回复。令K为来自该quorum消息中所有vrnd的最大值,V为来自该quorum的消息中vrnd = k的消息对应的vval值的集合(当k0时,fast paxos在文中证明了这样的vval值只有一个)。 If k = 0,C可以任意挑选一个来自P的value作为value_s else,将V中的那个唯一的value作为我们的挑选value_s 将value_s和round number j+1 作为phase 2a的内容发送给所有的A,并设置cval = value_s,若收到某A的Nack[h],hj,设置crnd = h+1并重复上述prepare过程。否则,若收到来自某quorum的phase2b消息,则说明对该value_s的选举已经完成。 任何一个A必须批准它收到的第一个value。 A在round i的prepare过程(phase 1)收到phase1a: (a)如果irnd,且round rnd的C(beginner)不是round i的C’(beginner),即C!=C’,则通知round i的C’拒绝(reject[rnd])它的prepare请求。如果C = C’,则忽略这个prepare请求。(important!) (b)如果i = rnd,令rnd = i,发送phase 1b消息。 Phase 1b:[ rnd,vrnd,vval] A在round i的phase 2收到phase 2a[i,vval_i]: (a)如果irnd, 即C!=C’,则通知round i的C’拒绝(Nack[rnd])它的accept请求。如果C = C’,则忽略这个accept请求。(important!) (b)如果i=rnd,令rnd = vrnd = i,vval = vval_i,发送phase2b 故而在其它的C开始更高round number的过程时,Round有可能被中断, 。 出现活锁的情况 * 角色介绍 A(rnd,vrnd,vval) A(rnd,vrnd,vval) A(rnd,vrnd,vval) A(rnd,vrnd,vval) A(rnd,vrnd,vval) P P P P L L L L C(crnd,cval) C(crnd,cval) C(crnd,cval) C Receive phase1b from a quorum,pick any value proposed by p. C(0,null) 初始化(round 1) A(0,0,null) A(0,0,null) A(0,0,null) A(0,0,null) A(0,0,null) P P P P L L L L C(0,null) C(0,null) C(1,null) Phase1a [ 1] because 10 A(1,0,null) because 10 A(1,0,null) because 10 A(1,0,null) because 10 A(1,0,null) Phase1b[1,0,null]

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档