原标题:是什么卡了我们的脖子——数据库管理系统:中国还在寻找“正确打开方式”
亟待攻克的核心技术
本报记者高博
有一天你去银行取钱,惊喜地发现:由于系统故障,你的账户显示着马云的数据……
这种事不可能发生,因为数据库管理系统非常可靠。网上买火车票,或者将照片上传云端,你都离不开它。
而商用数据库管理系统的丰厚利润,一直被甲骨文为首的几家美国公司瓜分,中国产品望洋兴叹。
速度和可靠,兼顾是难题
查询银行账户时,我们不知道数字来自哪台计算机,哪块硬盘。有数据库管理系统(DBMS)替我们干活。
DBMS就像图书管理员:找到书架,存书,取书……说起来容易,但当图书馆特别大,而且书会拆开来放入相隔遥远的架子时,管理起来就很麻烦了。
在数据库开发与实施方面有丰富经验的IBM分析领域架构师罗曦光举了一个例子——用户修改数据时,相关存储区域会被锁住,其他用户只能排队等,如果DBMS存储位置不合理,就会耽误许多时间。数据操作的理想状况,如同几十只手弹奏一架钢琴,各弹各的,互不影响。
“数据库管理系统,尤其是关系型数据库管理系统(RDBMS)的方法论,教科书上写得很明白;其功能和常见的图书管理系统没什么差别。但当数据量非常大,到了TB和PB级别,DBMS性能不下降就是一大挑战。”罗曦光说。
比如一个普通的大型网站,每秒钟要处理十万个查询请求,数据库得同时执行几十个查询任务,而且响应时间极短。
“网络用户发送请求,期望一眨眼就得到结果。如果DBMS做得不好,响应时间长到10秒或20秒,用户会丧失耐心,数据库还可能经常挂掉。”罗曦光说,要永远不出故障,达到高可用性,需要很多专门技术。
目前全世界最流行的两种DBMS是Oracle和MySQL,都是甲骨文公司旗下的产品。竞争者还有IBM公司的DB2、Informix,微软公司的SQLserver以及开源的MariaDB等等。甲骨文、IBM、微软和Teradata几家美国公司,占了大部分市场份额。
国产替代难,输在稳定性
DBMS国货也有市场份额,但只是个零头。银行、电信、电力等要求极端稳妥的企业,不会考虑国货。20年前就有人呼吁国货替代,但一线技术人员并不情愿。
“先发优势、完善的售后技术支持和高额的迁移成本,是企业难以迁移到新系统的原因。”罗曦光说,国内一家电商平台为了从Oracle迁徙到别的系统,最多曾用上百人的团队花了十几个月,成本不菲。
罗曦光认为,如今的开源DBMS做得很好而且免费,但银行和传统龙头企业出于谨慎,对于将核心系统迁移到开源系统仍会持谨慎态度。
稳定压倒一切。DBMS行业观察家晓军在《国产数据库发展现状分析》一文中指出,国内DBMS企业大多源自1990年代的高校,期望实现国产替代。但多年来,“产品的稳定性一直上不去,也不敢做有挑战性的性能测试。所以,稳定性、性能都无法让市场信服。结果就是:稍微重要一点的系统根本没人敢用。”
另外,晓军说,当年国货往往模仿Oracle,追求大而全,而技术创新不足、没有特点。相比之下,1990年代的美国小厂商极富创新力,开辟了一些全新的技术方向,在与甲骨文等巨头的竞争中成功活了下来。
“这个年代,开源DBMS的源代码可以随便下载,国内应该不会有新的入场者再去做传统的DBMS了。”罗曦光说。
浩瀚代码的背后,是浩瀚人才
“Oracle的数据库软件……代码量堪称浩瀚。”晓军说,“Oracle最有特色的地方就是功能非常繁多,语句极端丰富,即便大部分都不常用。”
晓军说,小公司在这一点上试图比肩甲骨文,犹如“乞丐与龙王爷比富”。
晓军举例说:“Informix的主要模块的源代码就有2000多万行,Informix当年在美国的核心研发队伍就有超过200人,加上测试和周边团队,不下500人。”
而国内付费使用IBM公司的Informix源代码的几家企业,相关队伍都不超过40人,晓军说,要快速追赶世界先进水平,阅读代码的团队规模应该超过写代码的团队。因此国内“面对十年前的巨量代码一筹莫展,要弄通又得花很多年。”
而罗曦光认为,尽管国内公司没有可以比肩甲骨文的,但“在参与开源软件的意义上,中国不是没有入场的资格。这是一个技术充分交流与共享的时代。”
罗曦光说,目前开源的RDBMS(如MariaDB)就有国内软件开发人员大力支持,与大数据平台紧密关联的NoSQL数据库(如Hbase)的开发社区里也活跃着中国开发人员的身影。以阿里云为代表的国内云服务的底层,也包含借鉴开源系统打造的数据库管理系统。
“今时今日,一个全新的公司来做项目,可能不会选择国外厂商付费的DBMS。比如互联网的初创企业,大概率会选择国内厂商的基于云服务的包含DBMS的整体方案。”罗曦光说。