yaa*_*rix 2 cassandra nodetool
我正在尝试在 C* 中释放一些磁盘空间。
我删除了许多行,这些行创建了许多墓碑。
我正在运行 nodetoolgarbagecollect 并且想知道这个工具在幕后做什么。我读过它会删除墓碑隐藏的实际数据,但不会删除墓碑(将在 gc_grace_seconds 后清除)。那是准确的吗?垃圾收集工具与 gc_grace_seconds 参数没有任何关联?垃圾收集实际上是如何释放磁盘空间的?
关于此工具的工作原理和作用的文档并不多。
任何帮助都感激不尽
在 Cassandra 中删除数据总是会添加更多数据,因此您需要小心。
nodetool garbagecollect执行单 sstable 压缩以删除覆盖或逻辑删除的数据。对于每个 sstable,它将创建一个新的 sstable,清除不需要的数据。默认情况下,garbagecollect 会删除已删除或使用较新数据更新的行或分区。如果-g CELL指定了该选项,它还可以删除已删除或更新的单元格值,但这将需要更多资源(I/O CPU)。此命令还可以删除过期的墓碑(早于gc_grace_seconds),但不会删除新的墓碑。此外,删除墓碑还有其他限制。
如果过期的墓碑仍然存在,那么唯一的主要压缩可能有助于驱逐它们,例如,通过nodetool compact -s在单个表上运行,但您需要确保您有足够的空间 - 与表本身的大小相同。
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |