暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GoldenDB架构概述

原创 2024-11-26
1289

1.2. 整体架构

GoldenDB 是自主研发的数据库系统, 主要由管理节点、计算节点、数据节点、全局事务节点等模 块组成, 各个节点无需共享任何资源, 均为独立自治的通用计算节点, 之间通过高速互联的网络通讯, 从而完成对应用数据请求的快速处理和响应。

图 1.2‑1 GoldenDB 整体架构图

. 管理节点在数据库中主要负责数据库中各个组件的管理、给客户提供智能化运维管理平台, 不涉及业务的访问流程, 一般采用主备方式部署。

. 计算节点是数据库的计算模块, 从驱动层接收用户的 SQL 操作, 进行逻辑优化和物理优化, 生成满足分布式事务一致性的分布式查询计划。计算节点在执行分布式查询计划时, 通过持 续地访问数据节点, 从而完成用户的最终操作请求。用户可以根据应用对可靠性、可用性、 性能等因素的不同要求, 对计算节点进行合理的规划和划分。

. 数据节点是应用数据的最终存储模块。所有的数据节点组成一个或多个数据库集群, 数据库 集群由一个或多个安全组组成, 集群中每个表中的数据按照某种策略进行横向分片后存放到 对应的安全组中, 分片策略包括复制策略、哈希策略、范围策略、列表策略、多级分片。

. 全局事务管理节点在分布式数据库中维护全局事务的全生命周期, 提供申请、释放、查询全 局事务的能力, 保证了分布式数据的一致性。

1.2.1. 管理节点

管理节点: 是对系统计算节点集群、数据节点集群管理的节点, 它承载了分布式数据库系统的所 有的运维操作, 包括集群高可用高可靠的管理、系统的备份恢复、系统元数据管理等操作。

图 1.2.1‑1 GoldenDB 管理节点图

管理节点内部由多个模块构成, 主要包括以下模块:

1. 统一运维管理 Insight 模块: Insight 是 GoldenDB 分布式数据库产品的统一操作维护入口, 用 户可以在 Insight 上进行用户和权限管理、元数据管理、计算节点管理、数据节点管理、 DDL 执行、节点扩容、备份恢复、系统安装、统计及告警管理等。

2. 元数据管理器 MetaDataServer 模块: 元数据指数据的元信息, 如库、表、视图、触发器、存 储过程、 函数等数据模型的定义, 元数据管理器存放系统的全量元数据, 是整个分布式数据库集群的元数据中心。为了提高启动和运行效率, 除了元数据管理器存有元数据定义外, 计 算节点和数据节点也会存放元数据定义, 但计算机节点和数据节点只存放本节点所涉应用的 元数据定义, 即当计算节点中的元数据和管理节点的元数据不一致时, 会同步管理节点的元 数据到本地。此外, 元数据管理器还保存了整个集群的拓扑信息, 因此是更广义的元数据管理。

3. 计算节点管理 ProxyManager 模块: 负责管理计算节点集群。管理工作一般分为两类。一类为 组件管理, 包括计算节点的创建、启用、禁用和删除, 另一类为应用管理, 包括定义计算节点和应用的对应关系、计算节点异常后的数据恢复调度。

4. 数据节点管理 ClusterManager 模块: 数据节点集群管理也分为两类。一类为组件管理, 包括 数据节点、安全组、数据节点集群的创建、变更和删除; 另一类为任务管理, 包括数据节点异常、恢复后的调度管理、数据节点备份恢复的调度、数据重分布等功能的任务调度管理

1.2.2. 计算节点

计算节点(CN: Computer Node): 负责用于接收应用发送过来的业务语句, 对业务语句做语法解 析, 对数据做分布式的优化, 包括语句的改写, 并行分发等等, 最终生成分布式的执行计划, 按 照执行计划将语句下发到数据节点集群中, 计算节点还进行分布式事务的并发控制。

图 1.2.2‑1 GoldenDB 计算节点图

计算节点内部由多个模块构成, 主要包括以下模块:

1. 前端通讯和 SQL 协议处理层模块: 负责前端的长链接管理, 端口管理, SQL 协议处理。

2. SQL 解析模块: 负责对 SQL 语句进行语法检查, SQL 解析生成语法树。

3. SQL 优化模块: 负责 SQL 查询优化。

4. SQL 执行模块: 负 责 SQL 的执行操作。

5. SQL 路由模块: 负责数据模块选择, 负载均衡及路由管理。

6. 后端通讯和 SQL 协议处理层模块: 负责 SQL 协议封装、后端长链接管理, 负载均衡。

7. 元数据缓存模块: 负责存储元数据信息并持久化。

8. 配置模块: 负责存储配置信息和处理。

1.2.3. 数据节点

数据节点(DN: DataNode): 用于存储业务数据, 及执行分布式子事务的节点。通常一个集群包含 多个数据节点, 每个数据节点都是独立自治的数据库系统, 一个业务的数据只会落到一个数据集群中。业务的数据会被水平的切分后分布在若干个数据节点上, 为了保证数据的可用性, 每个数据分片均部署多个数据备份节点, 假如一个业务的数据分成了 2 份, 如果 1 号分片坏了, 1 号分片的备份系统就会替代原分片。 因此,数据分片节点和它的备份数据节点构成一个安全组。

图 1.2.3‑1 GoldenDB 数据节点图

数据节点内部由多个模块构成, 主要包括以下模块:

1. 连接器模块: 负责身份认证和权限鉴定, 用户登录 GoldenDB 数据库时, 进行身份、密码、 权限检测。

2. 分析器模块: SQL 语句会在分析其中进行词法和语法解析, 提取 SQL 关键字, 检测确认 SQL 语法是否正确, 正确的语法分析语句的功能作用创建正确的数据结构。

3. 优化器模块: 优化器分析 SQL 的最优执行方案, 评估 SQL 的执行代价, 将代价最小执行最优 的方案做为执行方案去执行, 例如如何选择索引, 多表如何关联等

4. 执行器模块: 执行优化器确认的最优方案, 将数据从数据文件中返回给客户端。

5. 数据文件模块: 数据文件是存储表空间数据的位置, 数据文件依据表的组织结构存储保存表 数据。

1.2.4. 全局事务节点

全局事务节点(GTM: Global Transaction Manager): 负责协调 CN 一起进行分布式事务的并发控 制, 维护当前所有正在执行的分布式事务列表, 维护全局事务的全生命周期, 提供全局事务的申请、释放、查询能力, 也提供全局序列的创建、修改、 申请。

图 1.2.4‑1 GoldenDB 全局事务节点图

全局事务节点内部由多个模块构成, 主要包括以下模块:

1. 公共消息处理模块: 负责维护和计算节点间的心跳、 向管理节点上报状态信息、处理元数据 等功能。

2. 全局事务消息处理模块: 负责处理来自计算节点或管理节点的全局事务、序列等业务请求 , 并在相应的模块处理完成后向请求节点发送响应, 此外还负责对变化的全局事务信息进行主 备机同步以及维护水位信息。

3. GTID 处理模块: 负责 GTID 的申请、查询、释放请求在 GTM 内部的逻辑处理。

4. SEQUENCE 处理模块: 负责 SEQUENCE 的创建、修改、 申请请求在 GTM 内部的逻辑处理。

5. CTID 处理模块: 负责事务标识的申请、查询、释放请求在 GTM 内部的逻辑处理。

6. 告警模块: 负责处理 GTM 运行过程中产生的告警信息的持久化和上报。

7. 监控模块: 负责监控其他模块的运行状态并周期性打印统计信息。

8. 持久化模块组: 持久化模块组中包含多个子模块, 如 GTID 持久化模块、 SEQUENCE 持久化模 块、SEQUENCE 上传模块等, 主要负责 GTID、 SEQUENCE 等信息的持久化和备份恢复功能。

最后修改时间:2024-11-26 10:06:53
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论