云原生数据库是一场闹剧,还是数据库市场的程咬金_数据

(本周有事,周五停更)

最近接了一个“工作”,关于云原生数据库的一项研究,想着最终提交结果的过程中,也可以将研究的一些感想写到公众号上,最终的成品是不能在公众号上展现的。

多年前参加了一个直播,直播的主题是MySQL PK PostgreSQL,但最后搞来搞去,变成了云原生数据库和传统数据库的一场“较量”。我还在中间打圆场,避免两方尴尬,毕竟两方一方为传统数据库公司的顶尖的大佬,另一方是云原生数据库的技术负责人。毕竟也都是成年人,看透不说透,云原生数据库一定是触犯了另一个群体的利益。

其中主要的话题我记得非常清楚,云原生数据库为开源数据库或数据库业界做了什么贡献,传统数据库公司的大佬提出了这个问题,并且对于云原生数据库对数据库业界的贡献表达了些许的不满,话里话外对于云原生数据库利用开源数据库赚钱,但对开源数据库不进行数据库技术反哺的行为进行了斥责。

当时对于云原生数据库的使用处于初级阶段,自然对于两方的“较量”并不是太明白其中的刀剑往来含义和真实的意思。

转眼间使用云原生数据库也有些年头了,在逐步使用云原生数据库的一些产品也有了不浅不深的使用感受,算是对云原生数据库有一些“浅薄”的了解。

从文章标题来说,如果说云原生数据库是一场闹剧,这个我是不大认可的,云原生是有客户的,并且客户的数量并不少。这里我借用2023年的一个调查报告,当然其中的结论可以忽略,我们只看数据,这里数据中给出 68%的数据库增长来自于云上,2023年75%的市场来自于云。

数据有Tsinghua University 进行背书,数据是有一定的可信度的。



云原生数据库是一场闹剧,还是数据库市场的程咬金_云原生_02

国外的云原生的市场的数据库产品,主要有Amazon Aurora , 还有Azure Cosmos DB, MonogDB 的 Atlas ,google 的cloud spanner.  国内的产品主要在集中在阿里云和腾讯云二者的产品 PolarDB 和 TDSQL。

相信从阿里和腾讯的官方网站上可以查到诸多的这两个产品的说明和技术上实现的简述,可以迅速的了解这些产品的特点。其中核心的功能主要集中在扩展,收缩的便捷性和收缩扩张的速度及一些特殊功能,如列式存储,压缩存储,弹性等,是这些数据库的主要卖点。

要评判一个产品是闹剧,还是“程咬金”,需要和原有存在的产品进行比对,优势和劣势。

优势可以用一句话来概述,也是这几年使用传统数据库和云原生数据库给我最多概念上的冲击,“大部分传统数据库需要解决的问题,是云原生数据库的卖点,大部分云原生数据库在产品设计上,具有很强的替换传统数据库的特性”。

不少传统数据库产品出世年代都比较久远,能数到的是上世纪中后叶出现的产品较多,数据库产品的设计离不开硬件,这也是一个核心的问题,数据库的设计是依据当时硬件的特性进行设计,还是超前当时硬件的特性进行设计,这是一个根本点。我个人比较倾向前者,硬件决定了数据库设计者设计数据库的思路和数据库的架构的最终呈现形式。

如将数据库产生的基础设定在,现有硬件,再有数据库的角度上,那数据库的设计一定是滞后于硬件产品,事实上很多数据库也是这样的,比如在SSD 磁盘产生前,数据库的设计理念,与现在大量的高速SSD磁盘系统的产生,和高速信道的数据内存交互的产品产生后,数据库的一些思路与之前的思路开始有不同了。

之前数据库的数据表的页面部分,大部分都为8KB ,部分基于原理的影响有16KB页面的数据库产品,而现在基于新的硬件和数据快速可以刷新到磁盘的情况下,数据安全性的角度上,数据库的页面被设计成4KB一个页面,这就是硬件对数据库影响的一个表象。

更多的数据库产品,开始设计自己的数据文件存储的格式,自己的数据存储系统,自己的使用硬件的方式,并且依靠更强大的硬件来解决之前需要软件解决的问题,等等。

但问题就此分道扬镳

理念1:数据库产品应该依靠强大的软件设计,更高超的源码设计,不强依靠硬件来完成数据库系统的运行。

理念2:  数据库就是要依托更强大的硬件来,并且通过软件巧妙的设计,最大化的利用硬件来运行给客户已利益最大化。

这二者的理念并不因,云或线下而进行割裂,这二者在云和线下的领域都有各自的工作领域。比如你会经常听到对于某硬件进行国产数据库的绑核工作,通过数据库源代码的变化,来匹配硬件(国产硬件)等等的一些信息。也有云上的数据库,如MYSQL早期没有并行扫描数据表的功能,云厂商将源代码改造,让不可以对数据库表并行扫描的MYSQL版本可以进行并行的数据扫描的功能实现。

基于这样的情况,这两个理念本身可以在一个数据库产品上运作,你中有我,我中有你的一种方式的表达。

说到这里,云原生数据库怎么解决了传统数据库很难解决的问题,做到了并且称为卖点,答案两个字,硬件支持。

相对于某个机房或某个IDC服务商,云厂商购买和替换硬件的规模是巨大的,同时硬件厂商还会将一些新产品给付部分云厂商进行试用,通过云厂商的严苛使用来去发现硬件的问题,并在下一代的硬件中解决部分问题。基于强有力的硬件产品,大批量的集采,硬件的价格方面云厂商拿到的价格是非常具有性价比的,甚至拿到一些特殊针对云厂商的产品这个也未置可否。

基于这样的情况,数据库产品属于硬件和软件设计两方在使劲,的确可以做出一些传统厂商无法完全实现的产品。比如下面的一个设计,虽然是内存式的数据库产品,但他们的数据不完全存储在一块内存中,而是通过RDMA网络进行数据的调用。



云原生数据库是一场闹剧,还是数据库市场的程咬金_云原生_03

新的硬件产品和模式必然会将云原生数据库的技术设计理念与传统数据库设计的理念越拉越远,互相在底层的相似度越来越趋近于0,而更过分的是,上层的部分云原生数据库产品却一直在兼容传统数据库。这相当于一个 “卡罗拉”的车壳下,坐进去也是一辆卡罗拉,但你开起来发现这是一辆大众高尔夫R。

说到这里,好像我要一直在云原生数据库产品上发表永无止境的赞美,而云原生数据库产品也有自己最大的软肋。

信任,对于云原生数据库来说最脆弱的地方不是技术,不是成本,最脆弱的地方是信任,你能试想一个特别大的企业著名的世界500强,完全使用云原生数据库,这从人性上是不能被接受的,这是一个企业对另一个企业无限制的信任,你的业务时时刻刻都运行在一个用合同和承诺堆积出来的塔上,没有一个大企业允许将自己的全部身家性命都放到一个篮子里面,所以即使云原生数据库再好,再强,也不可能完全霸占一个企业所有的数据库产品使用的列表,如何树立一个云服务厂商好的形象和坚固的持续的稳定服务的输出,才是给自己云原生数据库强有力的背书,否则你技术再强,也得不到客户的信任和无时不刻的猜忌,同时云原生数据库还要给自己做好备用计划,减少客户预先对你可替代性的调查后的不利结果,而这样的情况下,云原生数据库就很难走出兼容其他数据库市场中通用类数据库产品宿命。

另外还有一个更大的问题,这里就不说了,已经不是云原生数据库本身的问题,如果要比喻的话,一个桃子的桃核在好,如果桃子的肉烂了,那也就没有人关心桃核的问题了。

Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。


云原生数据库是一场闹剧,还是数据库市场的程咬金_数据库_04