随笔 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,请移步
叫我abc

常用链接

留言簿(12)

随笔分类

我的博客

搜索

  •  

积分与排名

  • 积分 - 299533
  • 排名 - 84

最新评论

阅读排行榜

一个分布式修改数据的一致性算法。

主要角色

决策者:是否批准修改申请。对一个资源一次只能批准一个修改申请,不能做墙头草。
申请者:提出修改申请。
学习者:记录被批准的修改。

主要过程

多个申请者向多个决策者提出修改申请,获得多数派批准的申请将交给学习者进行学习。

这个民主的过程将经过两轮表决,在第2轮表决中获得多数派批准的申请可以被整体接受,保障数据在各个节点上的一致性。

  1. 申请者要决策者做第一轮表决,尝试获得多数派决策者的支持,同时获得已经进入第二轮表决的修改申请内容。
  2. 申请者根据收集到的其他申请者的申请内容的数量,在他们的修改申请和自己的修改申请中选一个最可能通过的申请内容,发起第二轮表决。

决策者服务

决策者的工作实际和申请者,学习者之间没有太多关系,决策者对一个修改申请无非要求以下内容:

  • 申请者ID
  • 申请编号
  • 资源ID
  • 修改内容
因此决策者这个角色可以做成一个相对独立的服务,为各种类型的申请者提供一致性支持。

另外由于多个学习者的学习可能出现不一致,所以学习编号可以由决策者这边通过唯一数据库递增管理。


看过上文但又不是很懂的就不要多看几次了。google一下能找到很多人的心得,但是中文的心得普遍不容易理解。所以推荐阅读英文原版论文 paxos simple

posted on 2012-02-24 20:36 LOGOS 阅读(2992) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理