Что делает nodetool compact для DateTieredCompactionStrategy?

В документации по nodetool compact говорится:

Эта команда запускает процесс уплотнения таблиц, использующих SizeTieredCompactionStrategy и DateTieredCompactionStrategy. Вы можете указать пространство ключей для сжатия.

Но что он делает для DateTieredCompactionStrategy?

Дополнительный вопрос: что такое параметр -s, --split-output? Это объясняется как: Use -s to not create a single big file. Я в замешательстве - разве это не цель nodetool compact?


person piotrwest    schedule 29.12.2015    source источник


Ответы (1)


Nodetool compact без флагов по-прежнему будет создавать один большой файл даже с DTCS.

Параметр -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)

person phact    schedule 29.12.2015
comment
Большое спасибо за ответ! Дополнительный вопрос: есть ли подсказка, что я могу сделать, когда в течение одного или двух дней уплотнение было нарушено (до перезапуска узла), и за это время узел создал 2000 SSTables, не уплотняя их? - person piotrwest; 30.12.2015
comment
Как он был сломан? Вы отключили автосжатие? - person phact; 30.12.2015
comment
Я не уверен, но есть два варианта: 1. восстановление nodetool не удалось, и он не очищал/сжимал созданные 2000 sstables, ИЛИ 2. после сбоя восстановления nodetool ошибка остановила автосжатие до перезапуска. - person piotrwest; 30.12.2015
comment
Скорее всего, ваш ремонт просто сгенерировал много sstables. Автосжатие все еще работает, но немного отстает. Вы запускаете vnodes? - person phact; 18.01.2016
comment
Да, это тоже возможно. Проблема в том, что возраст сгенерированных sstables превысил max_sstable_age_days. Следовательно, эти многочисленные sstables не будут автоматически сжаты. Да, я использую vnodes. - person piotrwest; 18.01.2016
comment
На самом деле это известное ограничение старых версий DTCS из-за max_sstable_age_days. Я подробно обсуждал это на саммите Cassandra 2015 ( slideshare.net/JeffJirsa1/ ) — вам нужно либо увеличить max_sstable_age_days, либо вручную соединить крошечные sstables (пришедшие из ремонта) с помощью forceUserDefinedCompaction. Или вы можете попробовать github.com/jeffjirsa/twcs , который я написал для устранения этого ограничения. - person Jeff Jirsa; 26.01.2016