达梦分布计算集群技术白皮书

一、概述

21 世纪的今天,互联网金融、移动电商、智慧城市、工业互联网等新业态对数据处理技术提出了新挑战。更多用户、更大规模、无间断服务成为数据库管理系统必须面对的新需求。

立足成熟的商业化数据库技术积淀,达梦公司采用先进的分布式计算理念,推出突破性的分布式数据库产品,实现极致的扩展性和大地理区域跨度下的容灾能力,同时提供数据库的数据一致性、事务、复杂 SQL 等核心能力,力促分布式数据库技术的不断演进。

二、系统架构

达梦分布计算集群英文全称 DM Distributed Processing Cluster,简称 DMDPC。DMDPC 是基于达梦数据库管理系统研发的一款同时支持在线分析处理和在线事务处理的新型分布式数据库系统。它既具备传统单机数据库的绝大部分功能,又提供了分布式计算集群才拥有的高可用、高扩展、高性能、高吞吐量和对用户透明等高级特性。

DMDPC 关注和解决的是大数据、计算与存储分离、高可用、支持全部的 SQL 标准、拥有完整的事务处理能力和集群规模能够动态伸缩的业务场景。在这些场景中,用户经常会遇到以下问题:

  1. 大量的复杂查询操作要求优化器能够生成优良的执行计划,并且执行引擎能够充分利用多机器、多核的硬件资源;
  2. 某些行业对数据一致性和多副本备份容灾有较高要求,同时希望维护成本足够低和故障恢复时间足够短;
  3. 用户的业务规模有峰值,要求所需的机器资源能够灵活地添加和删除。

为了解决上述问题,DM 提供了全新的、一站式的分布式数据库解决方案 DMDPC。

本架构通过计划生成节点 SP 对外提供分布式数据库服务,SP 上也会分配执行带有汇总性质以及不包含数据扫描操作的子任务;通过数据存储节点 BP 访问数据并进行简单的过滤、投影以及分组操作;通过元数据服务器节点 MP 获取 SP、BP 节点的数据字典信息。本架构既支持计算与存储分离,又支持动态增删节点。

DMDPC 架构如下图 2.1 所示。

image.png

图2.1 DMDPC架构

2.1 计划生成节点

计划生成节点,英文全称为 SQL Processor,简称为 SP。

SP 为 DMDPC 集群中对外提供数据库服务的节点,负责接收用户请求并生成计划、划分子计划、按照一定规则计算并行度并调度各个子计划,并最终将执行结果返回给用户。该节点的实现在已有的成熟达梦单机数据库处理框架的基础上新增了分布式计算处理。SP 具备以下特征:

  • 完整的 SQL 标准支持:包括复杂关联查询、存储过程、视图、序列等某些分布式数据库难以支持的特性。
  • SP 节点自身无状态:每个 SP 节点上不存储任何数据字典信息和用户数据,一个集群中可以存在多个 SP 节点。连接上任何一个 SP 节点都可以获得完整的数据库服务。
  • SP 具备子计划的执行能力:因为 SP 和 BP 是由同一套代码编译出来的,只是不同的启动参数决定了担任不同的角色,所以 SP 和 BP 一样具有操作符的执行能力。例如,从资源均衡利用和计算存储分离角度来考虑,DMDPC 将部分子计划调度安排在 SP 上执行。
  • 支持动态增删节点。

2.2 数据存储节点

数据存储节点,英文全称为 Backend Processor,简称为 BP。

BP 为 DMDPC 集群中数据实际存储的节点,负责存储数据和接收 SP 的子任务调度指令,执行子任务,并返回结果给 SP。

一个 DMDPC 集群可以有多个 BP,且可以随着用户业务量变化动态增删 BP 节点。

2.3 元数据服务器节点

元数据服务器节点,英文全称为 Metadata Processor,简称为 MP。

MP 为 DMDPC 集群中提供元数据服务(即字典信息服务)的节点。所有 DDL 请求都会经过 SP 转发给 MP 执行,元数据信息全部存储在 MP,一个集群中只有一个 MP 节点。

2.4 多副本系统

在现实环境中,DMDPC 运行过程中有可能会碰到各种故障情况,比如系统掉电或者出现硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况,因此需要对 BP 或 MP 采用多副本系统架构进行存储,以保障 DMDPC 的数据安全和高可用性,避免出现数据损坏和丢失,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。

DM 多副本系统由 N 个节点实例组成,N 必须是大于 1 的奇数。目前最多支持部署 9 个节点实例。同一个 RAFT 中的所有节点共同构成一个多副本系统。实例之间通过 XMAL 模块进行 TCP 消息通讯。各个节点实例之间基于 RAFT 协议选举出一个领导者作为主库,其他实例作为备库(也就是副本)角色运行。主库会自动向备库同步日志,备库接收并重新应用日志,从而达到主备库之间数据保持一致的目的。

2.4.1 BP 多副本架构

如下图 2.2 展示了三个 BP 域的集群架构,每个 BP 域中都包含多个 BP。同一个 RAFT 组的多个 BP 保存了同样数据的多个副本,例如 BP1、BP1’和 BP1”三者内容完全相同。同一个 RAFT 中的三个 BP 节点共同构成一个 BP 多副本系统。同一个 RAFT 组中的多个副本中只有一个作为主节点对外提供服务,其余节点均作为备份节点。当主节点发生故障后,系统会从备份节点中(BP1’,BP1”)重新选举出新的主节点对外提供服务。

在 BP 多副本系统中,可通过 V$ARCH_STATUS 和 V$RLOG_RAFT_INFO 来查看整个系统中主备环境的运行状况。

图片 1.png

图2.2 BP多副本示意图

2.4.2 MP 多副本架构

如下图 2.3 展示了三个 MP 域的集群架构,每个 MP 域中最多只包含 1 个 MP。同一个 RAFT 组的多个 MP 保存了同样数据的多个副本,例如 MP1、MP1’和 MP1”三者内容完全相同。同一个 RAFT 中的三个 MP 节点共同构成一个 MP 多副本系统。同一个 RAFT 组中的多个副本中只有一个作为主节点对外提供服务,其余节点均作为备份节点。当主节点发生故障后,系统会从备份节点中(MP1’, MP1”)重新选举出新的主节点对外提供服务。

在 MP 多副本系统中,可通过 V$ARCH_STATUS 和 V$RLOG_RAFT_INFO 来查看整个系统中主备环境的运行状况。

图片 2.png

图2.3 MP多副本示意图

三、系统特性

3.1 无状态计算节点,极致横向扩展

计算节点(SP)承担访问请求接入、SQL 解析与优化、部分无状态 SQL 操作符执行工作,彻底无状态化,可随数据库并发压力负载按需增加或减少节点,对已有负载无影响,扩展规模可达 128 点,实现极致的横向扩展能力。

3.2 数据分布式存储,灵活扩缩容

新一代分布式数据库设计了轻量化的后端数据存储单元(BP),通过采用范围、哈希等多种分布方式,可灵活指定数据分布方式,BP 存储规模最大支持 PB 级;特别的,新一代分布式数据库优化和执行引擎的灵活设计,可允许数据部分或全部分散在指定 BP,由此带来了高度自由的存储扩缩容方案:无论是新增或是缩减存储节点,数据重分布过程简化为数据拷贝过程。

基于这一特别设计,用户还可通过对热点存储节点的 BP 进行迁移,实现整个分布式数据库的自动负载均衡。

3.3 数据多副本,支持异地多活灾备

支持数据分片的多副本容灾,任一数据副本发生故障,不造成用户数据的损失。基于这一设计,新一代分布式数据库可支持两地三中心或三地五中心等部署模式,实现数据中心故障、地区性灾害的容灾能力。

在新一代分布式数据库的体系架构设计下,SP 故障负载切换为无状态切换,真正实现快速无感知故障切换;在数据多副本设计下,BP 故障无需执行传统的阻塞式 Recovery 过程,也实现了秒级故障容灾能力。

3.4 基于 RAFT 协议,保证数据强一致

新一代分布式数据库引入了 Raft 一致性协议,在工业级的分布式一致性协议支撑下,多副本数据在数据一致性和系统可用性之间取得了完美平衡,保证了正常业务的 I/O 低延迟题验和数据强一致性。

3.5 支持分布式事务,满足 ACID 规范

达梦在关系型数据库领域的深厚积累,为分布式数据库的事务支持提供了良好支撑;基于改进的多主机 XA 协议、基于分布式环境的多版本并发控制等技术,保证了分布式数据库对事务 ACID 规范的支持,满足金融、交易等具有强事务需求的业务模型。

3.6 多机并行协同计算,适应 HTAP 业务场景

通过对优化引擎的改进,新一代分布式数据库实现了执行计划-子计划粒度的并行化协同计算功能,对不同规模的 SQL 请求,可按需调用指定数量的 SP 参与并行计算,从而实现了对分析型业务场景的良好支持,从而使得新一代分布式数据库具备 HTAP 负载支撑能力。

3.7 操作符下推,提升数据访问效率

新一代分布式数据库支持 SQL 操作符下推技术,使得扫描、过滤、查找等基础操作符得以在存储节点执行。这一设计可有效减少无效数据的网络传输,从而大幅提升数据访问效率。

3.8 成熟优化器加持,复杂 SQL 应对无虞

相对传统分布式数据库仅能支持简单 SQL 的限制,达梦新一代分布式数据库完美继承了达梦数据库发展数十年的成熟的商业级 SQL 优化器技术,能够轻松应对多表关联、视图嵌套、相关子查询等复杂查询请求,对企业级应用的分布式化进程给予充分的保障。

3.9 企业级功能完善,兼容现有生态

新一代分布式数据库支持绝大多数传统集中式数据库的高级特性,包括但不限于完整的 SQL 支持、序列、存储过程、JDBC、ODBC、DCI、DPI、Pro*C 等悉数支持。这保证了大量现有的 IT 应用经过少量适配即可完成分布式化进程。

3.10 资源、数据双隔离,多租户能力

新一代分布式数据库支持多租户能力,可在同一数据库集群内实现租户间的数据隔离和资源隔离。通过系统函数可对每个用户库或用户库角色的 CPU、内存、I/O 等资源进行限制,避免租户间资源相互影响。

同时,支持对单个租户内的不同用户或角色进行资源管控,可实现用户间的 CPU 隔离,保障关键业务稳定运行。

支持同一集群下的多租户能力,可在一个数据库集群中同时运行不同类型的数据库租户,并支持相应的数据库语法兼容与 SQL 引擎能力,满足多租户、多语法引擎并存的应用需求。

3.11 存储引擎增强,行列转换能力

新一代分布式集群存储引擎进行了增强,支持表级行存、列存以及行列混合存储方式,可根据不同业务场景选择合适的存储模型。同时,DM8 支持在业务数据持续写入的情况下,将行存表调整为列存或行列混合存储方式,满足在线变更存储结构、降低业务影响的需求。

3.12 引擎多模型,多模合一

新一代分布式集群在同一数据库引擎内支持 SQL 关系模型、KV 模型、GIS 空间数据模型、向量数据模型等多种数据模型能力,并提供相应的 SQL 接口或 API 进行数据访问与处理,可满足多模型统一管理和应用开发需求。

同一数据库引擎内支持 Vector 向量能力,支持向量数据存储、向量索引和向量检索,可通过 API 或 SQL 方式进行向量查询,并支持标量条件与向量检索的混合查询。

同时,DM8 可对接 DeepSeek、通义千问、混元、智谱 GLM、Kimi、MiniMax、豆包等国产大模型生态中的多种模型,并支持与 AI Agent、MCP、Cursor、CLI 等工具或应用集成,满足智能检索、知识库和大模型应用场景需求。

3.13 海量复制,高效快装

新一代分布式集群支持在不依赖第三方组件或产品的情况下,对超 10TB 数据量数据库进行一致性复制,可在短时间内完成复制任务,并在复制过程中不影响业务数据的正常读写。

3.14 分区共置,避免跨节点

达梦分布式数据库支持将业务关联紧密的多张表按相同分区规则进行协同分布,使相关数据尽可能落在同一数据库节点上,减少跨节点访问,提升业务系统响应效率。

微信扫码
分享文档
扫一扫
联系客服