erasure code: isa-l库使用 最近在存储项目上实现EC功能,用到了intel ias-l库的erasure code。查看了isa-l库关于EC的使用用例,这里记录一下编码以及解码过程中函数的使用。
raft论文(五) 安全性证明论文使用了反证法证明了Leader Completeness特性,进而证明了State Machine Safety特性。需要证明问题:未来Leader一定包含以前Leader commit的日志(Leader Completeness)证明过程:
raft论文(四) Safety上面的章节,关于raft的特性,已经讨论了Election Safety, Log Matching, Leader Append-only。接下来,我们先讨论Leader Completeness。Leader Completeness首先,再次回顾对Leader Completeness的定义:如果一个日志entry在给定的任期已经被提交,那么这个日志entry必然会出现在所有任期大于这个给定任期的leaders的日志中对Leader Completeness,首先在选举的时候
raft论文(三) Log replicationCommited日志首先引入Commited日志的概念,那么什么样的日志是Commited日志呢?Committed:Leader会决定什么样的日志entry应用到状态机是安全的,这样的日志entry被称为committed。如果一个日志entry被复制到大部分的server,那么这个日志就是一个committed。Commited的日志会有如下的特性:如果这个日志被这个Leader标记为commited,那么这个日志之前的日志也都是commited(注意:这里之前
raft论文(二) Leader election选举触发当一个Follower一段时间内没有收到来自于Leader或者Candidate的消息时,该Follower会转化成Candidate进行一次选举:触发选举时,该Candidate做的事情:currentTerm++(自身任期号+1);votedFor = me(给自己投票);resetElectTimer (重置定时器);给除自己的所有server发送RequestVote请求;这里会涉及到的超时时间有:base_election_timeo
raft论文(一) raft算法术语及定义关于raft的总结State所有server上的持久化的state(在respond RPCs之前会更新到持久化存储上)变量含义currentTermserver所知道的最后一个任期号(初始化为0,单调递增)votedFor当前任期获得选票的candidate IDlog[]日志entries;每一条日志包含一个状态机命令,以及从leader收到的日志任期(第一个index为1)所有server上的可变state变量含义