MySQL数据库未来展望

2020/8/26 22:13:00

MySQL数据库未来展望


想跟大家开一些脑洞,畅想一下未来的数据库会怎样的演进。


1. 云原生


关于腾讯云数据库的未来展望,第一部分是云原生。谁都不否认最近十几年IT技术上最大的变革是由云带来的,而且这场变革的革命仍然在进行。

数据库的未来是云上原生出来的,因为云上的产品本身就很丰富,云上数据库并不是孤岛,云上专有网络有VPC、存储有COS、CBS等,主机有虚拟机CVM,还有各种数据安全产品,云数据库都可以复用这些能力。

比如:数据库备份可以存COS,数据库可以部署在CVM,异地网络可以用云联网打通,负载均衡可以用CLB等。因此,未来的数据库一定在云上,因为结合了其他云上各种产品的能力。

功能的集合将不再局限于一个软件包,以前用数据库就是下个软件包,DBA自己写脚本去备份,去做HA,现在云上本身就有丰富的产品,也就是我们经常说的跨云产品之间的融合。


腾讯云数据库也孵化出了CynosDB这样的云原生数据库。CynosDB是存储和计算相分离的数据库,它解决了弹性的问题。

传统的MySQL在做弹性扩展的时候,有一个痛点,就是必须要拷数据,增加一个副本的时候就得导入备份再追binlog,复制postion追上才算弹性扩容完成。CynosDB存储和计算分离架构,节点扩容不需要再拷数据,因为所有节点都读取的是共享存储的数据,共享存储是多副本的,可以保证存储的高可用。

上层的节点可以很快的扩容,而且是秒级扩容,CynosDB是真正解决MySQL弹性能力的数据库架构,实现了极致的弹性。

另外,CynosDB确实也复用了云上面其他产品的能力,比如:底层存储对CBS进行了深度定制,RDMA网络上的定制,以及复用计算节点虚拟化的能力等等。

2. 超融合


二是超融合,以前大家讲OLTP、OLAP数据库,超融合是把这些TP和AP的数据库都统一起来。

以前要做一个数据仓库,可能要从很多MySQL源库:订单库、用户库和库存库中搞一个多源复制,多个源端复制到汇总分析库里面,这个汇总库就是分析型的OLAP数据库。

这是最早的超融合,TP和AP数据库是分离,通过复制打通。当然,系统复杂点的话,中间可能还有数据清洗、数据映射(ETL的部分)。

这种超融合架构腾讯云数据库也已经实现,比如:我们可以从MySQL InnoDB引擎复制到MySQL Cstore引擎,实现TP到AP之间的复制链路打通。

未来的数据库不用做这么多烦琐的事情,而是把OLAP、OLTP融合在一起形成一个数据库,中间省了数据链路的复制,真正的超融合的方向在一个表里面,一个数据库里面既可以支持行存也可以支持列存的数据。

对于业务层的使用来说,少一个系统意味着更统一的体验和更低的学习门槛和更小改造成本,不要低估统一带来的力量。

3. 自治


最后要说的是数据库自治也就是未来的智能运维,智能运维现在还处在比较初级的阶段:智能诊断上,比如:推荐增加缺失的索引,推荐SQL优化建议等。

当人工智能和AI算法到达一定程度的时,并且给数据库的诊断系统喂了大量的数据后,是能够做到自优化、自诊断、自恢复和自运维的,至少可以把数据库常见的异常问题自行闭环搞定,这也是我认为未来的数据库智能的方向。

现在腾讯云上有数据库智能管家DBbrain,也正在往这个方向走,DBbrain产品里有一个CDBTune的项目,也就是智能调参,我们正在不断的给CDBTune喂大量的MySQL参数优化数据,修正和量化参数优化模型,让它变的更智能、更准确。


4. 未来的未来


前文提到的三个方面主要聚焦在短期趋势上,现在还可以和大家再延展一下,未来的未来是什么样的?

云上技术发展成熟以后,数据库一定可以做到灵活的弹性调度。弹性这个词并仅仅指弹性的拓展,不只是能够很快的升级、添加节点,这只是一个狭隘的弹性。

真正的极致弹性是在此基础上加上“调度”,我们做产品的同时也在思考,未来的数据库能不能自动识别工作负载,自动进行布控。比如能预感到峰值即将来临,自动的采购机器,对热数据创建更多副本并重分布数据,提前扩容。在业务高峰过去后,自动回收机器进行缩容。

未来数据库是否能够感知业务特点,根据访问特点决定分布。比如前文谈到的游戏行业里的全球同服,数据带有明显的地理特征,新加坡的业务一定要部署新加坡的数据库节点,此时系统将自动的将数据的地理特征在不同的数据中心放置。

另外数据库能不能感知查询的类型和访问频度,从而自动决定不同类型数据的存储介质?例如:将冷数据自动转移到 S3 之类比较便宜的存储,热数据放在高配的闪存上,高效的分配资源,让企业的成本降到最低,这也是我们一直在探索做的事情。

5. 新硬件的颠覆


最后说下硬件对数据库的影响,大家可以回顾下数据库发展历史浪潮,最早以前是机械硬盘(SATA盘),那时候 IOPS 几百上千是很了不起的事情了。

现在来看SSD,NVME SSD这些存储介质,IOPS几十万,上百万都不是问题,硬件一定是能够去颠覆改变数据库行业格局的,

传统的关系型数据库设计理念,写数据都是先写内存,然后再刷脏页刷新到数据文件,中间通过binlog和redo log这样的机制确保事务一致性。为什么都这样做,就是因为早期硬盘IOPS慢,吞吐量低。

假如未来硬盘IO能力达到和内存相媲美的能力,甚至比内存更快,这个时候数据库会是怎样的架构?大家也可以去思考下,可能 buffer pool 这样的组件都会被取缔和颠覆。

当然,硬件技术不像软件技术那么快,会有一个迭代的周期,但是值得我们期待。