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