28|一致性与共识(三):共识与事务之间道不明的关系
陈现麟
该思维导图由 AI 生成,仅供参考
你好,我是陈现麟。
通过上节课的学习,我们知道了共识问题的使用场景、定义和经典的算法,并且从共识的角度深入探讨了一致性和共识的关系,这让我们对一致性和共识的理解更进了一步。
你应该还记得,在课程第 23 讲“原子性”中提到过,当我们在实现事务的原子性时,采用的是 2PC 或 3PC 这样的共识协议;同时,在课程第 25 讲“持久性”中我们也讲过,通过线性一致性算法来复制数据,可以提高事务的持久性。另外,最显而易见的就是,事务的 ACID 中,C 就是一致性。
那么,你一定在想,在分布式事务中,共识与事务之间是什么关系呢?是不是像共识和线性一致性一样,共识是方法和手段,事务的一致性是目的呢?
在这节课中,我们就一起来讨论一下共识与事务之间的关系。我们先从事务的特性 ACID 的维度,一一来分析事务与共识的关系,然后以它们的关系为基础,探讨事务的本质问题,让你深入理解事务与共识、一致性之间的联系,从根本上理解分布式事务,为以后的工作打下一个坚实的基础。
事务与共识的关系
通过课程第 22 讲“一致性”的学习,我们知道了事务的最终目的是实现一致性,即确保事务正确地将数据从一个一致性的状态,变换到另一个一致性的状态。为了达成这个目标,除了需要应用层的逻辑保证外,在事务层面还需要通过原子性、隔离性和持久性这三个特性一起协作。很有意思的一件事情是,在分布式事务中,事务这三个特性都与共识有一定的关系,下面我们来一一讨论一下。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了分布式系统中的一致性与共识问题,从事务的特性ACID出发,探讨了事务与共识之间的关系。文章指出,事务和数据一致性本质上都是期望一个完整操作是原子操作,解决的是数据的一致性问题。通过对数据一致性模型和共识算法的讨论,读者可以快速了解分布式系统中事务与共识之间的关系。同时,文章还总结了事务与共识的密切关系,以及对分布式事务的深入理解对学习分布式存储的重要性。总的来说,本文通过简洁的语言和深入的技术分析,为读者提供了有价值的技术知识,帮助他们快速了解分布式系统中的一致性与共识问题。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》,新⼈⾸单¥59
《深入浅出分布式技术原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 不吃辣👾老师 课程马上就结束了,您讲的太好了,绝对高质量。非常希望你能讲paxos和raft算法,这一块也是多线程绕不开的知识点,补充这部分知识真的很有必要。在注册发现和配置中心中有一个mysql redis etcd zk eureka对比图,如果能理解他们的一致算法,就不用硬背这张图了。🤡
作者回复: 多谢多谢 后面如果合适的话,就补充进来。
2022-04-065 - 不吃辣👾老师 为了保障隔离性,只能选择线性一致性的数据复制算法。这里的线性一致性是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
收起评论