参考
http://baike.baidu.com/link?url=M9tFXoTRZ1QiiRTnMulnveHV4vgLokWj6Odyh2ZNgAiPWxeYxd5n6zAnB6GtfhYQPfkkVZ4vdgXbtt4i2o7Emq
下面以一个分布式key-value 数据库为例进行解释。每个key-value 有多个副本,如果客户端发起一个update(key,vaule) 的操作,则会产生由一个节点发起、相关节点进行响应的一次一致性操作,即选举B,对保存了该key-value 的副本进行更新。法定人数牧师(B_qrm)是副本节点的一个大部分子集,因为有些时候某些副本不可达。B 是关于某个key-value 的一系列更新操作,不同的法律实际上是一个key-value 的不同值。那么B1-B3就好明白了,B1指的是更新操作的顺序是唯一的;B2指的是任意两次更新操作必须有共同的节点参与;B3指的是某次操作的key-value值和所有参与节点中最近一次投票的值相一致。这是因为如果某个节点在之前已经投赞成票,说明它已经确认可以修改该值,而其他法定人数中的牧师/节点还没有确认可以修改该值。
https://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95
B1(
B) B 中每个选举都有一个独一无二的选举编号。 每个选举 对应一次update
B2(
B) B 中每两个选举至少有一个共同的牧师。任意两次更新
B3(
B) B中每一次选举B ,如果其法定人数中的牧师在之前的选举中投了赞成票(这些选举构成一个集合),那么本次选举B 所对应的法律需要和上述选举集合中最近一次选举所对应的法律相一致。每一次更新update中多个节点
1 客户端发起 其他节点响应的一致性算法
2 每个节点的更新 对应一个唯一的编号
3 一次选举 对应一个节点的更新