gpt4 book ai didi

cassandra - nodetool garbagecollect 实际上在做什么

转载 作者:行者123 更新时间:2023-12-02 16:46:36 33 4
gpt4 key购买 nike

我正在尝试释放 C* 中的一些磁盘空间。
我已经删除了很多创建了很多墓碑的行。
我正在运行 nodetool garbagecollect 并且想知道这个工具在幕后做了什么。我读过它删除了逻辑删除正在隐藏的实际数据,而不是逻辑删除(将在 gc_grace_seconds 之后清除)。那是准确的吗? garbagecollect 工具与 gc_grace_seconds 参数没有任何关联?垃圾收集实际上是如何释放磁盘空间的?

关于此工具的工作原理和作用的文档并不多。

任何帮助将不胜感激

最佳答案

在 Cassandra 中删除数据总是会添加更多数据,因此您需要小心处理。

nodetool garbagecollect 执行单 sstable 压缩以删除覆盖或逻辑删除的数据。对于每个 sstable,它将创建一个新的 sstable,并清除不需要的数据。默认情况下,garbagecollect 会删除已删除或更新为新数据的行或分区。如果指定了 -g CELL 选项,它也可能删除已删除或更新的单元格值,但这将需要更多资源(I/O CPU)。此命令还可以删除过期的逻辑删除(早于 gc_grace_seconds),但不会删除新的逻辑删除。此外,删除墓碑还有其他限制。

如果过期的墓碑仍然存在,那么唯一的主要压缩可能有助于驱逐它们,例如,通过在各个表上运行 nodetool compact -s,但你需要确保您有足够的空间 - 与 table 本身的大小相同。

关于cassandra - nodetool garbagecollect 实际上在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60299474/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com