为什么现在都要搞,高大上的分布式数据库

原创
08/28 06:59
阅读数 18

在数据库的领域尤其是国内,专门搞单体方面的数据库公司是越来越少,基本上大部分都在搞或正要搞分布式数据库.  分布式数据库不光是专业的数据库公司在做, 各大银行也有在搞自己的分布式数据库. 如题,为什么现在都在搞"高大上" 的分布式数据库.  其实要说清这个问题,本身可能和数据库没有太多的关系.

这个还的从硬件来说起, X86结构的计算机,基本上能看到文字的人,至少人手一台. 而ARM结构的计算机,不少人是第一次听说. 咱们在往下看,一些CPU 的型号





大部分国内大型国有企业, 党政军,以及国家核心机构, 国有银行,及具有国有股份的银行,都已经开始不建议使用INTER处理器的计算设备了, 也就是说上面看似陌生的服务器产品将有很大的需求来自于这些单位和企业. (小声说一句,这些产品一点也不便宜,并且供不应求) 

那么基于这些硬件结构的服务器上,架设的操作系统也就必然不能是WINDOWS ,或者 MACOS ,UNIX 等操作系统了,  可能是你听都没有听说过的 麒麟系统.

那么咱们继续往下捋, 基于这些硬件结构和操作系统之上的数据库产品也的重新来过, 实际上留给这些硬件和操作系统成长的空间还有很大. 我想你明白我的意思.


此时你可能说,用MYSQL, 开源的, 基于开源协议以及国家安全等因素, 基于MYSQL的开源数据库的二次开发已经处于停滞的状态. WHY???? 想想那些还用ORACLE 盗版的企业,哪里有钱买你的二次开发的MYSQL , 而国家核心的那些"厉害角色", 早就把MYSQL 这样的产品画在圈外了.

在国内政策导向的基础上, 数据库产品的空白就显现了,基于硬件和软件"名录"中的产品的性能因素, 如果凭借单机的方法,则很难超越 ORACLE + 超高硬件及操作系统加持后的性能巅峰.  

所以,老一辈领导的名人名言, 多生孩子好打仗, 此时数据库产品的分布式化就变成一种"需求" .  根据这些需求自然就有相关的供应商来出产适合当前国情的数据库产品.

废话了那么多,现在才开始进入真正的主题, 分布式数据库是真香,还是无奈的选择. 实际上分布式数据库是基于当前的国产硬件,以及单机产品无法达到某些 O 记产品的高性能而做出的妥协.  

有人可能说, ORACLE 好用就应该用优秀的产品, 但在优秀的产品也躲不过国情的标签,国内是基于整个国家安全和稳定的考虑. 在目前国情的情况下, 分布式数据库在技术上就成为了必然.


另一个非政策的原因就是成本, (东方看政策, 西方看成本), 本身ORACLE的计费通过CPU 来进行计算, 而越高级的硬件会充分发挥ORACLE的计算性能, 这就变成一个死循环,  ORACLE 产品的成本高, 而要充分发挥ORACLE 产品的性能, 需要使用更高级的小型机, 而小型机的成本也不低, 如果将所有的应用都跑到小型机和ORACLE, 则维护成本,后期的硬件升级成本,以及人员的成本都会非常高. 并且这些资源尤其人员,很难找到合适的.


资本家本性除了要榨干每一滴血管的血外,另一个本性或者人性,就是不愿意受制于人, 所以ORACLE 这样产品也必然让资本不欢喜.  分布式数据库的产出有着充分的理由和需求. 廉价的硬件, 简单的单节点架构构成, 想想都会让资本家开心, 😄

  

从分布式数据库系统本身的技术角度考虑,主要可以做到



1  分布式存储, 数据存储扩容,缩容, 节点高容错性,通过多节点将数据分散存储满足 高可用,数据冗余, 读写分离,数据存储节点替换添加的多种需求


2  分布式计算, 单体数据计算主要的缺点在于, 忙时计算能力不足, 闲时计算能力剩余, 通过分布式计算的特点,将计算的算力平衡分布,并且通过将任务分解后,让多个节点分布式计算来满足硬件单体的性能不满足.


但分布式数据库本身也带来一些不好解决的问题, 


1  随着并发的提高, 事务控制节点的性能瓶颈的问题 (集中控制的事务ID, MVCC 会在此方面存在性能瓶颈 )

2  数据备份,尤其是增量备份的问题, 在数据量超大时的FULL备份的时长问题

3  高并发下,分布式数据库设计中的2PC,造成的性能衰减愈加严重的问题, 

尤其在大事务回滚的情况下.

4  数据存储节点非传统模式(非行存储模式)在数据存储中带来的性能损耗以及查询速度问题

5  分布式数据库本身理论薄弱,  需要耗费大量的时间摸索验证. 


基于需求,分布式数据库是必须要做的, 这是涉及,硬件, 国情,政策,成本以及"金主"爸爸的多方面的综合性的因素. 一个产品的诞生不是凭空捏造, 这是时代和当时环境所"创造"出来的产物.


不过好的消息也有, 分布式数据库目前都属于摸索和初始的阶段,大家都处于起步阶段,目前呼声比较高的开源的分布式数据库


1  TIDB

2  Cockroach DB

3  Yugabyte  

4  Cassandra 

5  OB


以及基于POSTGRES-XL/XC 协议的产品 如

1 PolarDB

2 Tbase

3 Goldendb  (PGXC 风格混合MYSQL的一个变种)


从上面可以看到, 国产分布式数据库大部分都是基于POSTGRESQL 分布式协议或学习相关的风格改造的产品, 

有对polardb 感兴趣的可以去看看这篇,关于polardb对POSTGRESQL的改进.



下一个阶段的数据库的比赛的赛道已经铺好,至于怎么比,谁能获胜, 谁是分布式的数据库界的ORACLE, 都是未知数.   至于ORACLE 或早或晚,都会变成我们心中的诺基亚.
















本文分享自微信公众号 - AustinDatabases(AustinDatabases)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部