01|什么是分布式数据库?
该思维导图由 AI 生成,仅供参考
外部视角:外部特性
- 深入了解
- 翻译
- 解释
- 总结
分布式数据库是为写多读少、低延时、海量并发OLTP场景设计的关系型数据库。通过水平扩展,即增加机器数量,它提供远高于单体数据库的并发量,几乎不受单机性能限制。文章从外部视角和内部特性两个方面探讨了分布式数据库的定义。外部视角强调了分布式数据库解决的问题和适用场景,主要关注OLTP场景下的特性。内部特性则突出了分布式数据库相对于传统关系型数据库的最大差异,即海量并发处理能力。文章还介绍了分布式数据库的高可靠性需求,以及其具备海量数据存储能力的特点。此外,文章还对分布式数据库的内部构成进行了分类介绍,强调了分布式数据库将技术细节收敛到产品内部,以一个整体面对业务应用的特点。整体而言,本文通过清晰的逻辑和简洁的语言,为读者解释了分布式数据库的概念和技术特点,为进一步深入学习提供了良好的基础。文章还提到了Aurora及其同类产品,探讨了它们与传统分布式数据库的差异和原因。
《分布式数据库 30 讲》,新⼈⾸单¥59
全部留言(38)
- 最新
- 精选
- 趁早我也不太能理解老师说的分布式数据库服务于写多读少的应用,我觉得不管是写多还是读多都可以应用分布式,关键是单体已经承担不了这么多请求了(不论读写),所以其实高并发就够了,不应该吧写多读少加入到分布式数据库的定义里面
作者回复: 你好,之所以强调写多读少,因为写操作的负载只能是单体数据库的主节点上,是无法转移的;而读操作,如果对一致性要求不高可以转移到备节点,甚至在某些条件下还能保证一致性。就是说单体数据库可以通过一主多备解决读负载大的问题,而无需引入分布式数据库
2020-08-12670 - kylexy_0817一直没接触过分布式关系型数据库,感觉就是把客户端或中间件的方案直接作为数据库服务端的特性组件,把分库分表做得更为自动化🙃
作者回复: 分布式数据库和分库分表的最大区别在于,分布式数据库的使用体验是非常接近关系型数据库的,不需要应用进行额外的控制,这就降低了代码的开发难度。而分库分表方案在分布式事务和跨节点查询等方面,通常支持的都不好。
2020-08-1121 - 峰云dbms再分布式基础上更关注于计算存储分离后可独立扩展,甚至动态扩缩容,self-driven搞起来,更好卖了哈哈哈。当然这引发了不少问题,aurora提出了log is database的思想,降低写压力,snowflake通过建立中间分布式换存层,降低网络瓶颈等等。
作者回复: 总结的很好,log is database是aurora类数据库的设计思想。
2020-08-1015 - 开心哥aurora也用到一点投票机制,6个副本,半数以上就确认写入成功。也算沾点边。但没有分片,不能多写,肯定不算分布式。
作者回复: 你好,说的很好。不能多写,这点很关键,适用场景会有很大区别,所以这是一个重要标准。但是,因为Aurora是基于共享存储的,所以说它是分布式也不是没道理。我们定标准的目的,只是为了让学习的思路更清晰。
2020-08-13210 - xy🥝AWS aurora,阿里polarDB,腾讯CynosDB,架构上是比较类似的,计算存储分离。 所有计算节点都访问存储节点上的同一份数据,也可以说是分布式架构的。建议老师加个餐讲讲
作者回复: 你好,你说的很对,三款产品都是类似的架构,还有华为的Taurus。这个架构的局限是写入不能横向扩展,但对于中小型应用也够了。
2020-08-149 - Monday建议老师画一张分布式数据库的全景图,后续的章节都可以在这张图上添砖加瓦,不然单节学完就是学完了而已,没有成体系,谢谢
作者回复: 这个建议很好,我和编辑商量下,看看放在哪个部分
2020-08-156 - 赵见跃老师您好,基于OLAP使用场景的分布式关系型数据库,都有哪些呀?谢谢,
作者回复: 这个还是挺多的,最典型的是MPP架构数据库,比如Greenplum和华为的GaussDB 200,它们的内核都使用了PostgreSQL。此外,还有Vertica。OLAP不再强调事务的支持,如果弱化了对数据更新的要求,很多大数据生态的产品就都可以纳入进来,比如Clickhouse,Hive on spark,甚至Kylin都可以算是广义的OLAP分布式数据库
2020-08-1135 - 万丰路甲一号希望老师能够讲讲交易场景下,交易代码配合分布式数据库而做出的交易补偿或者数据回放等等
作者回复: 你好,如果需要交易代码配合做出补偿和回放,这很可能意味着它不是分布式数据库。在分布式数据库成熟前,确实有不少应用代码配合单体数据库的方式。这类应用代码也会被抽离出来形成独立的框架,如果你感兴趣,可以研究下阿里的SOFA。
2020-08-115 - 赵赟从老师的措辞上来看感觉老师水平很高,相对于其它老师学术范更浓一点。
作者回复: 谢谢:)
2020-08-174 - qinsi请问OLTP中“写多读少”中的“多”和“少”是指请求的数量还是请求的大小,或是什么其他的指标呢?都说互联网应用的数据请求通常是“读多写少”,所以才会有一主多从读写分离、全量数据缓存等解决“读”的问题的扩容手段。如果说的是同一个指标的话,是不是意味着分布式数据库不适合互联网应用?
作者回复: 你好,首先,OLTP的写多读少,是指请求数量。互联网确实可以通过通过一主多满足“读多写少”的场景,但前提是对读对一致性要求较低。而在金融场景中,很多读操作依然是无法在备库运行的,就是一致性不满足要求。所以,我觉得对互联网也不能一概而论,还是要区分场景。有关一致性的话题,我在02/03会具体讲解,你可以先看看,我们再讨论。
2020-08-114