删除 cassandra 数据后磁盘空间不减少

Posted

技术标签:

【中文标题】删除 cassandra 数据后磁盘空间不减少【英文标题】:Disk space not decrease after delete cassandra data 【发布时间】:2022-01-09 14:31:42 【问题描述】:

大约 2 周前,我删除了大约 700GB 的 cassandra 数据。但是直到现在磁盘空间仍然没有空闲。我知道 gc_grace_second 和 default_time_to_live 过期时会删除数据。并且 nodetool compactionstats 仍然有待处理的任务。

   CREATE TABLE ywulzsrdphjlbgoksmnqoliktcmrlcybidcw (
       key text,     
       column1 text,
       value text,
       PRIMARY KEY (key, column1) )
   WITH COMPACT STORAGE
   AND bloom_filter_fp_chance=0.100000
   AND caching='"keys":"ALL", "rows_per_partition":"NONE"' 
   AND comment=''
   AND dclocal_read_repair_chance=0.000000
   AND gc_grace_seconds=1
   AND read_repair_chance=0.000000
   AND default_time_to_live=0
   AND speculative_retry='NONE'
   AND memtable_flush_period_in_ms=0
   AND compaction='class':'LeveledCompactionStrategy'
   AND compression='sstable_compression': 'LZ4Compressor';

【问题讨论】:

这是“幽灵数据”的秘诀:gc_grace_seconds=1。我不久前写了一篇文章,详细说明了为什么将gc_grace_seconds 设置得太低是个坏主意:medium.com/building-the-open-data-stack/… 【参考方案1】:

与您当前的“LeveledCompactionStrategy”压缩策略相比,使用 TimeWindowCompactionStrategy 可以帮助您更频繁地触发压缩过程。

或者,您可以使用“nodetool compact keyspace/table”在已删除数据的键空间或表上强制触发压缩过程。

【讨论】:

以上是关于删除 cassandra 数据后磁盘空间不减少的主要内容,如果未能解决你的问题,请参考以下文章

virtualbox中ubuntu系统采用rm -rf 模式删除文件后,虚拟磁盘不减少,反而越来越大,请前辈指教?

wsl所占硬盘空间过大 虚拟机删除文件后硬盘空间不减少

VMware虚拟机删除文件,空间不释放

cassandra的物理磁盘空间管理

Cassandra - 将一个巨大的字段设置为 null 而不归还磁盘空间

nodetool 清理后磁盘空间使用量增加 - Apache Cassandra