诺德托尔垃圾收集公司实际上在做什么

pepwfjgg  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(289)

我正在用c*释放一些磁盘空间。
我已经删除了许多行,这创造了许多墓碑。
我正在运行nodetool garbagecollect,想知道这个工具在scens后面做了什么。我读到它删除了墓碑正在阴影中的实际数据,但没有删除墓碑(在gc\u grace\u秒后将被清除)。准确吗?garbagecollect工具与gc\u grace\u seconds参数没有任何关联?垃圾收集器实际上是如何释放磁盘空间的?
关于这个工具的工作原理和作用的文档并不多。
任何帮助都将不胜感激

mlmc2os5

mlmc2os51#

在cassandra中删除数据总是会添加更多的数据,所以您需要小心。 nodetool garbagecollect 执行单表压缩以删除覆盖或逻辑删除的数据。对于每个sstable,它将创建一个新的sstable,并清除不需要的数据。默认情况下,garbagecollect删除已删除或更新了较新数据的行或分区。如果 -g CELL 选项,但这将需要更多资源(i/o cpu)。此命令还可以删除过期的逻辑删除(早于 gc_grace_seconds ),但不是新鲜的。另外,墓碑的移除也有其他限制。
如果过期的墓碑仍然存在,那么唯一的主要压缩可能有助于将它们逐出,例如,通过运行 nodetool compact -s 但您需要确保有足够的空间—与表本身大小相同。

相关问题