分布式数据库 30 讲
王磊
光大银行首席数据架构师
29144 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
结束语 (1讲)
分布式数据库 30 讲
15
15
1.0x
00:00/00:00
登录|注册

08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图

华为Taurus
腾讯CynosDB
阿里polarDB
存储系统架设在分布式存储系统之上
不支持写入能力的水平扩展
具有海量数据存储能力和高可靠性的关系型数据库
服务于写多读少、低延时、海量并发OLTP场景
学习资料
分布式数据库的全景图
CockroachDB的存储容量
Raft vs Paxos
分布式数据库的存储上限
etcd和Raft协议
分片元数据的存储方案
分片策略和调度机制
时间对于分布式数据库的影响
物理时钟 vs 逻辑时钟
存储层面 vs 分片设计
TDSQL
NewSQL vs PGXC
预写日志(WAL)写成功,数据表写失败的处理
隔离性问题
原子性在分布式架构下的挑战
ACID四个特性
读写策略的作用
数据一致性 vs 一致性协议
Paxos一致性协议
5种不同强度的一致性模型
强一致性包含数据一致性和事务一致性
其他产品
Aurora不是分布式数据库
不属于分布式数据库的解决方案
分布式数据库定义
小结
第7讲:数据复制
第6讲:数据分片
第5讲:全局时钟
第4讲:两种架构风格
第3讲:事务一致性
第2讲:数据一致性
第1讲:分布式数据库的定义
分布式数据库基础篇大串讲

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

你好,我是王磊,你也可以叫我 Ivan。
这一讲是我们课程的答疑篇,我会集中讨论前 7 讲布置的思考题,以及留言区中大家关注的一些内容。

第 1 讲:分布式数据库的定义

第 1 讲中,我们通过层层递进式的分析,给这门课程要讨论的“分布式数据库”下了一个定义:分布式数据库是服务于写多读少、低延时、海量并发 OLTP 场景的,具有海量数据存储能力和高可靠性的关系型数据库。在“内部构成”这一节,我们还着重讨论了几种不属于分布式数据库的解决方案。
在这一讲的思考题部分,我们聊到了 Aurora,我说“Aurora 和这里说的分布式数据库还是有明显差别的”,想看看大家的理解。在留言中,我看到有些同学是持不同观点的,理由是 Aurora 也基于分布式存储的。
那么,为什么我说它不是分布式数据库呢?主要原因就是 Aurora 依然是不支持写入能力的水平扩展。
Aurora 是亚马逊推出的云原生数据库,它采用计算与存储分离的思想,计算能力垂直扩展,存储能力水平扩展。究其原因,它的存储系统是直接架设在自家的分布式存储系统(S3)之上的;而计算节点仍然是单节点,所以是垂直扩展。当然 Aurora 也像 MySQL 一样是支持一写多读的,根据亚马逊的官方说明,可以配置 15 个备节点来分流读操作的压力。由于 Aurora 的元数据会缓存在主节点上的,在发生变更时,主备同步数据有一个小的延迟(小于 100 毫秒),这就造成备节点不能承接写入功能,读也不能保证严格的数据一致性。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

王磊老师的分布式数据库课程答疑篇涵盖了分布式数据库的重点内容和思考题答疑。在前7讲中,王磊老师深入讨论了分布式数据库的定义、数据一致性、事务一致性和两种架构风格,并对相关技术进行了深入解析和思考。他通过对学生留言的回复展现了对学生问题的深入思考和解答,为读者呈现了分布式数据库领域的知识全景图。文章还介绍了全局时钟、数据分片和数据复制等内容,并提出了相关思考题,引发了读者对分布式数据库的深入思考。此外,王磊老师还承诺在每个答疑篇增量补充分布式数据库的全景图,以帮助读者阶段性地复习前面课程。整体而言,本文为读者提供了全面的知识视角和思考空间,适合对分布式数据库感兴趣的读者学习和讨论。

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

全部留言(9)

  • 最新
  • 精选
  • 托尼斯威特
    谢谢老师的总结。 上手分布式数据库之前,我想请问几个基本的问题, 需要ORM框架吗?MyBatis Hilbernite 还是别的什么? join操作有没有限制?比如能join on非索引列吗?能join on非partition key吗?有没有join次数限制? 嵌套select还能用吗? 是否还要遵守范式化要求?

    作者回复: 你好,首先要说你提的问题很好,我猜这也是很多同学的疑问。事实上,分布式数据库在功能上没有太多神秘的地方,我们在开篇词中提到过,分布式数据库就是分布式架构实现的关系型数据库。所以说这些数据库的典型特性,专栏中介绍的分布式数据库几乎都可以支持。

    2020-08-27
    4
    3
  • 扩散性百万咸面包
    PGXC 的数据是相对固定的,而 NewSQL 的数据是能够更加灵活移动的,移动意味着解锁了数据与节点的关系,有点像灵魂和躯体的关系。如果灵魂不被限制在一个躯体里,那是不是就可以实现永生。解锁了数据与节点的依赖关系,系统也更加鲁棒。 对文章中说的这一点,PGXC和NewSQL的区别表示疑问。PGXC如果加入动态调度的组件,是否也可以实现Range 动态调度呢?据我的理解普遍PGXC和NewSQL的最大区别是SQL层无法水平扩展吧?当然普遍PGXC因为历史原因无法做到Range的动态调度也是一个原因。

    作者回复: PGXC当然也有演进的机会,增加动态调度,不过那就已经不是我们现在所说的PGXC架构了。 SQL无法水平扩展?这个怎么理解呢?

    2020-08-26
  • evan
    "Raft 由于顺序投票的限制,在复制效率上比 Paxos 稍差" 老师, 这句话能展开讲讲吗? 因为我的理解下: 1. raft虽然是顺序投票, 不能存在日志空洞, 但在任期内只需要一次rpc就可以直接apply状态机(并且可以优化为batch append, 也可以raft group提高性能); 2. paxos虽然可以存在日志空洞, 但是通常一次提交需要两次rpc, prepare+accept, 当然也可以使用multi paxos+group多个实例多组提升性能, 或者使用fast paxos1次rpc直接accept, 但是如果冲突就很麻烦了... 所以我想问题的是..paxos比raft 复制(append log)性能高是基于哪方面? 还有日志空洞带来的缺陷或优势.. 希望老师解答下 感谢!
    2020-11-21
    1
    4
  • | 青 |
    老师您提到的Aurora和pollardb是不是可以理解为和rac一样的smp架构啊?
    2020-10-04
    1
  • 扩散性百万咸面包
    老师,我想问个03讲的问题。MySQL的事务隔离级别理论上只有4种。但它的Repeatable Read居然也能解决幻读!那为什么不归类为Snapshot Isolation呢?我看网上都没有提到这个。
    2020-09-20
    1
    1
  • 扩散性百万咸面包
    问一下,文章中说数据库普遍写入数据都是WAL+内存写。那这种情况下,B-Tree和LSM tree还会有那么大的性能差异吗?B-Tree普遍要经过几次搜索,可能还有回表。而LSM Tree只要往有序的文件中写入数据,保证有序即可?这是两者差异的主要原因吗?
    2020-08-26
    2
    1
  • 扩散性百万咸面包
    老师,请问你在第一讲的时候说Aurora不支持多写,这个多写的定义是什么?能否详细说明?因为我看Aurora是支持多主和单主的,只是说Aurora集群的数据库实例数量是有限制的
    2020-09-19
    1
  • 扩散性百万咸面包
    为什么分布式数据库的定义要是写多读少呢?那像比较牛逼的OLAP,比如阿里Analytic DB,他们就是针对查询做特别优化,不也是分布式数据库吗?还是说他们放弃了对一致性和事务的完美追求,所以不算?
    2020-09-19
    1
  • 哈德韦
    老师好,看AWS的最新文档,似乎Aurora也支持多写了:https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html。是不是说现在的Aurora更加是一个分布式数据库了呢?
    2020-08-29
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部