分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
19876 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
开篇词 (1讲)
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册

15 | 分布式正确性的存在性(上):什么情况下不存在分布式共识算法?

你好,我是任杰。这一讲我们聊一聊,什么情况下不存在正确的分布式共识算法。
对于金融行业来说,系统的正确性要远高于系统的执行效率。打个比方,当你在网上和朋友聊天的时候,漏掉了一两条消息其实无所谓。但是如果你给朋友网上转钱,钱转丢了就是件大事了。
金融行业的信息系统和互联网企业一样,也是由很多台机器组成的集群提供服务。机器一旦多了就会出现分布式系统常见的各种问题,比如宕机、网络中断。
那这种情况下,我们怎么才能保证金融系统的正确性呢?套用一句知乎上经常看到的评论,我们在回答为什么之前,先要问问是不是。你有没有想过,万一正确的分布式系统并不存在呢?
这些问题其实是对分布式系统的深入思考,也是金融级软件对架构师的要求。只有知其然并且知其所以然了,客户才能对你做出来的金融系统有信心。

核心思路 & 小结

共识是指多台机器之间达成统一的结论。这节课我们会证明可能是分布式系统里最重要的一个结论,那就是不存在共识算法。准确来说,在一个完全异步的分布式系统里,如果至少有一台机器可能会出问题,那么就不存在非随机的共识算法。
从结论可以看出,想要共识算法不存在,需要同时存在两个现象:一个是机器出问题,另一个是完全异步。只要我们能让任何一个条件失效,就存在共识算法。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

分布式系统中的共识算法对金融行业至关重要,然而在完全异步的分布式系统中,不存在非随机的共识算法。本文通过深入的技术讨论和证明过程,展示了分布式系统中共识算法的复杂性和重要性。文章详细阐述了消息传输方式的复杂度,以及分布式系统中机器、共识和消息的定义。通过证明分布式系统不存在共识算法的结论,强调了在金融级软件架构中对分布式系统的深入思考和要求。共识算法的存在性取决于两个条件:机器出问题和完全异步。然而,通过给每台机器增加时钟来判断消息是否丢失,可以绕开完全异步的条件,实现正确的共识算法。文章还提到了三篇相关论文,深入探讨了共识算法的存在性。总的来说,本文对于深入理解分布式系统中的共识算法具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • tt
    这节课好难。说说自己的思考。 不准确的时钟之所以有效,是不是因为它可以打破论证的第三条,让不会终止的共识过程终止。 还有,这里其实没有所谓的准确和不准确,大多数节点持有的状态就是正确的状态,加上一个时钟可以标记出节点处于共识的轮次。 这里出错的节点就是崩溃的节点吧。检测出崩溃的节点,目的应该就是抛弃他们,从而依赖剩余的大多数节点来达成共识,同时要考虑通讯不稳定的情况。 完整性可以让正确的节点排除掉“每一个”故障节点,这是共识可以终止的条件,我觉得弱完整性就可以了。 但是完整性的前提是正确的节点不能被其余正确的节点误以为不正常了,只要一些正确的节点不要被怀疑,从而可以组成大多数就行了,即弱的正确性。

    编辑回复: tt同学太赞了,每节课都会做深入思考,感谢你的留言。这节课是老师眼中最难的一节了,毕竟这个证明还是相对复杂的。但是如果认真跟着老师但思路理解,也能够搞懂。

    2021-01-29
    3
  • 木头发芽
    看到一半后面就看不懂了,需要学什么前置课程或推荐书籍
    2021-05-20
    1
    2
  • 李二木
    共识算法不是(非)随机。到底怎么理解这个随机啊。
    2022-03-28
    1
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部