openGauss 是华为基于 PostgreSQL 开源社区深度优化的企业级关系型数据库管理系统,其架构设计兼顾 分布式、高可用、高性能、易维护 等特性,支持集中式(单节点)和分布式(多节点)部署模式。

以下从 架构分层 和 核心组件 两个维度详细解析其设计。

一、openGauss 架构分层

openGauss 的架构通常可分为 集群管理层数据库服务层存储层,各层协同实现数据库的全生命周期管理与业务数据处理。

1、集群管理层(Cluster Management Layer)

负责集群的整体协调、节点管理、故障容错和资源调度,是分布式部署的核心大脑,核心组件如下:

(1)Cluster Manager(CM)

集群管理的核心组件,负责集群的生命周期管理(创建、扩展、收缩、销毁)、节点状态监控(心跳检测、资源使用率)、故障检测与自动恢复(如主备切换、节点替换)。

支持分布式锁管理,确保集群操作的一致性。

(2)Operation Manager(OM)

运维管理工具集(命令行/图形化界面),提供集群安装部署、参数配置、监控告警、备份恢复、审计日志等功能,降低运维复杂度。

2、数据库服务层(Database Service Layer)

直接处理用户请求,负责 SQL 解析、事务管理、查询优化、数据存储等核心数据库功能。

根据部署模式(集中式/分布式),该层的组件形态有所不同:

(1)集中式部署(单节点)

类似传统单机数据库,核心组件包括:

Coordinator Node(CN,协调节点):
单节点部署时,CN 承担所有前端请求的接入与处理,负责 SQL 解析、查询优化、事务管理(ACID 特性)、执行计划生成,并将计算任务分发给本地存储引擎。

存储引擎(Storage Engine):
管理数据的持久化存储,支持行存储(默认)、列存储(分析型场景)、内存存储(缓存加速)等模式。

负责数据文件的读写、索引管理、事务日志(WAL,预写日志)的持久化。

事务管理器(Transaction Manager):
管理事务的生命周期(开始、提交、回滚),通过 MVCC(多版本并发控制)实现读不阻塞写、写不阻塞读的高并发支持。

查询优化器(Optimizer):
包括逻辑优化(重写 SQL 逻辑)和物理优化(选择索引、连接方式、执行顺序),生成高效的执行计划。

openGauss 优化器支持基于成本的优化(CBO)和基于规则的优化(RBO),并针对复杂查询(如多表连接、子查询)做了深度优化。

(2)分布式部署(多节点)

为支持海量数据和高并发,openGauss 支持分布式架构,核心组件扩展为:

Coordinator Node(CN,协调节点):
负责接收客户端请求,解析 SQL 并生成全局执行计划,将任务路由到对应的 Data Node(DN)执行,最终合并结果返回客户端。

CN 不存储业务数据,仅管理元数据和全局事务状态。

Data Node(DN,数据节点):
存储实际业务数据的节点,每个 DN 对应一个独立的数据库实例(称为“子库”)。

负责本地数据的读写、本地事务处理,并将执行结果反馈给 CN。

Global Transaction Manager(GTM,全局事务管理器):
分布式事务的核心组件,负责全局事务 ID 分配、全局 MVCC 时间戳管理、跨节点事务的一致性保证(如两阶段提交 2PC)。

确保分布式场景下事务的原子性(Atomicity)和一致性(Consistency)。

3、存储层(Storage Layer)

负责数据的持久化存储,支持多种存储介质(本地磁盘、SSD、云存储)和存储模式(行存、列存、内存存储)。

数据文件(Data File): 存储表数据、索引数据,按页(Page)组织(默认 8KB),支持预写日志(WAL)保证事务持久性(Durability)。

日志文件(Log File): 记录所有事务的修改操作(WAL),用于故障恢复(如节点宕机后通过 WAL 重放恢复数据)。

临时文件(Temp File): 存储临时计算结果(如排序、哈希连接中间数据),通常存放在内存或高速磁盘中。

二、openGauss 核心组件详解

除上述分层中的组件外,openGauss 还包含多个关键子模块,支撑其高性能、高可用和易维护特性。

1、高可用组件

主备复制(Primary-Standby Replication):
支持同步复制(强一致性)和异步复制(高吞吐),通过 WAL 日志实时同步主节点(Primary)的变更到备节点(Standby)。

当主节点故障时,CM 自动触发备节点提升为新主节点(Failover),保障业务连续性。

多活架构(Multi-Active):
部分场景支持多节点同时写入(需 GTM 协调全局事务),提升集群写入吞吐量,适用于跨地域多活数据中心。

2、性能优化组件

执行引擎(Execution Engine):
支持向量化执行(Vectorized Execution)和并行执行(Parallel Query),通过批量处理数据减少函数调用开销,提升复杂查询性能。

智能索引(Intelligent Index):
自动识别高频查询模式,推荐或创建最优索引(如 B-tree、Hash、GiST 索引);支持索引自动维护(如重建、合并),降低运维成本。

3、安全与合规组件

权限管理(Authorization):
支持角色(Role)、用户(User)、组(Group)的多级权限控制,细粒度管理表、视图、列的访问权限(如 SELECT、INSERT、UPDATE)。

数据加密(Encryption):
支持传输层加密(TLS)、存储加密(透明数据加密 TDE)、列级加密(敏感数据脱敏),满足金融、政务等场景的合规要求。

4、扩展能力组件

插件机制(Extension):
支持自定义函数(UDF)、存储过程(Procedure)、触发器(Trigger),以及第三方插件(如地理信息插件 PostGIS),扩展数据库功能。

云原生支持:
兼容 Kubernetes 容器化部署,支持弹性扩缩容(HPA)、服务发现(Service Mesh),适配云原生基础设施(如华为云 GaussDB for openGauss)。

三、架构特点总结

openGauss 的架构设计围绕 企业级需求 展开,核心特点包括:

分布式扩展性: 支持从单机到百节点规模的弹性扩展,适应海量数据场景。

高可用性: 通过主备复制、自动故障切换(CM + GTM)保障业务连续性(RPO≈0,RTO<30s)。

高性能: 向量化执行、并行查询、智能索引等技术,支撑 OLTP(事务处理)和 OLAP(分析处理)混合负载。

易维护性: OM 工具集简化安装、监控、备份等操作,降低 DBA 运维门槛。

自主可控: 基于 openEuler 操作系统,兼容国产芯片(鲲鹏、海光)和数据库标准(SQL:2016),满足信创要求。

通过以上架构与组件的协同,openGauss 成为企业级数据库的优选方案,广泛应用于金融、政府、能源等关键领域。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐