1. GoldenDB 介绍
GoldenDB 是由中兴公司和中信银行联合研发的一款分布式数据库产品,采用 PGXC 架构,在传统关系型数据库的基础上,增加了切片集群、计算节点,使数据库在分布式场景下实现强一致性。

如上图,客户端通过负载均衡,访问到了数据库集群。请求需要经过计算节点的语法分析、SQL 优化,生成执行计划,最后才会下发到对应的分片节点,也就是上图中的数据节点。
计算节点的主要功能如下:
- 前端长链接管理、端口管理、SQL 协议处理、流量控制;
- SQL 解析:对 SQL 语句进行语法检查,解析生成语法树;
- 对 SQL 查询进行优化;
- SQL 执行;
- SQL 路由:数据模块选择,负载均衡及路由管理;
- SQL 协议封装、后端长链接管理、负载均衡。
数据节点主要用于存储数据和执行事务。每个数据节点可以是一个独立的数据库系统,业务数据会根据计算节点计算结果落到不同的数据节点。如下图:

跟单体数据库类似,数据节点包括连接器、分析器、优化器、执行器和数据文件。为了保证数据高可用,每个数据节点都会有至少一个备份节点。
分布式数据库要处理分布式事务,必须有事务协调节点来支持,保证全局事务的生命周期正常流转,达到支持 ACID 特性的目的。全局事务管理器就是 GoldenDB 的协调节点,维护当前所有正在执行的分布式事务列表,管理分布式事务的全生命周期,可以创建、提交、回滚全局事务,也可以提供全局事务状态查询,供数据节点进行状态判断。
主要包括以下功能:
- 公共消息处理:主要跟计算节点维持心跳,向管理节点上报事务状态信息、处理元数据等。
- 全局事务消息处理:处理来自计算节点和管理节点的全局事务、SEQUENCE 等相关请求,交给相应模块处理后返回响应。
- GTID 处理:负责全局事务 ID 申请、查询、释放。
- SEQUENCE 处理:负责 SEQUENCE 的创建、修改。
- CTID 处理:负责事务标识的申请、查询、释放。
管理节点则提供了 GoldenDB 数据库的运维能力,统一监控分析平台 Insight,元数据管理模块 MDS,计算节点管理模块 PM,统一运维平台 OMM 和集群管理模块 CM,可以管理集群高可用、系统的备份恢复、元数据等。

主要功能包括:
- 统一运维管理平台 OMM:GoldenDB 统一操作维护入口,用户可以在 OMM 上执行各种运维操作,比如用户和权限管理、元数据管理、计算节点和数据节点管理、备份管理等;
- 统一监控分析平台 Insight:对 GoldenDB 进行监控告警分析;
- 计算节点管理模块 ProxyManager:管理计算节点集群。一方面管理计算节点的创建、启用、禁用和删除,另一方面管理计算节点和应用节点的对应关系、计算节点异常后的数据恢复;
- 元数据管理模块 MetaDataServer:存放全部的库、表、视图、触发器、存储过程、函数等元数据信息,也会保存整个集群的拓扑结构,当计算节点和数据节点存放的元数据和 MetaDataServer 不一致时,会从 MetaDataServer 同步元数据到本地;
- 集群管理模块 ClusterManager:主要管理数据节点集群,一方面管理数据节点集群的创建、变更和删除,另一方面管理数据节点异常恢复、节点备份恢复、数据重分布等调度任务。
2.特性
强一致性:这在金融行业下是非常必须的,尤其是涉及账务核算场景。GoldenDB 采用全局事务管理器来协调分布式事务的强一致性,实现分布式场景下的 ACID 特性,同时性能优于单体数据库。

