纯tikv集群删除key后,磁盘使用不降低

【TiDB 使用环境】生产环境
【TiDB 版本】5.4
【集群数据量】80T
【集群节点数】33
【遇到的问题:问题现象及影响】
业务仅使用了tikv集群,直接向tikv写入数据,无tidb-server节点。但在清理数据库时,磁盘没有降低。

通过什么方式写入,事务 KV 还是 Raw KV?

如果是事务 KV,需要部署 TiDB 来触发 GC
或者自己跑一个 GC 的程序。参考 https://github.com/tikv/client-go/tree/master/examples/gcworker

1 个赞

TiKV 使用的是基于 LSM Tree(Log-Structured Merge-Tree)结构的 RocksDB 引擎,删除操作本质上是一个“标记删除”(Delete Marker / Tombstone)。

tidb server也只是定期发起gc ,gc是标记事务数据基于 tikc_gc_safe_point 时间节点之前的数据可以删除,标记为删除,tombstone 但是数据并为实际开始删除释放tikv磁盘空间吧,

tikv 使用RocksDB, 实际释放磁盘大小是不是取决于 RocksDB的 底层文件 Compaction合并操作吧?

不知道我的理解对不对

理解的对,释放掉没用的kv需要Compaction,这个Compaction可以手工调用 ,非常吃资源

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