深入浅出分布式技术原理
陈现麟
伴鱼技术中台负责人,前小米工程师
21241 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
深入浅出分布式技术原理
15
15
1.0x
00:00/00:00
登录|注册

28|一致性与共识(三):共识与事务之间道不明的关系

AP系统
CP系统
线性一致性的数据复制算法与共识相关
数据复制提高持久性
分布式系统中,隔离性依赖于线性一致性的数据复制
通过2PL或MVCC实现
2PC是共识协议的一种形式
通过原子提交协议实现(如2PC、3PC)
分布式锁服务
Leader选举
可终止性
合法性
诚实性
一致同意
最终一致性
线性一致性
多副本单数据对象的事务问题
最终一致性
因果一致性
顺序一致性
线性一致性
事务内多个数据对象的读写操作的一致性问题
串行化 (Serializable)
快照隔离 (Snapshot Isolation)
可重复读 (Repeatable Read)
读已提交 (Read Committed)
读未提交 (Read Uncommitted)
持久性 (Durability)
隔离性 (Isolation)
原子性 (Atomicity)
从一个一致性状态变换到另一个一致性状态
分布式的尽头就是共识的理解
理解事务是学习分布式存储的基石
事务可以理解为多个数据操作的一致性问题
分布式系统的尽头是共识
应用场景
共识算法要求
数据一致性模型
数据一致性模型
事务本质
隔离级别
事务特性 ACID
事务的最终目的是实现一致性
思考题
总结
数据一致性与共识
事务的本质
事务与共识的关系
一致性与共识系列课程总结

该思维导图由 AI 生成,仅供参考

你好,我是陈现麟。
通过上节课的学习,我们知道了共识问题的使用场景、定义和经典的算法,并且从共识的角度深入探讨了一致性和共识的关系,这让我们对一致性和共识的理解更进了一步。
你应该还记得,在课程第 23 讲“原子性”中提到过,当我们在实现事务的原子性时,采用的是 2PC 或 3PC 这样的共识协议;同时,在课程第 25 讲“持久性”中我们也讲过,通过线性一致性算法来复制数据,可以提高事务的持久性。另外,最显而易见的就是,事务的 ACID 中,C 就是一致性。
那么,你一定在想,在分布式事务中,共识与事务之间是什么关系呢?是不是像共识和线性一致性一样,共识是方法和手段,事务的一致性是目的呢?
在这节课中,我们就一起来讨论一下共识与事务之间的关系。我们先从事务的特性 ACID 的维度,一一来分析事务与共识的关系,然后以它们的关系为基础,探讨事务的本质问题,让你深入理解事务与共识、一致性之间的联系,从根本上理解分布式事务,为以后的工作打下一个坚实的基础。

事务与共识的关系

通过课程第 22 讲“一致性”的学习,我们知道了事务的最终目的是实现一致性,即确保事务正确地将数据从一个一致性的状态,变换到另一个一致性的状态。为了达成这个目标,除了需要应用层的逻辑保证外,在事务层面还需要通过原子性、隔离性和持久性这三个特性一起协作。很有意思的一件事情是,在分布式事务中,事务这三个特性都与共识有一定的关系,下面我们来一一讨论一下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式系统中的一致性与共识问题,从事务的特性ACID出发,探讨了事务与共识之间的关系。文章指出,事务和数据一致性本质上都是期望一个完整操作是原子操作,解决的是数据的一致性问题。通过对数据一致性模型和共识算法的讨论,读者可以快速了解分布式系统中事务与共识之间的关系。同时,文章还总结了事务与共识的密切关系,以及对分布式事务的深入理解对学习分布式存储的重要性。总的来说,本文通过简洁的语言和深入的技术分析,为读者提供了有价值的技术知识,帮助他们快速了解分布式系统中的一致性与共识问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 不吃辣👾
    老师 课程马上就结束了,您讲的太好了,绝对高质量。非常希望你能讲paxos和raft算法,这一块也是多线程绕不开的知识点,补充这部分知识真的很有必要。在注册发现和配置中心中有一个mysql redis etcd zk eureka对比图,如果能理解他们的一致算法,就不用硬背这张图了。🤡

    作者回复: 多谢多谢 后面如果合适的话,就补充进来。

    2022-04-06
    5
  • 不吃辣👾
    老师 为了保障隔离性,只能选择线性一致性的数据复制算法。这里的线性一致性是100%的强一致吗?不会吧😳

    作者回复: 是的,线性一致性就是强一致性。

    2022-04-11
  • 不吃辣👾
    引用"既然写操作已经实际发生了,那就只能通过读操作进行隔离了,即将一个事务时间内多个离散的写操作,通过对读操作在并发事务之间隔离的方式,使事务的多个操作对外表现为一个原子操作一样。"老师 这个读操作具体怎么实现的事务之间的隔离性的?

    作者回复: 是指让事务a还没有提交的写操作,让事务b的读操作看不到。隔离事务b的读操作通常通过mvcc多版本来隔离。

    2022-04-11
  • 啊树
    众口难调,只要是分布式系统就需要共识做协调。不知道这样理解是否合理?

    作者回复: 分布式系统的概念比较广,如果完全无状态的,可以不需要共识,比如我们将集群定义为分布式系统的话。

    2022-04-07
  • Geek_66e7c8
    老师我想请问下 mysql 的主从同步 不是强一致的 但是mysql 不也是支持事务的么 ?
    2022-10-14归属地:江苏
  • Rayjun
    这里有个疑问,老师说的完备的共识算法需要满足四个条件,但是在区块链系统中,很多节点是没有诚实性和合法性的,但是区块链的系统也能达成最终一致性,这里怎么理解呢
    2022-07-13
  • peter
    请教老师一个问题: Q1:分布式锁怎么会和共识有关系?
    2022-04-06
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部