Как удалить надгробия с отметкой времени в будущем - PullRequest
3 голосов
/ 15 января 2020

Как можно удалить надгробия, которые были вставлены с меткой времени, установленной в самом отдаленном будущем?

Контекст: в некотором коде была ошибка, которая вставляла записи с меткой времени в отдаленном будущем. В дальнейшем объекты были удалены вручную созданным надгробным камнем.

Теперь вставки, имеющие одинаковый ключ раздела, автоматически удаляются из-за будущей записи надгробного камня. Эти записи не удаляются во время сжатия из-за их метки времени. Как можно удалить эти будущие надгробия, чтобы правильно вставить записи с одинаковыми PK?

1 Ответ

0 голосов
/ 14 февраля 2020

Я воспроизвел ту же проблему, установив клиентский сервер на +30 минут. Я запустил удаление раздела на клиенте. Он создал надгробную плиту с будущей отметкой времени. Все мои обновления на исходном сервере базы данных с правильным временем игнорируются, потому что Cassandra заботится только о самых последних данных меток времени.

Я сделал эти шаги для очистки надгробий в таблице с этой проблемой

1) Установите свойство таблицы gc_grace_seconds равным 0

2) nodetool flu sh таблица ключей

3) таблица компактных ключей для nodetool

У меня только один узел. Если у вас есть несколько узлов, то вам нужно выполнить описанные выше шаги на всех узлах, кроме установки свойства таблицы

ПРИМЕЧАНИЕ. При этом удаляются все надгробия, а также сжатие требует значительных ресурсов

...