【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
delete删除数据后,手动compact,空间无法释放
手动compact命令:./tikv-ctl --host xxxxx --data-dir /data/tidb-data/tikv-20160 compact -d kv
现在的文件系统为:
三个节点都一样,但是手动compact没有释放,当时还是60%磁盘使用率,有没有哪位高手遇到过
默认 10 分钟 gc 一次,确认 gc 成功的情况下。说明mvcc 的数据已经删除成功。compact 是底层 RocksDB 根据每层算分,会自动执行 compact。本身底层已经是合并删除过重复数据,如果数据本身就比较连续,感觉除了第一层有重复数据,如果比较多,可能会有一些效果,感觉手工执行效果可能也不是很明显。
h5n1
(H5n1)
5
手动compact 用如下命令对write default cf处理,需要对最后一层一起compact,否则基本没效果
tikv-ctl --host tikv_ip:port compact -c write -d kv --bottommost force
1 个赞
zhanggame1
(Ti D Ber G I13ecx U)
8
delete不释放硬盘空间,不要等了,手工compact各种方式我都测试过,没有用
你那样只是对default cf(不指定的话默认default)进行compact,需要指定对write cf也进行一下compact才行
1 个赞
zhanggame1
(Ti D Ber G I13ecx U)
12
WalterWj
(王军 - PingCAP)
15
delete 应该会释放空间,不释放我觉得是 bug,反馈区反馈下。
zhanggame1
(Ti D Ber G I13ecx U)
16
也不是,其他常见的数据库delete也不释放硬盘空间,比如oracle mysql等等,只是标记删除,空间留着重复使用
WalterWj
(王军 - PingCAP)
17
那是空间碎片吧,TiDB 应该不是 我直观感觉是 gc 和 compact 的 bug。何不反馈下呢。
zhanggame1
(Ti D Ber G I13ecx U)
18
不是bug,具体这样的
TiDB中删除数据后会立即释放空间吗?
DELETE,TRUNCATE和DROP都不会立即释放空间。对于TRUNCATE和DROP操作,在达到TiDB的GC (garbage collection)时间后(默认10分钟),TIDB的GC机制会删除数据并释放空间。对于DELETE操作TiDB的GC机制会删除数据,但不会释放空间而是当后续数据写入RocksDB且进行compact时对空间重新利用。
WalterWj
(王军 - PingCAP)
19
compact 是无时无刻都在做的,最后都会 compact 最后一层,释放空间是 compact 做的,但是一直不释放 我认为是有问题。
以前我遇到过类似情况 就是 compact 有 bug 导致的。所以我才说的 不释放感觉有问题。
1 个赞
zhanggame1
(Ti D Ber G I13ecx U)
20
我在 7.1版本做过几次测试,比如一个表几千万条数据全部delete,几天后占用空间都不少
现在这个表是这样