美文网首页
raft要点总结

raft要点总结

作者: silencehere | 来源:发表于2019-01-24 20:55 被阅读0次

需要维护的内容:

1. 所有server持久化自己的current term 

2. leader内存维护所有follower的nextIndex,

3. 持久化committed和uncommitted的log

4 一个server一个term只能投一票,要持久化防止重启后重复投票

5 设election timeout为T, 随机投票间隔为[T, 2T],T要远大于server之间通信时间,

log同步流程:

client->leader record log->forward log to all followers to record in parallel->receive response from servers that exceed half->leader commit and apply into sm locally->leader returned result to client ->forward  commit command to all followers in parallel -> retry forward log and commit to remained servers

约束1 AppendEntries Consistency Check

1) leader 给follower发送AppendEntries rpc时,除了携带log 新entry(index, term)外,还需要新entry的前一个entry(index, term)

2)follower接收时比较本地entry是否匹配发送来的前一entry(index, term),相同则接收new entry,不同则拒绝

推导1:

1.不同server上只要某条entry的index和term相同,则这条entry完全相同, 这条entry所有之前的entry也都完全相同

2. 如果某条entry已被committed,则其之前所有的entries也一定已被committed:

约束2 new election rule

1) 发起RequestVote rpc时,要携带最近的一条entry,接收方将其与自身最后的entry对比,对比规则是先比term,term相同时再比index,如果接收方的entry比发送方的新,则拒绝投票

推导2:

1  该规则为了保证leader日志永不被覆盖,集群中只要有entry被committed新leader必然包含该条entry,只有leader中的log才有权被commit,所有server的log entry将最终与leader保持一致

约束3  new commit rule

1) leader 并不是将log发送到过半server就认为提交,因为此时的leader可能发送的是旧term的log,即使过半,也不发起commit,而是必须将至少一条current term的log发送到过半server后才可发起commit

推导3

1  该规则保证leader如果同步成功的是旧term的log, 此时如果commit然后leader宕掉,刚同步成功的log可能被新leader中的旧term冲掉

相关文章

  • raft要点总结

    需要维护的内容: 1. 所有server持久化自己的current term 2. leader内存维护所有fol...

  • Raft 算法浓缩

    Raft 算法浓缩总结 Raft 论文给出了下面的表格,用于总结 Raft 算法精华 。 实际上,这些精华都是一条...

  • Raft协议要点

    状态机 一个节点处于下面的3种状态之一: Leader:负责接收客户端的请求,将日志复制到其他节点并告知其他节点何...

  • Raft 总结

    重点 通常一致性算法保证以下几点: 安全性保证:在非拜占庭错误下,都能返回非错误的结果。 可用性:集群只要保证 n...

  • Raft算法总结

    raft算法介绍 node节点的三种状态 一个node节点具有三种状态 Follower state Condid...

  • raft算法总结

    一、角色模型 (一) Raft-node 存在三种角色: 1、Follower:接受来自leader和Candid...

  • Raft协议总结

    动画链接 http://thesecretlivesofdata.com/raft/ 1.所有节点有三个状态,le...

  • raft论文总结

    之前都是看别人的文章,这一次自己看了一遍论文,简单总结一下,之后还需要再仔细看看 cap 1.分区容错2.可用性3...

  • 深入剖析共识性算法 Raft

    一、 Raft简介 1.1 Raft简介 Raft[https://ramcloud.atlassian.net/...

  • raft理解

    前言 这是一篇学习raft论文的总结,主要是对看论文过程中难以理解的几个问题的记录。系统性的讲解还是得看raft论...

网友评论

      本文标题:raft要点总结

      本文链接:https://www.haomeiwen.com/subject/girkgftx.html