我正在用c*释放一些磁盘空间。我已经删除了许多行,这创造了许多墓碑。我正在运行nodetool garbagecollect,想知道这个工具在scens后面做了什么。我读到它删除了墓碑正在阴影中的实际数据,但没有删除墓碑(在gc\u grace\u秒后将被清除)。准确吗?garbagecollect工具与gc\u grace\u seconds参数没有任何关联?垃圾收集器实际上是如何释放磁盘空间的?关于这个工具的工作原理和作用的文档并不多。任何帮助都将不胜感激
mlmc2os51#
在cassandra中删除数据总是会添加更多的数据,所以您需要小心。 nodetool garbagecollect 执行单表压缩以删除覆盖或逻辑删除的数据。对于每个sstable,它将创建一个新的sstable,并清除不需要的数据。默认情况下,garbagecollect删除已删除或更新了较新数据的行或分区。如果 -g CELL 选项,但这将需要更多资源(i/o cpu)。此命令还可以删除过期的逻辑删除(早于 gc_grace_seconds ),但不是新鲜的。另外,墓碑的移除也有其他限制。如果过期的墓碑仍然存在,那么唯一的主要压缩可能有助于将它们逐出,例如,通过运行 nodetool compact -s 但您需要确保有足够的空间—与表本身大小相同。
nodetool garbagecollect
-g CELL
gc_grace_seconds
nodetool compact -s
1条答案
按热度按时间mlmc2os51#
在cassandra中删除数据总是会添加更多的数据,所以您需要小心。
nodetool garbagecollect
执行单表压缩以删除覆盖或逻辑删除的数据。对于每个sstable,它将创建一个新的sstable,并清除不需要的数据。默认情况下,garbagecollect删除已删除或更新了较新数据的行或分区。如果-g CELL
选项,但这将需要更多资源(i/o cpu)。此命令还可以删除过期的逻辑删除(早于gc_grace_seconds
),但不是新鲜的。另外,墓碑的移除也有其他限制。如果过期的墓碑仍然存在,那么唯一的主要压缩可能有助于将它们逐出,例如,通过运行
nodetool compact -s
但您需要确保有足够的空间—与表本身大小相同。