Дисковое пространство не уменьшается после истечения gc_grace_seconds (10 дней) - PullRequest
1 голос
/ 24 июня 2019

Я удалил много данных (10 миллиардов строк) из своей таблицы (сделал небольшое приложение, которое запрашивает от LONG.MIN_VALUE до LONG.MAX_VALUE в диапазоне маркеров и УДАЛЯЕТ некоторые данные).

Дисковое пространство не уменьшилось через 20 дней после этого (также я запускаю восстановление nodetool на 1 узле из общего количества 6), но количество ключей (оценка) соответственно уменьшилось.

Уменьшится ли пространство в будущем естественным образом, или есть какая-то утилита от Кассандры, которую мне нужно запустить, чтобы освободить пространство?

Ответы [ 2 ]

4 голосов
/ 24 июня 2019

В общем, да, пространство будет соответственно уменьшаться (после запуска сжатия). В зависимости от стратегии сжатия, выбранной для этой таблицы, это может занять некоторое время. Например, для стратегии сжатия с многоуровневым форматом по умолчанию требуется, чтобы по умолчанию 4 сжатых таблицы были одинакового размера. Если у вас очень большие SSTABLES, то они могут не сжиматься в течение достаточно долгого времени или неопределенно долго, если нет 4 одинакового размера. Ручное сжатие исправит эту ситуацию, но оно поместит все в один sstable, что также не рекомендуется. Если полученная sstable ручного уплотнения очень мала, то это не повредит вам. Если в конечном итоге он уплотняется до «большого» SSTABLE, то вы жертвуете «сейчас» ради «позже» (опять же, поскольку у вас теперь есть только один большой sstable, для его участия в уплотнении может потребоваться очень много времени) , Вы можете разделить sstable после ручного сжатия, чтобы напомнить ситуацию, которую вы создали, но вам придется отключить ваш узел, чтобы сделать это. В любом случае, короткий ответ заключается в том, что со временем таблица должна соответственно уменьшаться - в зависимости от выбранной стратегии уплотнения.

0 голосов
/ 25 июня 2019

Попробуйте запустить "nodetool garbagecollect", так как это вызовет сжатие и удалит удаленные данные. который вы можете проверить статус выполнения с помощью "nodetool compacationstats"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...