b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

分布式系统原理介绍_分布式系统原理与范型_分布式系统原理 刘杰

电脑杂谈  发布时间:2017-02-23 18:38:30  来源:网络整理

两阶段提交协议与Raft协议、Paxos协议

①两阶段提交协议

在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。

因此,系统包含两类节点,一类是协调者,一类是参与者,协议的执行由两个阶段组成:

具体参考:二阶段提交:维基百科

两阶段协议是阻塞的,节点在等待对方的应答消息时,它不能做其他事情且持有的资源也不释放。它主要是用来保证跨多个节点的操作的原子性--要么都操作,要么都不操作,而像Raft协议则诸如用来保证操作的一致性,即各个节点都执行相同的操作。

两阶段协议的举例参考:两阶段提交协议

②Raft协议和Paxos协议

Raft与Paxos 在分布式应用中的基本功能相似,但是Paxos难于理解,相对而言Raft算法要简单一些。关于Raft协议有一篇经典的论文:

《In Search of an Understandable Consensus Algorithm (Extended Version)》

其中文翻译地址参考:寻找一种易于理解的一致性算法(扩展版)

还有一篇文章详细解释了Raft算法的相关实现:Raft论文的第 31 号参考文献。

下面仅记录一下看论文过程中出现的一个问题:

为什么 “大多数规则” 能够保证对于一个给定的任期,只会有一个候选人最终赢得选举成为Leader?

在Raft中,对于一个给定的任期号,每一台Server按照先来先服务原则对该任期号最多只投一张票,若某Candidate发送的请求投票RPC带有的任期号获得超过半数的Server的同意,则该Candidate成为Leader。

正是由于每个Server对某个任期只最多投一次票,且获得的投票要超过半数才能成为Leader,故在一个给定的任期投票中,最终只会有一个Candidate成为Leader。

关于Raft协议中的Leader选举步骤参考:Raft系列文章之二:Leader选举

2,分布式系统中常见的三种一致性模型

①强一致性:当更新操作在某个副本上执行成功后,之后所有的读操作都要能够获得最新的数据。对于单副本而言,读写操作都是在同一数据上执行,很容易保证一致性;而对于多副本数据,则需要使用分布式协议如2PC协议。

②弱一致性:当更新某数据时,用户读到最新的数据需要一段时间。

③最终一致性:它是一种特殊形式的弱一致性。它不能保证当某个数据X更新后,在所有后续对X的操作能够看到新数据,而是需要一个时间片段,在经过该时间片段之后,则能保证。在这个时间片段内,数据可能是不一致的,该片段称“不一致窗口“。

参考:数据一致性模型

3,拜占庭将军问题

在分布式理论中,经常看到”在非拜占庭错误情况下,算法是有效的……“ 或者说 ”...可以容忍非拜占庭失效“。那么什么是拜占庭将军问题呢?

在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member / Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。参考:维基百科:拜占庭将军问题


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34084-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...