分布式数据库30讲
王磊
光大银行首席数据架构师
新⼈⾸单¥19.9
2181 人已学习
课程目录
已更新 10 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (8讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
06 | 分片机制:为什么说Range是更好的分片策略?
07 | 数据复制:为什么有时候Paxos不是最佳选择?
08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图
开发篇 (1讲)
09|原子性:2PC还是原子性协议的王者吗?
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

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

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

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

第 1 讲中,我们通过层层递进式的分析,给这门课程要讨论的“分布式数据库”下了一个定义:分布式数据库是服务于写多读少、低延时、海量并发 OLTP 场景的,具有海量数据存储能力和高可靠性的关系型数据库。在“内部构成”这一节,我们还着重讨论了几种不属于分布式数据库的解决方案。
在这一讲的思考题部分,我们聊到了 Aurora,我说“Aurora 和这里说的分布式数据库还是有明显差别的”,想看看大家的理解。在留言中,我看到有些同学是持不同观点的,理由是 Aurora 也基于分布式存储的。
那么,为什么我说它不是分布式数据库呢?主要原因就是 Aurora 依然是不支持写入能力的水平扩展。
Aurora 是亚马逊推出的云原生数据库,它采用计算与存储分离的思想,计算能力垂直扩展,存储能力水平扩展。究其原因,它的存储系统是直接架设在自家的分布式存储系统(S3)之上的;而计算节点仍然是单节点,所以是垂直扩展。当然 Aurora 也像 MySQL 一样是支持一写多读的,根据亚马逊的官方说明,可以配置 15 个备节点来分流读操作的压力。由于 Aurora 的元数据会缓存在主节点上的,在发生变更时,主备同步数据有一个小的延迟(小于 100 毫秒),这就造成备节点不能承接写入功能,读也不能保证严格的数据一致性。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(4)

  • 哈德韦
    老师好,看AWS的最新文档,似乎Aurora也支持多写了:https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html。是不是说现在的Aurora更加是一个分布式数据库了呢?
    2020-08-29
  • 托尼斯威特
    谢谢老师的总结。
    上手分布式数据库之前,我想请问几个基本的问题,

    需要ORM框架吗?MyBatis Hilbernite 还是别的什么?

    join操作有没有限制?比如能join on非索引列吗?能join on非partition key吗?有没有join次数限制?

    嵌套select还能用吗?

    是否还要遵守范式化要求?

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

    2020-08-27
    1
  • 扩散性百万咸面包
    问一下,文章中说数据库普遍写入数据都是WAL+内存写。那这种情况下,B-Tree和LSM tree还会有那么大的性能差异吗?B-Tree普遍要经过几次搜索,可能还有回表。而LSM Tree只要往有序的文件中写入数据,保证有序即可?这是两者差异的主要原因吗?
    2020-08-26
    1
  • 扩散性百万咸面包
    PGXC 的数据是相对固定的,而 NewSQL 的数据是能够更加灵活移动的,移动意味着解锁了数据与节点的关系,有点像灵魂和躯体的关系。如果灵魂不被限制在一个躯体里,那是不是就可以实现永生。解锁了数据与节点的依赖关系,系统也更加鲁棒。
    对文章中说的这一点,PGXC和NewSQL的区别表示疑问。PGXC如果加入动态调度的组件,是否也可以实现Range 动态调度呢?据我的理解普遍PGXC和NewSQL的最大区别是SQL层无法水平扩展吧?当然普遍PGXC因为历史原因无法做到Range的动态调度也是一个原因。

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

    2020-08-26
收起评论
4
返回
顶部