前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式数据库 到底分布在哪里了,优缺点在哪里

分布式数据库 到底分布在哪里了,优缺点在哪里

作者头像
AustinDatabases
发布2022-12-12 18:50:17
1.8K0
发布2022-12-12 18:50:17
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

公司技术分为浓重,在众多的兴趣小组里面有一个分布式数据库的小组,本周五需要进分享,是在是惭愧,作为这个小组的 specialist, 啥都没有做,所以赶紧弄弄,要不说啥。

分布式式数据库到底分布在哪里了,大多数的定义中大家确认分布式数据库是通过网络方式,两个以上的节点,基于分布式协议通过文件系统组成的数据存储和处理单元的统称叫分布式数据库。

下面画了四种数据库类型,或者说四种分布式数据库系统成型的状态

1 存储分布式,但计算单元没有分布式,首要要说的,在数据库内部进行分区表的,可不是分布式,因为定义中提出,通过网络。所以下方的分布式系统是通过将数据打散后,形成分布式存储,而上面的计算单元并不是分布式。但通过定义来说,这样的设计本身也不能说明,他不是一个分布式数据库系统。

这样设计的数据库系统优点在于,数据库本身的形成简单,基本上没有太大脱离单体数据库原理,只是扩展了数据存储部分,提高了数据的存储容量,以及在大量数据提取中的速度。

第二种方式和上面的方式,不同。是将计算单元进行了分布式处理,通过计算单元的分布式方式,提高了数据的计算能力,并且每个计算单元本身也是弱耦合的。终究限制计算单元之间的性能问题是,网络,数据存储速度等,同时限制在存储层面容量的问题也必须考虑在内。

第三种方式存储单元和计算单元通过网络连接的方式分割开来,之间的访问逻辑关系复杂,但对外来说看上去是一个数据库。但这样的设计中存储单元和计算单元沟通的成本大,锁设计需要更多的巧妙心思,才能达到实际中的性能设想。

最后一种本身和第三种类似,但是这个设计中本身存储单元和计算单元并没有分割开来,并且需要协调单元来进行数据的访问路由等事情,这个设计中的问题,一部分与上面图中的设计类似,同时还需要接受存储单元和计算单元在性能问题出现后的更多问题的存在。

基于我浅薄的分布式系统的知识,简单的将分布式数据库到底哪里分布进行了一个总结

1 存储分布式

2 计算节点分布式

3 计算节点 ,存储节点,分布式

4 计算单元分布式

关于题目中的第一个部分关于分布式的问题,分布式到底哪里分布了,进行了说明。第二个问题,各种分布式的方式中,优缺点又在哪里???

先说第一种方式,第一种方式中的数据库系统,其实在我们日常的数据库系统中,非常的常见,如我们的MOGNODB SHARDING, REDIS CLUSTER , ES 等系统都属于,存储方面的分布式成型,或者通过中间件DBLE 对MYSQL 数据库进行的存储节点的分布式本身也都属于这一个属性,但实际上这里这些实体的成型的分布式存储式数据库,又多多少少在计算节点和存储节点上也有部分联系和功能。

第二种方式,第二种方式本身基于存储本身并没有进行分布式,所以这个部分的分布式产品本身的存储系统需要强悍的能力,才能完成众多计算节点对其数据的索取需求。但这样设计的分布式数据库系统有点也很明显,本身不必要考虑数据的不一致性在存储层面,而内存中的基于多版本信息的一致性倒是被提上需要考虑的问题,否则节点之间在同一个时间由于数据的延迟不一致等问题,给出的计算结果不一致,这就不可以了。

第三种方式,本身的联合第四种方式说,或者说第三种方式是,第四种方式的变种,而第四种方式才是目前不少分布式数据库的形成。第四种的分布式每个节点本身至少带有两种属性,计算节点和存储节点的功能,甚至一个节点还带有,数据迁移和数据访问路由的功能,也有部分分布式数据库本身不带有这样的功能。

具体分布式数据库有那些特性可总结一下,不是每种数据库都具备以下所有的特性

1 存储的独立性

2 查询语句的分布式处理

3 分布式事务的管理系统

4 硬件的独立性

5 操作系统的独立性

6 网络独立性

7 节点之间的协调交互能力,与数据的在分配和迁移的能力。

而分布式数据库本身的性能本身也与,不同的架构设计,导致的分布式数据库系统在满足原由单体数据库中对于事务,以及多版本控制的要求的情况下,越发的复杂。同时分布式数据库本身,节点的增加和性能的提高本身也不一定是一个线性递增的过程,很可能是一个抛物线的状态,节点越多,维护和基于数据一致性导致的节点之间的沟通成本越发的高昂,导致分布式数据库系统性能降低。等等问题。同时分布式数据库系统,对于硬件的本身的依赖,尤其在磁盘系统,网络系统等都与单节点系统有很大的不同。

所以一个分布式数据库系统本身,在数据同步状态,节点之间的数据状态交互,与数据路由等部分都还是一个需要继续研究的状态。同时分布式系统本身也需要针对相关的应用来进行匹配,有些应用的性质对于分布式数据库本身并不适合,成本的原因等等也是需要考虑的部分。

但不可以否认的,分布式数据库系统,在容灾的程度,以及在硬件存储系统成为瓶颈的状态下,是一个解决问题的方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档