Ceph剖析:Paxos算法实现】的更多相关文章

作者:吴香伟 发表于 2014/10/8 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Recovery阶段 在Leader选举成功后,Leader和Peon都进入Recovery阶段.该阶段的目的是为了保证新Quorum的所有成员状态一致,这些状态包括:最后一个批准(Committed)的提案,最后一个没批准的提案,最后一个接受(Acceppted)的提案.每个节点的这些状态都持久化到磁盘.对旧Quorum的所有成员来说,最后一个通过的提案应该都是相同的…
作者:吴香伟 发表于 2014/09/05 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个因素: 1) 故障域隔离.同份数据的不同副本分布在不同的故障域,降低数据损坏的风险: 2) 负载均衡.数据能够均匀地分布在磁盘容量不等的存储节点,避免部分节点空闲部分节点超载,从而影响系统性能: 3) 控制节点加入离开时引起的数据迁移量.当节点离开时,最优的数据迁移是只有离线节点上的数据被迁移到其它…
作者:吴香伟 发表于 2014/10/10 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 心跳是用于OSD节点间检测对方是否故障的,以便及时发现故障节点进入相应的故障处理流程.故障检测需要在故障的发现时间和心跳带来的负载之间做权衡,如果心跳频率太高则过多的心跳报文会影响系统性能,如果心跳频率过低则会延长发现故障节点的时间,从而影响系统的可用性. 建立连接 在大规模部署的场景中,如果任意两个OSD节点间都建立心跳连接将带来巨大的负担.尤其,当新加入一个OSD…
作者:吴香伟 发表于 2014/09/11 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Paxos算法存在活锁问题.从节点中选出Leader,然后将所有对数据的修改都通过Leader作为提案提出,可以让算法快速收敛.Leader的选举规则是,由当前活动的Monitor节点中rank值最小的节点当选.选举不仅会产生Leader还将确定Quorum成员,Quorum成员就是那些支持新Leader节点当选Leader的节点.因此,虽然不能保证Leader的ra…
Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文<Paxos Made Simple>,其次是中.英文版维基百科对Paxos的介绍.本文试图带大家一步步揭开Paxos神秘的面纱. Paxos是什么 Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一…
维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法. Paxos算法目前在Google的Chubby.MegaStore.Spanner等系统中得到了应用,Hadoop中的ZooKeeper也使用了Paxos算法,在上面的各个系统中,使用的算法与Lamport提出的原始Paxos并不完全一样,这个以后再慢慢分析.本博文的目的是,如何让一个小白在半…
paxos算法的重要性众所周知,它给如今的分布式一致性提供了迄今为止最好的解决方案.无论是Lamport自己的论文描述,还是网上的诸多资料,对paxos的描述都是及其简洁的,给人的感觉是paxos看似很简单,但是细深究起来又不是那么的具象,因为单纯的文字描述还是略显抽象,因此,我会先分别从文字概念描述和伪代码的方式分别阐述paxos算法的概念思想,对比着看,可以加深对paxos的理解,后期我会结合PhxPaxos代码来进一步探讨paxos工程化过程中一些实践问题. 首先来看paxos算法的文字版…
分布式数据库中的Paxos 算法 http://baike.baidu.com/link?url=ChmfvtXRZQl7X1VmRU6ypsmZ4b4MbQX1pelw_VenRLnFpq7rMvYfDDmg3Rg1Aw6YyobKozdN599x2sCiJNNHV_ Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法.这个算法被认为是类似算法中最有效的. 中文名 Paxo…
1. 概述 Paxos算法被用来实现一个容错的分布式系统,一直以来以晦涩难懂著称.这可能是因为该算法最开始使用希腊文表述的.事实上,它是所有分布式算法中最简单易懂的.Paxos算法的本质其实就是一个共识算法(我不太同意国内把consensus algorithm翻译成一致性算法,因为一致性的标准英文应该是consistency,这里面的consensus其实就是表述要达成一个共识的意思)——也称为会议算法(synod algorithm).     Paxos共识算法是由一些必须要被满足的基本条…
1 Paxos算法 1.1 基本定义 算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色: ⑴proposer 提出提案,提案信息包括提案编号和提议的value; ⑵acceptor 收到提案后可以接受(accept)提案; ⑶learner 只能"学习"被批准的提案; 算法保重一致性的基本语义: ⑴决议(value)只有在被proposers提出后才能被批准(未经批准的决议称为"提案(proposal)"); ⑵在一次Paxos算法的执行实例中,只批准…