V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
isno
V2EX  ›  程序员

大家看看我是否把分布式共识写清楚了

  •  1
     
  •   isno · 2023-12-11 10:48:39 +08:00 · 1607 次点击
    这是一个创建于 384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我把分布式共识单独列了一个章节,包含这几个部分:

    • 共识问题(共识是分布式容错模型的核心)
    • 从拜占庭将军问题着手理解共识
    • Paxos(混沌的分布式世界中的一缕曙光)
    • raft 工程化的 multi Paxos ,解决现实问题

    写作这一章的本意是从解决问题的本质去理解分布式系统,理解了 paxos ,就懂了 raft 的设计思路。理解了 raft ,自然也更能体会 etcd 、consul 甚至 k8s 容错的设计

    阅读地址: https://www.thebyte.com.cn/consensus/summary.html

    如果有谬论、错误的地址,恳请指正(可以在 github issue 或者这个帖子留言)。

    2 条回复    2023-12-11 16:45:34 +08:00
    mer
        1
    mer  
       2023-12-11 15:10:57 +08:00
    感觉讲 Paxos 这里为了循序渐进反而把文章写的太复杂了(看到 Basic Paxos 这里)

    首先核心需求这里 "必须在有限时间内做出决议(不能有太多轮投票)。" 这个应该是楼主自己加的吧,basic paxos 本身就有活锁问题(文章最后实际也讲到了)所以不可能有这个需求

    然后就是解决方案的第一第二第三感觉有点为了错而错,比如 “按时序决策节点只接受它收到的第一个提案...这也就意味着我们无法保证在一轮投票中达成共识“ 平票的话我理解本身就是 paxos 的一个场景,两个 quorum 中至少有一个节点是重叠的,那么这个节点就能知道哪个提案的序号更大并响应。其他的也类似,其实简单讲一下需求然后直接讲 Basic Paxos 算法就好。

    另外这篇文章很多图之前也在其他文章看到过(如果都是本人原创请无视),博采众长的文章还是要避免堆砌,尽量梳理清楚,另外最好标明出处。

    以上如有错误请指出,感谢分享。
    isno
        2
    isno  
    OP
       2023-12-11 16:45:34 +08:00
    @mer
    感谢指点,Paxos 我自己感觉写乱了,加了挺多我自己的理解(这些理解可能也是错误的),这几篇文章得我重新再构思下。

    图片不是我原创的,文章内的图片包括网络上对 Paxos 的分析基本都来源于这个论文 https://ongardie.net/static/raft/userstudy/paxos.pdf
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2620 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:45 · PVG 13:45 · LAX 21:45 · JFK 00:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.