V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chengxuyuanfei
V2EX  ›  问与答

请教一个关于 RAFT 的问题

  •  
  •   chengxuyuanfei · 2017-03-24 19:32:21 +08:00 · 1235 次点击
    这是一个创建于 2607 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在第 N 个 term 中,有 s1~s5 共五个 peers , leader 是 s1 ,现在 s1 收到一个来自 client 的请求,向集群的 peers 广播附加日志 rpc ,但是由于网络问题, s1 只将附加日志 rpc 广播给了 s2 ,然后 s1 就发生了网络分区。即,现在 peers 中 s1 & s2 具备一个新的 log entry (已追加,但是还没有提交),接下来,由于 leader s1 发生网络分区,其他节点开始发起选举, s2 获得了大多数选票。请问,这个时候 s2 已追加但是还没有提交的 log entry 应该怎么处理?
    (按理说,这个 log entry 没有存储到大部分节点,那么应该被删除掉,但是论文中明确提及了 leader 不会删除和覆盖自己的 log entry 。同时,要知道 log entry 是否该提交,还需要统计该 log entry 是否存储到了集群中的大多数节点中,这又涉及到了统计副本的问题,变得更加复杂了)
    初学 RAFT ,感觉非常困惑。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1222 人在线   最高记录 6547   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:13 · PVG 02:13 · LAX 11:13 · JFK 14:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.