TDSQL Boundless 副本迁移性能优化

1. 数据提取阶段:从 Leader 的 LSM-Tree 中遍历提取特定 key range 的数据。数据可能分散在不同层级、多个 SST 文件;需要逐条扫描和筛选,IO 开销大。

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

一、传统迁移流程

2. 数据传输阶段:逐条发送 KV 数据到目标端,传输效率低,网络利用率差。

3. 数据写入阶段:目标端先写入 external SST,再 ingest 到 LSM-Tree。需要与本地 SST 文件聚合,产生额外压缩开销。

4. 副本删除阶段:从 LSM-Tree 中移除数据,需要遍历底层 SST 文件,IO 开销大。

二、优化方案:SST 文件边界对齐

在底层数据压缩(compaction)过程中,增加对 SST 文件和数据分片 Region 边界对齐的逻辑处理。

·实现机制

·在后台执行 compaction 过程时,系统会调用名为 SST partitioner 的模块。在 compaction 检测到文件较大时,按 Region 边界进行拆分,确保同一 SST 文件仅包含单一数据分片的数据,而不会将不同 Region 的数据合并在一起。

·如下所示,L1层:100-200, 200-300, 300-400等范围清晰分离;L2/L3层:无数据跨越 Region 边界。

·优化后的迁移流程

1.1 文件直接识别:无需遍历数据,直接确定 Region 对应的 SST 文件。

1.2 整文件传输:直接传输压缩后的 SST 文件到目标端。

1.3 直接 ingest:目标端无需复杂压缩,直接插入数据。

·技术细节处理:迁移前先将 L0 层乱序数据 compaction 到 L1 层。由于 L0 层数据由 memtable 刷写而来,其数据量相对有限,压缩开销可接受。

三、性能提升

注意:说明:

注意:这篇档中的数据描述,均来源于2026年腾讯内部实验测试结果,测试基于特定环境、条件及时间范围,仅反映相应测试场景下的情况,实际效果可能因业务场景、配置及使用情况不同而存在差异。

·Compaction 相关 IO 开销下降。

·迁移、全量备份性能提升。

·区间物理删除性能提升。

·为批量导入(Bulk Load)功能提供了技术基础,实现了 SST 文件的高效传输和加载,显著提升了 TDStore 的数据迁移效率。

方案 速率 备注
stream RPC 传输 KV (优化前) 22.6M/s 每个 RepGroup 数据量20G
直接发送本地 SST (优化后) 455.1M/s 
赞 (0)
上一篇 4天前
下一篇 4天前