分布式一致性协议
文章平均质量分 92
wsqyz
这个作者很懒,什么都没留下…
展开
-
raft论文(五)
安全性证明论文使用了反证法证明了Leader Completeness特性,进而证明了State Machine Safety特性。需要证明问题:未来Leader一定包含以前Leader commit的日志(Leader Completeness)证明过程:原创 2022-02-22 14:58:05 · 914 阅读 · 0 评论 -
raft论文(四)
Safety上面的章节,关于raft的特性,已经讨论了Election Safety, Log Matching, Leader Append-only。接下来,我们先讨论Leader Completeness。Leader Completeness首先,再次回顾对Leader Completeness的定义:如果一个日志entry在给定的任期已经被提交,那么这个日志entry必然会出现在所有任期大于这个给定任期的leaders的日志中对Leader Completeness,首先在选举的时候原创 2022-02-21 17:45:03 · 661 阅读 · 0 评论 -
raft论文(三)
Log replicationCommited日志首先引入Commited日志的概念,那么什么样的日志是Commited日志呢?Committed:Leader会决定什么样的日志entry应用到状态机是安全的,这样的日志entry被称为committed。如果一个日志entry被复制到大部分的server,那么这个日志就是一个committed。Commited的日志会有如下的特性:如果这个日志被这个Leader标记为commited,那么这个日志之前的日志也都是commited(注意:这里之前原创 2022-02-19 23:35:04 · 283 阅读 · 0 评论 -
raft论文(二)
Leader election选举触发当一个Follower一段时间内没有收到来自于Leader或者Candidate的消息时,该Follower会转化成Candidate进行一次选举:触发选举时,该Candidate做的事情:currentTerm++(自身任期号+1);votedFor = me(给自己投票);resetElectTimer (重置定时器);给除自己的所有server发送RequestVote请求;这里会涉及到的超时时间有:base_election_timeo原创 2022-02-17 16:48:59 · 591 阅读 · 0 评论 -
raft论文(一)
raft算法术语及定义关于raft的总结State所有server上的持久化的state(在respond RPCs之前会更新到持久化存储上)变量含义currentTermserver所知道的最后一个任期号(初始化为0,单调递增)votedFor当前任期获得选票的candidate IDlog[]日志entries;每一条日志包含一个状态机命令,以及从leader收到的日志任期(第一个index为1)所有server上的可变state变量含义原创 2022-02-16 14:51:00 · 209 阅读 · 0 评论