请问,如果通过手动compact操作,来释放TiKV磁盘空间,会有什么影响呢?

【 TiDB 使用环境`】生产环境
【 TiDB 版本】v5.3.0
【遇到的问题】
【复现路径】
【问题现象及影响】
如果通过手动compact tikv的数据,来释放TiKV磁盘空间,对线上业务有什么影响呢?如果compact时磁盘满了而退出,对集群有什么影响呢?
【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

没啥影响,建议你在测试环境做个测试。

好的 多谢

有个placeholder文件专门用来处理磁盘空间不足紧急释放空间,直接删除即可

还没有那么紧急:relaxed:,不过手动compact释放空间并不明显呢,不知道是不是没有压缩底层数据的原因。

默认 10 分钟 gc 一次,确认 gc 成功的情况下。说明mvcc 的数据已经删除成功。compact 是底层 RocksDB 根据每层算分,会自动执行 compact。本身底层已经是合并删除过重复数据,如果数据本身就比较连续,感觉除了第一层有重复数据,如果比较多,可能会有一些效果,感觉手工执行效果可能也不是很明显。

tikv底层是rocksdb,是lsm tree,是追加。所有的写都是追加。所以如果你update的特别多,长时间不compact就会有很多没用的旧数据,但是rocksdb本身有后台compact线程,定期compact。手动compact收益不一定很大。但是有一个场景是有用的:比如说删了一个大表。如果tidb的gc时间过了,rocksdb里面会有很多过期数据,直接手动执行下compact能加速磁盘空间回收。

10分钟一次是哪个参数控制,我看 region-compact-check-interval 默认是5分钟

好的,感谢回复。

原来如此,多谢多谢。:+1: