码迷,mamicode.com
首页 > 其他好文 > 详细

libpaxos分析心得

时间:2014-08-25 19:26:24      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:分布式系统   paxos   分布式存储   一致性算法   

前一段时间在《大型分布式存储与实践》中作者提http://到一个观点:弄清楚PAXOS协议会大大增强你对分布式系统理解的信心。后来陆陆续续看过网络上的一些PAXOS的介绍,包括PAXOS的历史、PAXOS的第一版论文(The Part-Time Parlinment)、第二版论文( Paxos Made Simple)以及chubby的论文。都没太搞懂里面的细节,后来结合wiki上对paxos算法的描述,算是基本上弄懂了其原委。个人感觉wiki上面的描述是最清晰易懂的,也是最好的入门文档。后来在一篇文章中有人提到libpaxos这个库,用C实现的,为了进一步弄懂算法的每一个细节,于是开始对libpaxos做细致的阅读并对代码做了详细的注释。注释的代码我已经放到git hub上,要下载点这里

虽然libpaxos对PAXOS算法做了基础的实现,但这个库本身不能直接用于生产环境,这个库的proposer和learner并没有对议案做固化保存,一旦某个物理机异常,就会丢失相关的议案信息,acceptor实现采用了Berkeley DB来固化接受的提案,算是比较稳定的。这个库在内存分配和效率上做的一般,如果大规模的消息,很容易产生内存碎片。库采用的是libevent单线程reactor模型,无法利用充分利用多CPU的优势,并发上会是个问题。另外,libpaxos并没有实现PAXOS的leader模式。

   从上可以看出,libpaxos的主要价值是可以用来做研究,可以让程序员对PAXOS的细节了解更加清楚,也可以根据其算法模型实现一个可以用于生产环境的paxos库,但这必须要做几个工作:

1.各个单元的状态信息固化,防止宕机发生信息丢失

2.增加leader模型

3.改为多线程实现并合并learner、proposer、acceptor为一个进程。

4..对库做充分细致的测试


libpaxos分析心得

标签:分布式系统   paxos   分布式存储   一致性算法   

原文地址:http://blog.csdn.net/yuanrxdu/article/details/38822611

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!