国产数据库发展简史
时间:2023-03-13 06:24:02 | 来源:电子商务
时间:2023-03-13 06:24:02 来源:电子商务
前记
写这篇文章之前,我以为国产数据库就那么十几款,不会很多,整理起来很方便,随着资料收集的越来越多,发现国产数据库已经蔚为大观,大约有几百种了。有趣的是,关于国产数据库的综述性文章很少,而且还有很多文章都是很类似的。直接去国产数据库对应的公司去搜索资料,大部分又是宣传性质的,很难找到有价值的东西。然后作者又懒,不想一个个联系那些公司,又不想一个个试安装测试(毕竟两百多个呢),所以这篇文章读者权且当做一篇网上资料的收集整理类型的文章一读即可。
PS:国产数据库作为IT行业基础设施之一,不像芯片那样经常上新闻,也没有人专门梳理国产数据库发展历史,也许恰恰证明了现在国产数据库在某种程度上已经不是落后,不说领先,至少也是并驾齐驱了,以至于没有什么可吐槽的点,从而变成新闻热点。
数据库的意义
数据库最大的意义在于它是整个信息行业的基础设施,可以这么说没有数据库,就没有整个互联网行业,也就没有所谓的信息化。在未来,随着万物互联的发展,数据库的意义会更加重要。
也因此衍生出了为什么要做国产化?其性质就和芯片一样,我想最贴切的说明就是阿里巴巴公司去“IOE”的原因了吧。有商业成本的因素,也有着技术上传统数据库的瓶颈限制。对于国家而言,就像达梦数据库一篇PPT说到的,更多的原因在于“棱镜”项目的曝光和特朗普的上台。
毕竟,Oracle 公司的第一个项目 project oracle 就是为 CIA 服务的。
国产数据库的历史
这里不多提了,相关的文章很多。大概就是在二十世纪八十年代,萨师煊教授和王珊教授推开了中国数据库领域的大门,培养了中国数据库的第一代人才;到了九十年代后,Oracle 席卷中国,占据了中国很大的市场,但是中国也有了第一代原型数据库,比如东软的Openbase、中软的Cobase和华科的DM Database;进入二十一世纪后,国家的 863 计划设立了[数据库重大专项],有了国家政策的扶持,达梦数据库、人大金仓、南大通用和航天神舟这些公司开始发展,不过在原有的传统关系型数据库领域里,Oracle 和 IBM 的先发优势太大了,当时的环境要求的是经济发展,而不是自主可控,于是国产数据库进入了死循环,没有市场就无法验证数据库是否可靠,无法验证数据库是否可靠那么久没有公司敢用,也就没有市场;直到2010年后的云计算时代和开源社区的兴起,国产数据库开始了弯道超车,阿里喊出了“去IOE”的口号,国产数据库领域真正进入到了蓬勃发展的时代,一系列优秀的数据库和数据库公司诞生了,比如TiDB、OceanBase等等,太多太多了。
说到历史,提到一个小事,那就是:
1997 年 1 月 27 日,埃里森乘专机飞临北京,冯星君通过关系安排国宾车队去接,国宾车队的车一直开到跑道上,一大队车闪着灯很威风。机舱门开了,但人总是不出来,等了 20 分钟,从飞机上跳下来一个穿防弹衣的黑人保镖,他对迎接的车队说:「所有的车门全部打开,我要检查有没有炸弹。」一边是美国来的大老板,一边是同样惹不起的国宾车队,这哥们太难受了,他忍了。
第二天,埃里森要到长城拍推广网络计算机的电视片,事前吩咐冯星君找了 20 个小学生参与拍摄。约好早上 8 点,直到 9 点,埃里森都不起床。当天零下 20 多度,大巴没有暖气。冯星君去求埃里森:「那些小孩要冻死了。」冯星君眼泪都快流出来了,埃里森才勉强答应启程。
去了没多久,埃里森让副手打回电话给冯星君说:「埃里森挺喜欢长城,玩得挺高兴,中午就不回来了,你取消下午 3 点跟李鹏的会面吧。」这哥们差点晕过去。「下午的会面不是开玩笑的,如果我 2 点钟看不见埃里森,我辞职,我要走了,这个责任我担不起。」那边一听怕了,埃里森一行匆匆赶回人民大会堂,那个黑人保镖还要跟着进去,说要保护老板,吵闹得不可开交。
然后现在
如何看待甲骨文公司中国研发中心大规模裁员?(本站
https://www.zhihu.com/question/323304885),不甚唏嘘。
如何成长起来的
看了这么多文章,无论是国外还是国内,第一推动力都是国家因素,然后交由市场竞争,最后形成了百花齐放的局面。
在国内相对特殊的在于:
- 云计算兴起,而数据库又是云计算厂商必备的核心竞争力,导致各个厂商会有很大的动力去发展和创新数据库
- 国内残酷的竞争环境,与大多数人观感不同的是,国内数据库竞争压力特别大,要是数据库产品不优秀,基本上很难拿到市场份额。比如对于关系型数据就有 TiDB、OceanBase、达梦、人大数仓等二三十家公司竞争,甚至还有开源数据库的存在,对于企业可供选择的数据库真的太多了。
- 所谓的互联网的黄金十年造就了一大批优秀的程序员,让数据库的发展不会成为无根之木、无垠之水。
遇到的困难
举一个例子简单说下,一个国产数据库的诞生有多么困难。
巨杉SequoiaDB经过6年的发展,测试用例有12000多个,自动化测试覆盖率超过99%,测试开发团队和产品开发团队人员1:1,有过之无不及,测试的开发水平要求高过大部分的研发工程师。每一个小迭代,基本要跑一周,机房的测试服务器从来没有停过。
做基础软件 test 是比 code 更重要的事情。比如你提了一个 Feature,我到底是合并还是不合,不能直接判断,需要看到你的 test。我们现在在 GitHub 上运营 TiDB,一个新的提交如果让整个项目的代码测试的覆盖率下降了,我是不允许你的代码合并到主干分支的,非常严格。构建一个数据库最难的并不是把它写出来,而是证明它是对的,尤其是分布式系统的测试要比单机的测试要更加困难。因为在分布式系统里面每一个节点都可能 crash,每一个网络的延迟可能是飘忽不定的,各种各样的异常情况都会发生。我们在做整个数据库的时候,第一步是完成 SQL Layer,第二步是把每个 IO,每个集群的节点交互行为全都抽象成为一个接口,使得我们可以回放整个包括 TCP/IP 包的接收顺序。一旦发现 bug,就把它重放到单元测试里面重现。不管是新的开发者或者新的模块加入,是无法相信“人”的,只相信机器。我只相信 strong test 才能不断的保证项目在可以控制的范围之内。
现状
用八个字总结就是充分竞争、百花齐放,但是相比于国外还是有不少的差距。从 Database of Databases 网站上的统计数据即可看出,纯原创、完全创新的数据库比较少,但是基础领域是没啥差距了。我后来想了下,可能造成这个的原因恰恰在于国内数据库竞争环境过于激烈,一切要以市场为导向,要是弄了什么创新的东西出来,不符合市场,成本和代价对于大部分数据库公司都是难以接受的。
国产数据库的发展方向:
- 在传统行业替代 Oracle 和 DB2;
- 成为新的中小企业数据库选择。
最难的在于传统行业替代 Oracle 和 DB2,首先要解决的是要证明比 Oracle 更加稳定可靠,其次是要兼容原有的程序,比如存储过程、函数、dblink、触发器、试图等等,最后才是国产化因素。
成长基础
国产数据库有三个主要来源:
- 从开源中来:很多云计算厂商的数据库来源于知名的开源数据库 MySQL 和 PostgreSQL,例如华为的高斯数据库就源于 PPostgreSQL。文末的参考链接:https://juejin.im/post/6844903940962811917 中就画了一张相对详细的图。
- 从公开发表的论文中来:这里的典型例子就是 TiDB,它来源于谷歌公司发表的 Spanner 论文。
- 收购商业源码+自研:这里指的是南大通用收购了 IBM 的 Informix 数据库源码。
对比
对比的前提是作者把这些数据库都严格测试并使用了一遍,而现在作者并没有,妄下评论不太好,所以这个小节就跳过了。不过可以下一个大致的评语就是基本上什么类型的国产数据库都有了,也都有了。具体的可以参考老鱼笔记的
http://blog.itpub.net/11310314/viewspace-2712810/和墨天轮的
https://www.modb.pro/db/22488。
展望
数据库未来的趋势相对比较明显了,就是云化+分布式。数据库在追求“云原生”,并且为了适应越来越多的数据,技术路线也选择可以近乎无限扩展的分布式架构。没有什么太多好说的了。
参考链接
因为读的资料比较多,选择了一些写的相对不错的文章放在了下面,本文中有些观点也来源于这些文章。感谢这些大佬的无私分享,能让我看到国产数据库领域的发展情况,非常感谢。
- https://www.modb.pro/db/22488
- http://blog.itpub.net/11310314/viewspace-2712810/
- https://www.zhihu.com/question/31750851
- https://www.chainnews.com/articles/606583749343.htm
http://www.cniteyes.com/archives/35123 - https://www.infoq.cn/article/Xx9Qp0ckvpckTj23y4Pg
- https://www.tmtpost.com/4481578.html?rss=ifeng
- http://www.gdinsa.org/lingshiwenjian/03gcsjkjyytz.pdf
- https://www.huxiu.com/article/377423.html
- http://pdf.dfcfw.com/pdf/H3_AP202008101397524561_1.pdf
- https://www.vzkoo.com/news/3996.html
- https://36kr.com/p/1724482633729
- https://developer.aliyun.com/article/6890