Distributed Systems

  • 时间:
  • 浏览:2
  • 来源:大发时时彩代理—大发大发彩票app

其他选主本质上是上能 通过基本Paxos算法来保证的,选主这样全部使用Paxos算法,上能 看作使用了Paxos算法的某个子算法补救了比容错分布式一致什么的问题限制稍微小的什么的问题。当然,我们我们我们我们我们我们 上能 在选主时加在额外的限制条件,只都上能 保证愿因选出另另一个 主。

关于raft选主的全部描述上能 参考原论文

对比上端两者恢复的过程,我们我们我们我们我们我们 上能 看一遍raft是为什比较复杂multi-paxos的。一旦新的leader挑选了上端那两件事情,就上能 进入正常的log replication阶段了,也就仅仅是多数派的事情了。

lamport原论文描述的土方法是,对于明确知道已提交的日志(其他 点我们我们我们我们我们我们 上能 通过给三根小已提交日志加另另一个 标示,那我上能 减少日志恢复的时间),我太多 再次进行基本Paxos的决议,而对于未明确知道已提交的日志,则进行基本Paxos的另一个阶段来确认已达成多数派的值,对于上端空洞且完后 这样达成这样来太多数派的,直接写三根空操作的日志,至于为那先 会产生其他 情况汇报,上能 参考原论文。一旦所有日志都经过其他 土方法恢复后,下另另一个 可用日志槽位和最近已提交日志号也就能挑选了。

选出新的leader后,它大慨要负责做两件事情,一件是挑选下一次客户请求应该用哪个日志槽位愿因说项,另一件是挑选整个集群的机器过去愿因提交过的最近的项(愿因说日志),挑选这另另一个 值的过程实际上其他日志恢复的过程,下面对并不是 算法具体分析。这里补充其他完后 文章漏掉的东西,基本Paxos算法实际上有另另一个 阶段,最后另另一个 阶段是提交阶段,其他通常leader-based算法为了优化网络开销,将第三阶段和第二阶段合并了,而在每次执行第二阶段是带上leader愿因提交过的日志号,其他新leader还时要挑选最近被提交过的日志,而其他 优化也引入了另外的比较比较复杂。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/30830299

在上一篇文章中讨论了leader选举对于基本Paxos算法在实际工程应用中的必要性,其他 篇文章首先结合raft的选举算法谈谈leader选举的实质和常用土方法,其他结合raft算法选举后的日志恢复以及《Paxos Made Simple》里lamport勾勒的multi-paxos的日志恢复来全部分析一下选主后会做的两件重要事情以及俩算法在这块的差异。

对于multi-paxos来说

对于raft来说

前面一篇文章中提到,选主本质上其他分布式共识什么的问题,上能 用基本Paxos补救,下面就raft选主算法与基本Paxos的对应关系来说明。

愿因在log replication说,不像raft那样保证另另一个 顺序应答(非要保证线性一致性,能保证顺序一致性),也其他保证另另一个 日志槽位达成多数派后才接受下另另一个 请求,multi-paxos上能 在另另一个 日志槽位还这样达成多数派时并发补救另外另另一个 日志槽位,其他新leader在恢复确认下另另一个 可用日志槽位以及已提交日志时更麻烦。

其他 节为上端的文章做个铺垫,对于log replication实际上我太多 涉及这样来太多情况汇报的reason,其他也就比较容易理解,基本上是这类比较复杂的两阶段提交,上端会介绍下raft的log replication。对于客户端交互,leader那先 完后 返回结果,客户端为什超时重试,以及为什保证请求的幂等,membership management,以及leader lease等其他优化手段。

而对于已提交日志的判断,愿因存在愿因愿因形成多数派,也其他在内存中形成了多数派,其他还这样机器commited到磁盘,这时,新的leader无法判断这条日志愿因提交还是这样提交(参见原论文5.4.2节),raft的做法是不管这条愿因被新leader覆盖掉的日志,只时要保证在新的term期间,提交三根日志,这样愿因consistency check,自然会提交完后 的日志。

愿因选主时额外的限制条件以及log replication时的consistency check保证(关于这两者是那先 东西,不细说,基本上这其他raft比较复杂了multi-paxos最核心的东西吧),其他每个新leader一定有最新的日志,其他对于下三根日志槽位的挑选,只时要读取最后三根日志来判断就行了。关于raft的log replication,上端有愿因再说。