分布试算法序列普及(bully、Paxos、PacificA、translog、、、)

分布式选举,现在大家都知道的是Paxos算法。。。。。

          许多分布式算法需要一个进程充当协调者、发起者或者其他某种特殊的角色。通常由哪个进程充当这个较色并不重要,重要的是它们中要有一个进程来充当。我们假设每个进程有一个唯一的编号,同时还假设每个进程知道所有其他进程的编号。但是进程不知道当前哪个进程正在运行,以及哪些进程崩溃了。

 

1、bully算法。

当任何一个进程发现协调者不响应请求时,他发起一次选举,选举过程如下:

a\ P进程向所有编号比他大的进程发送一个election消息;

b\ 如果无人响应,则P获胜,成为协调者

c\ 如果编号比他大的进程响应,则由响应者接管选举工作,P的工作完成。

   任何一个时刻,一个进程只能从编号比他小的进程接受election消息,当消息到达时,接受者发送一个OK消息给发送者,表明它在运行,接管工作。

最终除了一个进程外,其他进程都放弃,那个进程就是新的协调者。

    他将获胜消息发送给其他所有进程,通知他们新的协调者。

     当一个以前崩溃的进程恢复过来了后,它将主持一场选举。如果该进程恰好是当前运行进程中编号最大的进程,它将获胜,故此成为欺负算法。

代表组件es: https://zhuanlan.zhihu.com/p/110015509
 

2. Paxos算法
    是用来解决分布式系统中,如何就某个值达成一致的算法。它晦涩难懂的程度完全可以跟它的重要程度相匹敌。目前关于paxos算法的介绍已经非常多,但大多数是和稀泥式的人云亦云,却很少有人能对提出自己的见解。本文试图从不一样的角度来对Paxos made simple的论文进行解释,而不仅仅是对论文的拙劣翻译,希望即使没有看过论文的同学也能看懂。

详解: https://my.oschina.net/u/150175/blog/2992187

3. PacificA:微软设计的分布式存储框架
随着信息量的急剧增长,大规模的分布式存储系统变得越来越重要。这些系统往往采用廉价的商用机器或硬件,失效出错成为了分布式存储系统的常态,因此,容错是这类系统实现可用性和可靠性的关键。众所周知已然被证明是正确的的复制协议“大有人在”,但是理论距离现实还是有一定差距的,理论可以不管不顾消息在网络中传递的次数,系统性能,吞吐量,系统设计的难易问题等等,但是真实的系统设计必须以整体的性能为根本依据,因此如何权衡理论和现实系统,设计一个可用,正确,高效的复制协议变得尤为重要。这个难题同样摆在了微软的面前,相比于单纯为了需求而设计一个具体的,特定的复制协议算法,微软高明地选择设计一个简单,实用,具有普适适用性的复制框架,这样不同的策略都可借助于该框架实现,并且有助于不同的策略优劣的比较。


PacificA是微软为大规模分布式存储系统开发的一个通用复制框架,也可称之为一个原型系统。该框架简单,实用,提供强一致性,并且可以适配不同的复制策略。它对于我们理解分布式系统的强一致性,容错,仲裁有很好的指导意义。

PacificA的设计特点


1>. 设计了一个通用和抽象的复制框架,模型容易验证正确性,实现不同的策略实例

2>. 配置管理和数据复制分离,Paxos负责管理配置,主副本策略负责数据复制

3>. 将错误检测和配置更新容在数据复制的交互里面,去中心化,降低瓶颈


存储分布式:https://blog.csdn.net/huangshulang1234/article/details/78706149

 

4. Elasticsearch的translog与刷新操作 
如果没有用 fsync 把数据从文件系统缓存刷(flush)到硬盘,我们不能保证数据在断电甚至是程序正常退出之后依然存在。为了保证 Elasticsearch 的可靠性,需要确保数据变化被持久化到磁盘。

在动态更新索引,我们说一次完整的提交会将段刷到磁盘,并写入一个包含所有段列表的提交点。Elasticsearch 在启动或重新打开一个索引的过程中使用这个提交点来判断哪些段隶属于当前分片。

即使通过每秒刷新(refresh)实现了近实时搜索,我们仍然需要经常进行完整提交来确保能从失败中恢复。但在两次提交之间发生变化的文档怎么办?我们也不希望丢失掉这些数据。

Elasticsearch 增加了一个 translog ,或者叫事务日志,在每一次对 Elasticsearch 进行操作时均进行了日志记录

Elasticsearch的translog与刷新操作: https://blog.csdn.net/lijingjingchn/article/details/107673900

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值