GoldenDB背景介绍
金篆信科,这家仅有两年历史的公司,背后却有着全球领先的综合性通信制造商和解决方案提供商——中兴通讯。年月,为了进一步发展GoldenDB,中兴通讯成立了控股子公司——金篆信科,致力于打造国产数据库第一品牌,并成为我国高科技产业发展的标志。金篆信科位于北京亦庄经开区信创园,注册资本高达5亿,是当前国内最大的数据库研发企业之一。
虽然中兴通讯的主要业务是通信设备,但随着国家信创改造的深入,公司在操作系统和数据库等领域也投入了大量精力。从年开始,中兴通讯推出了EBASE文件数据库,年推出EBASE-MEM内存数据库,到年的DHSS分布式数据库,已经形成了一个雏形。年,中兴通讯开始研发金融级数据库GoldenDB,年发布了第一个商业版本GoldenDB ,并在中信银行的北京营业厅冠字号业务上开始使用。到了年,GoldenDB已经在多个银行的不同业务等级生产系统上投入使用。年,中兴通讯与中信银行在总行的账务系统上进行了核心下移的测试验证,性能超过了40000TPS。客户决定在年将核心业务的数据库从基于小机的DB2迁移到基于X86平台的GoldenDB。
得益于中兴通讯强大的研发实力和多年的积累,GoldenDB已经成为业界唯一一家实现全面覆盖国有大行、股份制行、运营商等核心业务交易系统数据库替代实践的国产品牌。它可以支持核心实时交易系统,处理双和计费等核心场景下的海量数据和高并发量数据处理,满足数据处理的吞吐量和响应性。今年发布的面向混合交易负载场景的GoldenDB v7.0年度新版本,在HTAP、云原生、工具以及语法兼容等方面实现了创新和突破,引领了国产分布式数据库的发展。
GoldenDB数据库架构
与其他分布式数据库架构类似,GoldenDB分布式数据库由五个部分组成:数据库驱动、计算节点集群、数据节点集群、管理节点和全局事务管理节点。
数据库驱动
数据库驱动以集成方式与具体应用相融合,并与应用一同部署。这一设计使得计算节点的接入、负载均衡和故障转移变得透明化。根据预设的规则,数据库驱动将应用程序请求发送到合适的计算节点,同时确保这些请求在各个节点之间得到均衡分配。当部分计算节点发生故障时,驱动层可以执行透明的故障转移,将新的应用程序请求转发至正常的计算节点。一旦故障节点恢复正常,驱动层还可以重新将应用程序请求路由回该节点。
计算节点集群
计算节点集群是分布式数据库的核心部分,由多个无状态的计算节点(DBProxy)组成。这些计算节点采用主备模式进行部署,并通过数据多副本的方式确保数据不会丢失。当用户发起操作时,计算节点会从驱动层或管理节点接收请求,并对其进行逻辑优化和物理优化,从而生成一个满足分布式事务一致性的查询计划。在执行这个查询计划的过程中,计算节点会不断地访问数据节点,最终完成用户的操作请求。
数据节点集群
数据节点集群是应用程序数据的最终存储组件,由一个或多个数据库集群组成。用户操作事务必须在一个数据库集群内部完成,不能跨越多个集群。为了实现数据的安全性和高效性,集群表中的数据按照某种策略进行横向分片,并存放在对应的安全组中。目前支持的分片策略包括复制、哈希、范围和列表等四种方式。
管理节点
管理节点在分布式数据库中负责集群的管理流程,不涉及业务访问,因此没有负载压力。通常采用两节点主备的方式进行部署。其主要功能包括:第一,提供Insight组件,实现图形化管理,用户可以在控制台上完成自动安装、更新、集群组建、主备切换、备份恢复等运维操作;第二,管理节点包含元数据管理器MDS和源数据管理器,其中元数据管理器存储了GoldenDB拓扑的组网信息,包括各个集群的设备信息、主备信息、IP信息等,源数据管理器则存储了业务数据库的源数据,包括DDL、库表结构、分布状态、分布规则等;第三,管理节点还提供了集群管理和计算节点管理组件,集群管理CM用于管理数据节点中的DN+dbagent,通过dbagent判断DN的可用性,而计算节点管理PM则用于管理计算节点,检查其是否正常运行。
全局事务管理节点
全局事务管理器是分布式数据库中最关键的功能之一,它负责维护全局事务的全生命周期,并提供申请、释放和查询全局事务的能力。
尽管GoldenDB具有全局事务管理功能,但业界通常将其视为中间件加分库分表结构。对于这一看法,GoldenDB的产品经理感到很困惑,为什么外界会将他们归为分库分表架构呢?
GoldenDB外围工具
GoldenDB的官方资料中还介绍了两个工具。其中一个工具是SLOTH,它提供了与异构数据库之间的迁移和同步功能,适用于生产主备数据迁移场景;另一个工具是LDS(Load Server),它具备数据导入导出功能,常用于金融行业常见的卸载数据场景。
写在最后
总的来说,不论是分库分表架构还是原生的分布式架构,GoldenDB在多个行业的成就都是显而易见的。然而,在生态建设方面,GoldenDB还需要更大的投入。希望未来能够看到GoldenDB在这方面持续跟进和完善。