Когда я удаляю строки в Cassandra, я удаляю только столбцы, а не строки

Если я удалю все ключи в ColumnFamily в db Cassandra с помощью remove(key), то, если я использую get_range_slices, строки все еще существуют, но без столбцов. Как удалить целые строки?

Ответ 2

Почему удаленные ключи отображаются во время сканирования диапазона?

Потому что get_range_slice говорит: "примените этот предикат к диапазону заданных строк", то есть если результат предиката пуст, мы должны включить пустой результат для этого ключа строки. Весьма корректно выполнять такой запрос, возвращая пустые списки столбцов для некоторых или всех ключей, даже если никаких удалений не было выполнено.

Ответ 3

Cassandra использует распределенные удаления, как ожидалось.

Таким образом, операция удаления не может просто уничтожить все следы данных немедленно удаляется: если мы это сделали, а реплика не получала операция удаления, когда она снова станет доступной, она будет обрабатывать реплики, которые получили удаление, поскольку пропустили запись обновить и восстановить их! Таким образом, вместо уничтожения данных об удалении, Кассандра заменяет его специальным значением, называемым надгробным камнем. надгробный камень затем может быть распространен на реплики, которые пропустили начальную удалить запрос.

http://wiki.apache.org/cassandra/DistributedDeletes

Ответ 4

Я тестировал cassandra 0.63, и проблема все та же. Я не думаю, что ошибка исправлена ​​для избавления от удаленных идентификаторов строк. См.

http://wiki.apache.org/cassandra/FAQ#range_ghosts

для получения дополнительной информации.