212024.06

深度 | 国产数据库如何夯实生态建设?

2024.06.21

数据库已经有了60年的发展历史。2020年之前数据库系统都由被美国垄断,例如商业数据库Oracle、DB2、SQLserver,和开源数据库PostgreSQL和MySQL。近年来国产数据库也开始加大了投入,开始逐渐进入到国家核心行业及系统,例如金融和证券。虽然国内数据库厂商的技术相比Oracle有差距,但是目前来看最重要的卡脖子点不是技术本身,而是数据库生态的建设。


数据库生态指由基于数据库管理系统(DBMS)软件产品和服务的组织与个人,通过他们之间的交流、合作、供求满足等相互作用而形成的环境。一个成熟的数据库生态不仅包括功能完善、性能优秀、运行稳定的系统,还包括完整的文档与知识库、丰富多样的开发和运行维护工具链、典型的应用案例和评测报告,以一批熟悉系统、经验丰富的开发者和用户。典型的数据库生态包括以Oracle、IBMDB2、MicrosoftSQLServer为代表的商业数据库生态,以MySQL和PostgreSQL为代表的开源数据库生态,以及以TPC为代表的事务处理性能基准评测生态等。数据库生态是DBMS软件产品保持稳定持续发展,取得商业成功的关键,也是当前国产数据库系统最欠缺的方面。


以下三个方面在我国数据库生态建设中具有急迫性:


1.数据库评测基准建设


评测基准是评价数据库系统最重要的标准,是应用进行数据库系统选型的重要依据,是促进数据库系统研发的主要驱动力之一。因此,可以说评测基准是支撑数据库产业健康发展40多年的最重要支柱之一。例如,TPC系列评测基准的出现和发展使诸多关系数据库管理系统厂商能在一个公平、公开的环境中良性竞争。


以TPC系列为代表的现有评测基准在数据库系统普遍适配云计算平台,采用分布式架构,并提供越来越多的新数据类型支持和新数据管理和数据处理服务的场景下,并不能满足当前以及未来系统比较、系统选型、指导研发、规范产业的需要。同时,作为企业和行业标准的基础和前提,形成能够反映我国应用需求和系统厂商优势的评测基准也是规范我国数据库产业,培育国产数据库系统的先决条件。


分布式数据库系统的正确性测试新型数据管理系统普遍采用分布式架构实现可扩展性、高性能以及高可用。分布式的架构也同时带来了支持分布式事务的复杂并发控制协议以及支持高可用和快速恢复的分布式共识协议。协议的正确性以及工程实现的正确性都会影响分布式数据库系统的正确运行。一套面向分布式数据库的完整的事务正确性测试方法,以及公开、易用的测试工具是促进分布式数据库系统研发,提升新型数据库系统在关键核心任务应用(mission-criticalapplications)形成替代的必需品。现有的评测工具无法实现这一目的。


面向应用的评测基准构建方法随着数据管理系统在信息系统中所起作用的提升,其应用范围和应用的多样性和诞生之初相比都有了质的飞跃。2014年图灵奖获得者MichaelStonebraker提出了经典的结论“Onesizedoesnotfitall!”,而MichaelJ.Carey则认为数据库系统的发展将呈现出“Onesizefitsabunch”的趋势,即具有类似特性或需求的每一类应用都需要不同的数据管理系统。近年来国内外雨后春笋般涌现的新的数据库系统验证了这一趋势的到来。“Onesizefitsabunch”不仅应体现在新系统的出现,也应体现在对应的评测基准中。TPC系列评测基准的本质是用“一体通用(Onesizefitsall)”式的模型去评测所有系统。但是,类似于云环境、嵌入式环境、“现象级”事务处理、多模态数据管理、数据管理与机器学习/AI相结合的应用等场景,普遍缺乏公开和权威的评测基准。制定一成不变同时涵盖所有应用需求的评测基准一方面代价高昂,同时也难以适应快速变化和发展的应用场景。构建典型应用的评测基准,同时研发面向应用的评测基准构建方法和理论,实现便于定制的评测基准构建工具,是形成适应于新型数据管理系统和应用发展的评测基准,进而为我国数据库产业发展保驾护航的前提。


面向新型数据库系统的评测基准:新型数据库系统(云数据库、分布式数据库、AI原生数据库等)的形态、提供服务的方式、依赖的硬件环境都发生了巨大的变化。传统的以响应延迟、系统吞吐率为代表的性能评价指标不再能准确和全面ਃ映新系统的特性。例如,对于能够以近线性扩展的系统,系统的最高吞吐率或者单机平均吞吐率都不足以反映系统的扩展能力。应用与数据库厂商都迫切需要能够评测云服务能力、评测系统可扩展性(scalability)/弹性(elasticity)/可用性(availability)/能耗以及新硬件利用率的新的评测基准。新的评测指标和评测方法的制定需要应用单位确认其对于系统比较和选型的实用意义,也需要数据库厂商深度参与以体现诸多系统的特点和优势。这一工作对于指导系统研发方向,同时争夺数据库系统发展方向的话语权至关重要。


2.数据库开源生态建设


开源在数据库系统的发展过程中发挥了重要的作用:最早的关系数据库系统之一Ingres诞生之初即以BSD协议开源;具有广泛用户的MySQL和PostgreSQL都是开源系统;安装量最大的数据库系统SQLite也是开源系统。不仅如此,即使对于像Oracle、IBMDB2这样的商用闭源数据库系统,它们也依赖包含诸多开发和运维工具的庞大开源生态。


数据库开源生态建设在以下5方面具有重要意义:


技术公开与安全可靠保障:关键核心任务应用对系统的安全可靠具有极高的要求。系统开源有助于系统的安全审计、公开评测、Bug的及时发现与修补。


用户反馈收集与经验积累优秀的系统是“用”出来的,需要基于大量应用的使用进行优化和提升。开源有利于应用推广,有利于问题反馈和收集,也为用户间的经验积累和交流提供了媒介。换言之,开源社区将以众包的形式构建围绕数据库系统的知识库。对于新兴的数据库系统产品和厂商,这将极大节省由厂商自身构建知识库的成本。


开发和运维工具链构建数据库系统只是应用的软件栈中一个环节。应用设计与开发、中间件适配、应用运行维护都需要专用的工具。由于数据管理系统的复杂性,适配一个系统的工具通常不适用于其他系统;由于应用环境的复杂性,在不同的应用中,一个数据管理系统可能需要适配不同的操作系统、中间件、开发环境或者其他工具。一个数据库系统厂商,特别是对于新系统,在短时间内构建这样的工具链成本巨大。开源是积聚社区力量,减少重复工作,构建工具链的有效方式。


用户与产业链培育:数据库系统,尤其是新系统,需要吸引用户,同时吸引应用开发者和服务提供商。开源是消除系统神秘感,宣传系统,培育潜在用户,构建开发、集成、运行维护产业链的有效手段。


研发人员教育与技术探索数据库系统核心研发需要一大批具有系统性训练的研发人员。研发人员不仅需要有丰富的理论知识积累,也需要有大量工程实践锻炼。开源系统是阅读优秀代码、实现理论验证和工程实践训练的最佳载体,也是探索新方法新技术,进而形成研究成果验证和转化的最佳载体。


以上5个方面的需要包括数据库厂商、应用单位、研发机构以及研究和工程技术人员个体,从核心技术研发,到问答和文档建设,乃至社区文化建设等多个层面长期投入,形成围绕数据库系统产品的开源社区。


3.产学研用深入合作


数据库系统涉及的技术链条长,内部各模块耦合度高,与软件栈其他部分以及硬件平台关联程度高。无论是数据库系统核心研发,还是评测基准构建,或者开源生态建设,都需要产学研用各方密切合作。


近年来,华为GaussDB、PingCAPTiDB、奥星贝斯Oceanbase、阿里PolarDB等国内数据库系统已经通过开源开始构建多方参与的社区生态。同时,数据库厂商也广泛地通过项目形式与高校和研究所合作,代表性的合作计划包括CCF-华为数据库创新研究计划、腾讯犀牛鸟项目、阿里Air项目等。这些项目使得厂商和研究机构间开始形成了较为稳定和密切的合作关系。


数据库系统的发展越来越呈现出“应用驱动创新”的特点。系统的发展受到应用需求的刺激和驱动。当前数据库系统研发和生态建设中,数据库系统厂商与高校和研究所等研究机构的合作较多,同时系统厂商和应用方也有密切的合作。但是,产学研用共同参与的合作仍不多。与美国、欧洲等先进的高校和研究所相比,我国研究机构面向应用研发系统原型,进而通过开源或者企业合作等形式孵化或者转化,形成具有重大影响力的数据管理系统产品的研发道路仍有待探索。这既需要在多方合作模式上的创新,也需要我国科研机构在成果和科研绩效评价机制上的创新。


“学”:学校要承担起人才培养和引领性研究的使命。(1)在本科生培养方面,不仅要教给同学们“什么是数据库”、“怎么用数据库”,更要教给“如何设计数据库”、“为什么这么设计数据库”,让本科生知其然৾知其所以然。此外,高校也应推广国产数据库走进课堂,让学生们更多了解和体验国产数据库,如何利用国产数据库系统,形成循序渐进的系列实验,在理论教学的同时开展工程实践教育和研究性教学仍有待深入研究。虽然国产开源数据库进入计算机等专业的教学体系仍在探索阶段,但是目前正在通过教育部产学合作协同育人项目等形式积极推进。(2)在研究生培养方面,老师也要深入了解企业界需求,凝练有价值问题,引领学生们做那些“真、难、重”的重要挑战性问题,即数据库系统中重要、真实、挑战性、共性的基础性问题。学校还要承担起引领性科研的使命,突破“0到1”的顶天问题,引领产业界未来发展。


“研”科研机构主要负责攻克当前卡脖子的基础性、共性的关键问题,例如分布式事务和Paxos的融合、全球高可用等技术,解决当前遇到的挑战性问题。学校和科研机构也一定要深入合作,推动引领性技术的研究和落地。


“产”:数据库研发企业要承担研制国产数据库的使命,一方面解决数据库卡脖子问题,另外一方面要推动技术的革新与进步,为数据库用户带来新的价值。当前交易型数据库(OLTP)还存在着稳定性、生态、兼容性等卡脖子问题,企业界要坚持不懈解决这些核心问题。此外还有很多新型数据库,例如图、时序、流、多模等,也需要企业界百花齐放、百家争鸣。


“用”:数据库用户不应该只是简单的要求数据库提供商“apple2apple”的替换,而是通过数据库升级迭代来引领产品和应用的发展,以未来的眼光来看待数据库的更新换代。数据库用户也应该思考为“产、学、研”提供有价值、有前景的应用“真”需求,推动数据库领域的跨越式发展。


小结


数据库系统生态建设是促进国产数据库系统和产业健康发展的关键,也是促进国产数据库系统助力行业领域数字化转型,在关键核心任务中实现对国外商用数据库系统形成替代的关键。


数据库系统生态建设需要研发针对新应用场景的评测方法和工具,需要构建多方积极参与、密切互动、持续成长的社区,需要培育包括用户、产业链厂商、研发梯队的社区队伍。对于发展历史较短的国产数据库系统厂商,开源是构建这样的生态的重要方式。


围绕数据库系统开展产学研用多方紧密联系的合作仍刚起步。在现有的基于开源和基于项目的合作基础上,引入应用方,同时将合作向基础人才梯队培养延伸,探索新的国产数据库系统研发和生态建设道路,还有待大量的工作。


数字基础设施的建设离不开产业链上下游生态企业的携手共进。万里数据库作为国产数据库领先品牌,自成立以来,积极参与信创产业生态建设,在国产生态兼容适配建设、生态融合等方面持续发力,全面推进从芯片到操作系统、服务器、中间件及各类应用软件的全方位兼容适配工作,共筑国产生态圈。


目前,万里数据库已与上下游重点厂商开展了深度的技术合作认证,累计完成超500项产品适配认证。