“nodetool compact”命令对于DateTieredCompactionStrategy有什么作用?

7

nodetool compact的文档说:

此命令启动使用SizeTieredCompactionStrategy和DateTieredCompactionStrategy的表的压缩过程。您可以为压缩指定一个keyspace。

但是对于DateTieredCompactionStrategy,它具体做了什么呢?

顺带一提,-s,--split-output参数是什么?它被解释为:使用-s不创建单个大文件。我感到困惑 - 那不是nodetool compact的目的吗?

1个回答

5

即使使用DTCS,没有标志的Nodetool压缩仍会创建一个大的单个文件。

-s,--split-output选项仅适用于c* 2.2及以上版本。

news.txt文件说明:

 +     It is also possible to split output when doing a major compaction with
 +     STCS - files will be split in sizes 50%, 25%, 12.5% etc of the total size.
 +     This might be a bit better than old major compactions which created one big
 +     file on disk.

在DTCS上执行-s选项不会有任何特殊效果(仍将创建一个大的SSTable)


非常感谢您的回答!顺便问一下:当压缩功能在一两天内出现故障(直到节点重新启动),并且在此期间节点创建了2000个未进行压缩的SSTable时,我该怎么办呢? - piotrwest
它是怎么破的?你关闭了自动压缩吗? - phact
我不确定,但有两种可能性:1. nodetool修复失败,并且它没有清除/压缩创建的2000个sstables,或者2.在nodetool修复失败后,一个错误导致自动压缩停止直到重新启动。 - piotrwest
很可能你的修复操作刚刚生成了大量的 SSTable。自动压缩仍在运行,但稍有滞后。你正在运行虚拟节点吗? - phact
是的,这也是可能的。问题在于生成的 SSTable 的年龄已经超过了 max_sstable_age_days。因此,这些许多 SSTable 将不会自动压缩。是的,我正在使用 vnode。 - piotrwest
这实际上是DTCS旧版本的已知限制,由于max_sstable_age_days。我在2015年Cassandra峰会上详细讨论了这个问题(http://www.slideshare.net/JeffJirsa1/cassandra-summit-2015-real-world-dtcs-for-operators) - 您需要增加max_sstable_age_days或使用forceUserDefinedCompaction手动连接小的sstables(来自修复)。或者您可以尝试https://github.com/jeffjirsa/twcs,我编写了它来解决这个限制。 - Jeff Jirsa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接