paxos协议

看了《从paxos到zookeeper》里面paxos协议的讲解,推导过程太复杂。记录一下paxos协议的内容网络

协议用于分布式数据一致性,分为三种角色,proposer、acceptor、learner。proposer向accepor集合提出议案[Mn, Vn], accepor批准议案,即肯定那个议案为最终结果,learner主要同步结果, 相似master - slave中的slave分布式

两个阶段:同步

阶段一:ast

  1. proposer提出议案[Mn, Vn],发送给prepare大部分的accepor节点zookeeper

  2. acceptor节点收到prepare请求,承诺不批准比Mn更小的提案。若是批准其余提案Vx,返回Vx循环

阶段二:请求

  1. proposer收到大部分acceptor响应,发送accept请求。若是没有Vx返回,发送[Mn, Vx]给acceptor。若是有Vx返回,发送[Mn, Vn]通信

  2. acceptor收到accept请求,批准提案[Mn, Vn]或者[Mn, Vx]数据

备注,为了不死循环能够使用主proposer给acceptor发送提案协议

learner同步提案

方式一:

  全部的acceptor m个给learner n个发送提案, 网络通讯次数m * n

方式二:

  全部的acceptor给主learner发送提案, 主learn同步给其余learner, m + n - 1(单点故障)

方式三:

  全部acceptor m给一个learner x集合同步提案, 集合learner在给剩余learn同步 m * x + x * (n - x) = x * ( m + n - x)

相关文章
相关标签/搜索