一个分布式修改数据的一致性算法。
主要角色
决策者:是否批准修改申请。对一个资源一次只能批准一个修改申请,不能做墙头草。
申请者:提出修改申请。
学习者:记录被批准的修改。
主要过程
多个申请者向多个决策者提出修改申请,获得多数派批准的申请将交给学习者进行学习。
这个民主的过程将经过两轮表决,在第2轮表决中获得多数派批准的申请可以被整体接受,保障数据在各个节点上的一致性。
- 申请者要决策者做第一轮表决,尝试获得多数派决策者的支持,同时获得已经进入第二轮表决的修改申请内容。
- 申请者根据收集到的其他申请者的申请内容的数量,在他们的修改申请和自己的修改申请中选一个最可能通过的申请内容,发起第二轮表决。
决策者服务
决策者的工作实际和申请者,学习者之间没有太多关系,决策者对一个修改申请无非要求以下内容:
因此决策者这个角色可以做成一个相对独立的服务,为各种类型的申请者提供一致性支持。
另外由于多个学习者的学习可能出现不一致,所以学习编号可以由决策者这边通过唯一数据库递增管理。
看过上文但又不是很懂的就不要多看几次了。google一下能找到很多人的心得,但是中文的心得普遍不容易理解。所以推荐阅读英文原版论文
paxos simple
posted on 2012-02-24 20:36
LOGOS 阅读(3014)
评论(0) 编辑 收藏 引用