一个region下有大量kb大小的sst小文件

Hello,出现这种情况有一种场景如下。

  1. 有一个很大的表,假设垮了 10 个 region
  2. 通过 delete 的方式陆陆续续开始删除大量数据
  3. PD 发现 region 1 和 region 2 很小,发起 merge region1,region2
  4. 在 merge 过程中,需要先把 region 1,region2 的副本迁移到一起,迁移过程中,因为是直接写 sst 文件到目标节点,产生了小 sst 文件
  5. merge region 1, region2, 成功,这个时候可以看到 merge 后的 region 的 mvcc properties 里面有小 sst 文件 出现
  6. 同样的道理,发现 region 3 很小,可以开始 mege, 循坏 3-5 的过程
    7 最后这 10 个 region 被 merge 成了一个 region, 看最终 region 的 mvcc properties 时,就可以看到很多这种小的 sst 文件了。

如果是上面这种情况,可以通过指定范围进行手动 compaction 来 merge 掉这些小 sst 文件。相关文档: https://docs.pingcap.com/zh/tidb/dev/tikv-control#手动-compact-单个-tikv-的数据

另外,需要从监控和 pd 日志中确认,这个 region 是否是从不断的 merge 生成的。