TDSQL Boundless 弹性扩缩容与负载均衡

这篇档详细介绍 TDSQL Boundless 的弹性扩缩容机制和负载均衡策略。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、扩缩容概述

TDSQL Boundless 的核心特性之一是实现业务无感知的扩缩容,确保扩缩容过程中业务请求不受性能抖动影响。

扩缩容就是数据分片 – 复制组 – 物理节点三者关系的重组:

变化类型 具体事件
数据逻辑关系变化 Region 的分裂和合并Region 在 RG 上的转移RG 创建和删除
数据物理关系变化 RG 迁移(成员变更)

二、分裂操作

分裂是将单个 Replication Group 拆分成两个,各自管理拆分前的部分数据。

分裂流程:

1. 初始状态:TDStore1、2、3上存在数据量大的 RG3,新增 TDStore4 节点

2. Replication Group 分裂:将一部分 Key Range Region 划分到新 RG,构建新 Raft Group

3. 分裂完成:两个 RG 分别承担分裂前一部分的压力

分裂特点:

·仅在上层逻辑模块进行复制组拆分

·底层 KV 数据未发生物理变动

·对系统 IO 的影响较为有限

三、迁移操作

迁移是指将 Raft Group 的某个 follower 副本转移到新节点的过程。

迁移流程:

1. 在目标节点为待迁移的复制组创建新副本

2. Leader 执行 install snapshot 流程,将完整 RG 数据同步至新副本

3. 删除待迁移的旧副本("先增后减"策略)

核心价值:

·数据分散:实现数据在不同 TDStore 节点间的均衡分布

·读写无感:follower 的创建与销毁不影响 Leader 的正常读写操作

四、切主操作

切主是指将 Raft Group 中的 Leader 角色切换到另一个 Raft 副本的过程。

切主流程:

1. 事务信息预同步:将原 Leader 的未完成活跃事务上下文信息提前发送给目标节点

2. Raft 层 Leader 切换:在事务信息同步完成后,触发正式的 Leader 切换操作

核心目的:通过分散 Leader 热点,实现负载均衡。

保证:提前同步事务信息,切主过程中不会终止任何进行中的事务。

五、负载均衡与数据亲和性协同

MC 实现了负载均衡与数据亲和性协同调度机制:

协同调度流程:

1. 初始分布策略:均匀分布原则,Leader 均衡,副本均衡

2. 动态扩容感知:计算新增节点容量,重新评估分布均衡性,迁移部分数据分片

3. 持续优化机制:定期重新计算数据分布,渐进式优化

4. 极端情况处理:数据倾斜过高时,分裂表数据并进行副本搬迁

六、2.2 热点检测与智能调度

MC 实现了智能化的热点检测与负载均衡系统:

热点检测机制:

1. 实时数据上报:节点心跳上报基本信息和 Region 级别读写流量统计

2. 多维度负载状态:MC 维护 Multi-TopN 记录(Byte/Key/Query 维度)

3. 智能调度算法:基于 MovingAverage 避免冲击负载,计算热度得分选择最佳分布

赞 (0)
上一篇 4天前
下一篇 4天前