TiKV 分层

TiKV 分层存储(冷 / 温 / 热介质),Region 冷热切换触发调度的阈值与数据落地策略?

(1)Region 调度触发阈值:PD 调度(包括 Region 迁移)主要基于 ‌存储容量(默认 96MB 分裂、54MB 合并)和负载均衡(Leader/Region 数量不均),‌不基于访问热度。Load Base Split(QPS/流量阈值,默认 3000 QPS 或 30 MiB/s)仅触发 Region ‌分裂(非迁移),用于缓解热点读写,但分裂后 Region 仍留在原介质;‌无自动将“冷”Region 移至 HDD、“热”Region 提升至 SSD 的机制;
(2) 数据落地策略:Region 数据始终由所在 TiKV 节点的 RocksDB 落地至其本地磁盘(SSD/HDD),‌一旦 Region 被调度到某节点(如因扩容或 balance-region),其数据即永久落地该节点磁盘,直至下一次显式放置策略变更或手动迁移。TiKV 无类似对象存储的 TTL 自动冷热流动;若需冷数据归档,需‌手动 ALTER TABLE … PLACEMENT POLICY = storeonhdd触发 PD 跨介质迁移。‌‌

1、跨节点 PD 调度(Region 粒度):高频 QPS→热上 SSD;多日零访问→冷落 HDD;零星访问留温盘,靠 PD 热度阈值触发副本搬迁;
2、单机混合存储(SST 粒度)
:新数据全在 SSD,盘空间不足 + 长期无访问,Compact 自动下沉 SST 至 HDD,冷数据复访自动回迁。

1 个赞

磁盘空间问题可以检查下有没有空 Region,用 pd-ctl region check empty-region 查看,手工 merge 掉。另外 GC 时间设置得太短也可能导致空间释放不及时。

TiDB 分层分两套机制:
1、本地介质分层(单 TiKV 内多盘:NVMe/SSD/SATA/HDD,RocksDB Compaction 下沉 SST,TiKV 内核管控);
2、集群节点分层(多标签 TiKV 节点:hot/warm/cold 机器,PD 调度 Region 跨节点迁移,Placement Rule + 冷热调度器管控)

  • 冷 SST TTL:在线业务15~30d,归档业务 7d;
  • 冷 Region 静默周期:30d,报表类冷数据可设 15d;
  • SATA 冷迁移限速:单 TiKV max-bytes-per-sec=100~200MB,防止冷迁移抢占业务 IO;
  • 热点阈值:按业务 QPS 缩放,OLTP 热点阈值调低、OLAP 调高。

TiKV 的空间回收依赖于 MVCC 的 GC 机制,通过 raftstore 层的 GC worker 定期清理历史版本数据。如果 GC 推进慢,通常是因为存在长时间未提交的事务,或者某个 TiKV 节点 Raft 复制延迟导致 safepoint 停滞。

1、常规 Region 分裂 / 合并:默认按存储容量(96MB 分裂、54MB 合并)调度,不依据访问热度。
2、热点分裂:QPS 达 3000 或流量至 30MiB/s 触发 Load Base Split,仅拆分 Region,不跨介质迁移。
3、冷热判定参考:冷数据静默周期建议 15~30 天,SST 冷数据 TTL 归档业务设 7 天、在线业务设 15~30 天;迁移限速 100~200MB/s,避免抢占 IO。

TiKV 分层存储通过 “单节点 SST 级自动分层 + 跨节点 Region 级策略调度” 双机制实现,切换阈值分温度 / 空间两类,数据落地遵循 “热数据写用 SSD → 冷数据沉降 HDD → 热访问自动回迁 → 超冷归档对象存储” 的全链路策略,全程不影响事务 ACID 与查询性能。

阈值

  1. 热度:默认 7 天低访问标记冷 Region,冷数据持续高访问回迁热介质;
  2. 容量:SSD 使用率达 85% 触发沉降,HDD 低于 70% 停止迁入;
  3. 支持按 TTL、PD 热度参数判定冷热。

落地策略

  1. 新数据默认落 SSD,冷分区通过规则直写 HDD;
  2. 靠 RocksDB 合并将低层 SST 沉降冷介质,访问后逐步回迁;
  3. 结合 Placement Rules 按表 / 分区定向调度。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。