Удаление данных в Cassandra всегда добавляет больше данных, поэтому вам нужно быть осторожным с этим.
nodetool garbagecollect
выполняет одностадийное сжатие для удаления перезаписанных или логически удаленных данных. Для каждого sstable он создаст новый sstable с очищенными ненужными данными. По умолчанию сборщик мусора удаляет строки или разделы, которые были удалены или обновлены с использованием более новых данных. Он также может удалять удаленные или обновленные значения ячеек, если указан параметр -g CELL
, но для этого потребуются дополнительные ресурсы (ЦП ввода-вывода). Эта команда может также удалить надгробия с истекшим сроком хранения (старше gc_grace_seconds
), но не самые простые sh. Кроме того, существуют и другие ограничения на удаление надгробий.
Если надгробия с истекшим сроком годности все еще существуют, то единственное серьезное уплотнение может помочь их выселить, например, запустив nodetool compact -s
на отдельных таблицах, но вам нужно убедиться, что у вас достаточно места - того же размера, что и сама таблица.