raft功能分析
2022-01-25 19:42:11   25  举报             
     
         
 AI智能生成
  raft功能分析
    作者其他创作
 大纲/内容
  日志压缩    
     快照技术    
     服务器独立创建快照  
     AppendEntries 一致性检查  
     删除last included index之前条目  
     leader发送快照给一些落后的follower    
     对于运行缓慢的follower  
     对于新加入的follower  
     写入快照    
     写时复制  
     创建快照    
     日志超过某大小  
     follower    
     快照包含接收者日志中没有的信息    
     follower 丢弃所有日志  
     接收到的快照是自己日志的前面部分    
     快照包含的条目全部删除  
     保留缺失的条目  
     替代方案  
     LSM树(日志清理或日志结构合并树)    
     选择一个积累了大量已经被删除或者被覆盖的对象的数据区域  
     重写该区域还活着的对象  
     释放该区域  
     leader选举    
     触发leader选举:心跳  
     选举过程    
     follower    
     增加自己任期号,并转换到candidate状态  
     然后投票给自己并且并行地向集群中的其他服务器节点发送 RequestVote RPC  
     结束状态条件    
     a:赢得选举(收到过半的投票)    
     一个follower投一票,先来先服务  
     b:其他的服务器节点成为 leader    
     收到AppendEntries RPC  
     c:一段时间之后没有任何获胜者    
     所有候选人超时  
     增加当前任期号  
     进入新选举  
     防止选票瓜分算法    
     随机选择选举超时时间  
     等级系统  
     日志复制    
     客户端请求包含指令,发送给leader  
     leader    
     指令追加到日志  
     并行发起 AppendEntries RPC 给其他的服务器    
     a:follower崩溃,丢包    
     leader不断重发,直到所有follower存储了所有日志条目  
     状态机处理该条目    
     a:日志条目被复制到过半服务器上  
     执行结果返回客户端  
     一致性    
     找到两者达成一致的索引最大日志条目,不一样的日志条目就删除  
     初始化follower的nextindex  
     AppendEntries RPC 中的一致性检查    
     follower拒绝    
     leader减小nextIndex值  
     重试RPC检查  
     检查无误(日志达成一致)    
     删除冲突日志条目  
     追加  
     优化一致性检查  
     安全性    
     选举限制    
     RPC包含日志信息    
     投票者比对  
     提交之前任期内的日志条目  
     follower和candidate崩溃    
     不断重发  
     定时和可用性  
     成员变更  
     客户端交互    
     支持线性化语义    
     客户端每条指令赋予唯一序列号  
     Subtopic  
     日志    
     日志条目    
     状态机指令  
     leader收到指令时的任期号  
     整数索引值  
     日志条目    
     状态机指令  
     leader收到指令时的任期号  
     整数索引值  
     快照    
     the last included index  
     the last included term  
     满足一项结束follower状态  
    
 
 
 
 
  0 条评论
 下一页
  
   
  
  
  
  
  
  
  
  
  
  
 