zoukankan      html  css  js  c++  java
  • 选举协议paxos 协议 理解

              目标:

              3.1,被选定的value不能凭空出现,必须是Proposer曾经提议过的;

              3.2,不管是对单个Acceptor还是一组Acceptor来说,被选定的value有且仅能有一个;

              3.3,只有value被选定,即达成共识以后,才能被Learner学习

            过程:

    1. 获取一个Proposal ID n,为了保证Proposal ID唯一,可采用时间戳+Server ID生成;
    2. Proposer向所有Acceptors广播Prepare(n)请求;
    3. Acceptor比较n和minProposal,如果n>minProposal,minProposal=n,并且将 acceptedProposal 和 acceptedValue 返回;
    4. Proposer接收到过半数回复后,如果发现有acceptedValue返回,将所有回复中acceptedProposal最大的acceptedValue作为本次提案的value,否则可以任意决定本次提案的value;
    5. 到这里可以进入第二阶段,广播Accept (n,value) 到所有节点;
    6. Acceptor比较n和minProposal,如果n>=minProposal,则acceptedProposal=minProposal=n,acceptedValue=value,本地持久化后,返回;否则,返回minProposal。
    7. 提议者接收到过半数请求后,如果发现有返回值result >n,表示有更新的提议,跳转到1;否则value达成一致。
  • 相关阅读:
    Redhat7.0版本下双网卡绑定
    Zabbix3.4 Proxy搭建
    Centos7 + Mariadb主从配置
    Cacti找回管理员密码
    2017科鲁兹钥匙电池更换
    Failed to set locale, defaulting to C.UTF-8 centos8.2报错
    centos8如何重启网络服务
    gem install报错 ruby升级
    vmware fusion 11.0.0激活
    转载 centos8.1网络重启
  • 原文地址:https://www.cnblogs.com/gfbppy/p/12228242.html
Copyright © 2011-2022 走看看