本文档介绍 TDSQL Boundless 调度引擎(MC)的架构设计和数据感知能力。
概述
调度引擎(MC, Management Center)是 TDSQL Boundless 的"大脑",承担所有控制平面(Ctrl Plane)的功能,包括监控、决策和调度。它使计算引擎和存储引擎可以专注于数据流相关的操作和性能优化。
架构设计
控制平面与数据平面分离
TDSQL Boundless 实现了 Data/Ctrl Plane Separation 架构:
核心价值:
原子调度设计
问题背景
调度引擎需要处理诸如数据分片(Region)跨节点迁移等复杂任务。这类任务从业务视角看是单一的,但内部涉及多个子步骤。
如果将调度协调逻辑放在存储层会带来问题:
状态混乱:任务推进、暂停、回滚由执行者自行判断,难以保证一致性
解决方案
将复杂调度逻辑上移至调度引擎(MC):
以 Region 为单位的细粒度锁,分离 Region 的状态和调度 Job 状态
MC 定义 Atomic Step 任务状态机全集,每个 Job 包含一个或多个 Atomic Step
TDStore 的 Region 层在任意时刻,最多只会收到并执行单个 Atomic Step
TDStore 对 Job 推进或回滚无感知,正常推进或回滚全由 MC 掌握
副本迁移 Job 示例
一个 RG 副本迁移(Replica Migration)Job 可分解为以下五个原子步骤:
4. Remove:变更 Raft 组配置,移除旧节点
5. Destroy:在旧节点清理副本数据
数据感知能力
拓扑感知的数据对象生命周期管理
管控调度引擎基于 DataObject 抽象,建立拓扑感知的数据对象管理体系,打通数据逻辑层与物理存储层的链路。
拓扑结构层级定义:
L1 级:Table(表),隶属于某个 Database
L2 级:Index/Partition(索引或分区),隶属于某个 Table
核心价值:
On-Demand 资源分配机制
与友商在 Region 过大时简单按范围切分不同,TDSQL Boundless 引入了 On-Demand 分配机制:
|
按需分配资源 | 执行 DDL 时根据数据对象的逻辑含义与亲和性关系,按需申请 Region |
亲和性驱动调度 | 识别应放置在一起的数据分片,将索引与主表数据调度至同一节点 |
两层元数据管理 | 基于 ReplicationGroup + Region 的两层结构,支持任意数据分片的分裂与合并 |