• paxos算法


    论文原文 https://www.jianshu.com/p/c7ae21809197

    深入浅出理解版 https://my.oschina.net/u/150175/blog/2992187

    腾讯开源实现 https://github.com/Tencent/phxpaxos/blob/master/README.zh_CN.md

    源码解读 https://www.jianshu.com/p/9f1a874a39e5

    注意:一个完整的提案由{编号n,提案值v}两部分组成。我们只关心最终的提案值,提案编号的唯一用途在于确定提案值。

    1. Proposer选择新的编号n,并发送到所有的Acceptor。
    2. Acceptor接收到请求后完成如下工作:
      2.1 承诺(promise):承诺不再accept所有编号小于n的请求,即reject编号小于n的请求。
      2.2 返回(reply):返回当前小于n的最大编号所对应的提议值v(如果存在)。
    3. 如果Proposer发起的提案编号被半数以上的Acceptor接受,此时它可以真正的发起提案值,否则回到步骤一重新确定提案编号。
    4. 发起的提案值不是Proposer随意确定的。确定规则如下:
      4.1 如果步骤2.2中,一个或者多个Acceptor返回了已经被接受(accept)的提案值,新发起的提案值必须是最大编号返回的提案值。
      4.2 如果步骤2.2中,没有任何Acceptor返回已被接受(accept)的提案值,由Proposer自行发起新的提案值。
    5. Proposer发起的提案值如果被接受则提案结束,否则重复上述过程,直到确定提案值。
    部分资料直接复制网络中其他文章,仅供个人参考学习
  • 相关阅读:
    arm-linux-gcc4.4.3编译busybox-1.25.0
    arm-linux-gcc4.4.3编译s3c2410平台linux内核
    Ubuntu 16.04上编译SkyEye的测试程序
    Ubuntu16.04上安装arm-linux-gcc4.4.3
    Ubuntu下安装deb包命令
    基环树DP
    整理
    无穷的远方,无数的人们,都和我有关
    死亡之前,我是生活本身
    我是sb
  • 原文地址:https://www.cnblogs.com/decq/p/12050620.html
Copyright © 2020-2023  润新知