作者 | 宋慧
出品 | CSDN
作为基础软件三驾马车之一,数据库一直是 IT 系统的核心。中国 IT 应用发展迅速,创新的应用场景为操作系统、数据库这样的底层基础软件提供了新的发展机会。基础数据成为“十四五”的重点关注方向,中国数据库正在快速发展崛起。
今年最重磅的 1024 程序员节大会也推出了以数据库主题的系列论坛和议程,从十大数据库掌门人对话,到数据库技术实践,议题覆盖数据库发展的多个方面,我们可以看到数据库的新时代正在来临。CSDN 近期采访到了国内最早进入数据库领域的厂商之一,武汉达梦数据库股份有限公司副总经理徐钢。徐钢在 2002 年加入达梦核心研发团队,跟随达梦的掌舵人、也是数据库领域的前辈冯裕才,亲身经历了达梦数据库产品近 20 年里的各个大版本技术迭代过程。我们可以从他的视角,一窥国产数据库软件的发展路径,以及达梦数据库的研发积累和心得。
武汉达梦数据库股份有限公司副总经理徐钢
经历国产数据库至暗时刻
达梦数据库的技术团队起源于华中科技大学的数据库与多媒体研究所。最早期,中国的数据库工作者多是在高校和研究所,做标准研究、数据库原型系统等科研。2000 年前后达梦团队完成市场化改制,正式成立股份制公司,进入市场销售。不过,彼时的中国数据库市场,是 Oracle 等国外厂商独大的局面。
徐钢对 CSDN 回忆,曾经连续七八年,达梦去同一家客户企业做测试,不过产品一直没有被采用。这种冷板凳,不是谁都坐得住。但是对于数据库、存储这些 IT 系统里最核心的业务和技术场景,国产厂商都会有类似的经历。究其根本原因,技术不成熟、可靠性不够,我们自身实力无法与国外成熟产品比肩,是客观的事实。徐钢也将这一段时间,形容为国产数据库的“至暗时刻”。
所幸国产基础软件迎来了发展的新机遇。上面提到的连续多年测试的背后,从另一个角度来看,反而让达梦积累了大量、丰富的、场景化的技术优化经验。这里徐钢也提到了达梦最早对 Oracle 所做的适用性兼容性研发,为用户在产品切换时,提供充足的备选方案,解除后顾之忧。
2008年年初的雪灾导致全国14个省电网系统受到灾害影响。同年的5月12日汶川大地震,让国家电网决定建立备用调度系统。2008年9月,国家电网四川南充备用调度中心完成系统部署,并在10月17日正式投入运营。这是全国首个电网备用调度中心,也是国产数据库行业的一个里程碑事件。达梦数据库产品第一次进入国家重大行业的核心业务,也由此开始了真正的国产数据库崛起进程。
达梦团队的选择与收获
重新回到关于数据库的研发历程,徐钢对 CSDN 表示,达梦研发团队追求局部简单化,提高可复用性,以确保研发进度和代码质量。不过,他也坦言,这些年来,达梦的团队也在不断自我迭代,达梦核心代码 95%曾经重构,产品也一直处于演进与发展中。团队对数据库内核做了大量适应性设计/改造,例如数据字典、并发控制(mvcc)、执行框架、查询优化、日志系统等。
从单点到集群,达梦自研了基于共享存储设备的高可用集群解决方案——DMDSC(其核心有多机缓存融合技术等),为达梦数据库在金融、电信、交通、能源等行业核心生产信息系统大规模应用奠定了基础。另外,达梦也在不断外延数据库的产品与技术,例如达梦数据库管理系统 DM8、达梦启云数据库云服务系统 DMCDB、蜀天梦图数据库管理系统 GDM、新一代分布式数据库等。
达梦数据库产品研发历程
达梦产品体系
现在,达梦数据共享集群软件 DMDSC 规模已经突破到了 8 个节点,快速故障检测,最少的切换时间低于 10 秒,并发性能 TPC-C 突破了 300 万,可为低成本硬件平台提供支持,使其提供优质服务,达到或超出昂贵的大型 SMP 计算机所能提供的可用性和可伸缩性等级。
回到基础理论中去
对于是否还在写代码,入行数据库研发 20 年的徐钢表示,现在只能做技术方案的评审工作,“核心代码不让碰”(因有严格的管理流程),只能做一些外围小工具,例如分析类工具来提升自己的工作效率。
他还用一个故事分享了自己研发经验和对开发者的建议。在达梦的研发中心,团队经常会产生奇思妙想,但底层逻辑并不符合关系数学的理论。结果常常是团队经过研发实践验证,最终退回起点。徐钢表示,这种时刻,重新回到基础理论中去,会发现很多设计和实践背后的理论,都能在《数据库系统基础》里找到理论依据。徐钢认为,底层系统软件需要有演进理论支撑,这也是为什么关系型数据库生命力持久,历久弥新的原因。
国内数据库理论教材《数据库系统基础》
对于现在国产分布式云数据库、开源数据库的快速发展,徐钢表示,未来五年内,系统核心业务的数据库、数据作为用户的核心资产,其重要性不言而喻。虽然云数据库技术的发展,会不断更新数据库软件的使用模式,降低运维成本。但是由于技术本身的复杂性,加之数据库技术本身也在持续演进,目前很难实现真正的“无人工介入”的管理模式。而商业数据库领域,不会存在赢者通吃的局面,将继续百花齐放的发展态势。传统数据库厂商例如达梦会向多态化发展,分布式云数据库的厂商也许仍要做好兼容性的工作。
采访过程笔者最大的感受是,越底层的基础软件研发,越像大厦打地基一样,要投入大量的精力与耐心去打磨核心技术。虽然一样紧贴场景与需求研发,但底层数据库要攻克的技术点更多,远比应用层技术与产品体系发展要慢。也因此,所有亲历中国底层技术研发的工程师们,都值得尊敬。CSDN 也会持续报道底层软件和系统的发展,关注它们如何支撑上层应用与场景创新,与开发者共同跨入数据库与程序员的新时代!