V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Miiiz
V2EX  ›  ZooKeeper

zookeeper 关于事务提交的一点疑惑

  •  
  •   Miiiz · 2018-12-07 11:28:56 +08:00 · 5240 次点击
    这是一个创建于 2155 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当一个事务请求得到过半 follower 的 ACK 响应时,leader 会下发 commit 消息给 learner,leader 自身也会 commit,然后其实就是各个角色进入 CommitProcessor-》 FinalRequestProcessor,然后去执行事务刷新到内存,这个操作的话,肯定会存在部分失败,部分失败,那 leader 失败或者 learner 失败了,就会出现数据不一致的情况,这该怎么办?希望有大佬给点提示,感激不尽

    3 条回复    2022-05-27 22:58:50 +08:00
    Miiiz
        1
    Miiiz  
    OP
       2018-12-07 13:39:24 +08:00
    有没有大佬解答一下呢
    pifuant
        2
    pifuant  
       2018-12-07 17:09:52 +08:00
    建议先熟悉下 共识算法 paxos

    简单来说, 一个操作, 只要被 majority 接受了, 就表示成功了, 这时只要保证 majority 存活, 无论 leader 还是 follower 挂了, 都不会影响结果
    JasonLaw
        3
    JasonLaw  
       2022-05-27 22:58:50 +08:00
    建议看一下
    &list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB&index=6 和
    &list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB&index=7 ,还有 https://raft.github.io/raft.pdf
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:32 · PVG 08:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.