分布式数据库30讲
王磊
光大银行首席数据架构师
新⼈⾸单¥19.9
2278 人已学习
课程目录
已更新 17 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (8讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
06 | 分片机制:为什么说Range是更好的分片策略?
07 | 数据复制:为什么有时候Paxos不是最佳选择?
08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图
开发篇 (8讲)
09|原子性:2PC还是原子性协议的王者吗?
10 | 原子性:如何打破事务高延迟的魔咒?
11|隔离性:读写冲突时,快照是最好的办法吗?
12 | 隔离性:看不见的读写冲突,要怎么处理?
13 | 隔离性:为什么使用乐观协议的分布式数据库越来越少?
14 | 隔离性:实现悲观协议,除了锁还有别的办法吗?
15 | 分布式事务串讲:重难点回顾+思考题答疑+知识全景图
16 | 为什么不建议你使用存储过程?
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

14 | 隔离性:实现悲观协议,除了锁还有别的办法吗?

王磊 2020-09-09
你好,我是王磊,你也可以叫我 Ivan。
我们今天的主题是悲观协议,我会结合第 13 讲的内容将并发控制技术和你说清楚。在第 13 讲我们以并发控制的三阶段作为工具,区分了广义上的乐观协议和悲观协议。因为狭义乐观很少使用,所以我们将重点放在了相对乐观上。
其实,相对乐观和局部悲观是一体两面的关系,识别它的要点就在于是否有全局有效性验证,这也和分布式数据库的架构特点息息相关。但是关于悲观协议,还有很多内容没有提及,下面我们就来填补这一大块空白。

悲观协议的分类

要搞清楚悲观协议的分类,其实是要先跳出来,从并发控制技术整体的分类体系来看。
事实上,并发控制的分类体系,连学术界的标准也不统一。比如,在第 13 讲提到的两本经典教材中,“Principles of Distributed Database Systems”的分类是按照比较宽泛的乐观协议和悲观协议进行分类,子类之间又有很多重叠的概念,理解起来有点复杂。
而“Transactional Information Systems : Theory, Algorithms, and the Practice of Concurrency Control and Recovery”采用的划分方式,是狭义乐观协议和其他悲观协议。这里狭义乐观协议,就是指我们在第 13 讲提到过的,基于有效性验证的并发控制,也是学术上定义的 OCC。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(4)

  • OliviaHu
    看到SGT使用了DAG检测时,就想到了Spark,也想到了刷题里面的“环路检测”。
    知识学到最后,还是需要从底层和基础去探寻答案呀。
    谢谢老师,指教。
    2020-09-12
  • 真名不叫黄金
    我觉得 MVCC 与乐观、悲观协议没有直接关系,因为乐观与悲观的本质区别是在“何时校验冲突”,而 MVCC 是另一个层次的技术,对冲突检验的时间点没有任何影响,不论是乐观还是悲观协议,都可以有 MVCC 存在。
    2020-09-11
  • 平风造雨
    关于读时间戳缓存RTC,是为了防止RW反依赖,这里读时间戳比写时间戳大的判定,是不是和分布式数据库的时钟机制有关,如果授时不存在误差的问题,是不是就不需要RTC这个设计。

    作者回复: RTC的设计是为了简化SIREAD,不是因为时间误差,也就是说就算了用TSO没有时间误差了,也一样需要RTC。

    2020-09-10
  • piboye
    mvcc可以看作单个数据的无锁结构不?乐观锁和悲观锁是全局事务级别的并发控制。
    2020-09-09
收起评论
4
返回
顶部