В Cassandra никакие данные не изменяются на месте - все файлы неизменяемы. Когда вы выполняете удаление или вставку нуля (это то же самое), специальный маркер добавлен в дополнение к предыдущим данным на диске. Таким образом, когда вы добавляете данные, вы фактически добавляете больше данных: -)
Фактическое удаление данных происходит, когда файлы SSTable уплотняются фоновым сжатием. Планирование сжатия файла зависит от используемой стратегии сжатия и параметров ее конфигурации. Могут возникнуть ситуации, когда у вас есть старые данные в больших файлах, которые некоторое время не могут быть сжаты. В зависимости от вашей версии Cassandra / DSE вы можете принудительно выполнить сжатие всех данных, выполнив nodetool compact -s
на каждом узле, но для этого потребуется достаточно места на диске (размер таблицы). Другая возможность - использовать nodetool garbagecollect -g CELL
в отдельных SSTables, но для этого также потребуется свободное место на диске.
PS Рекомендую пройти хотя бы курс DS201 на DataStax Academy .