Если у вас есть RF> 1, надгробные плиты еще нужно настаиваться на диск, чтобы убедиться, что удаление было безопасно передается всем репликам. Например, рассмотрим следующее:
RF = 3 N = 3
У вас есть таблица сотрудников, чтобы огонь в конце месяца. Вы добавляете Джона Смита в список сотрудников для прекращения действия. Через две минуты Джон Смит делает что-то удивительное, и вы хотите удалить его из списка. Вы удаляете его запись, но один из трех узлов находится в автономном режиме. Джон Смит по-прежнему находится в списке сотрудников для запуска этого автономного узла.
Когда memtable сбрасывается на одном из узлов «вверх», он сохранит надгробный камень, указывающий на то, что Джон Смит не должен быть уволен, потому что, когда этот автономный сервер подходит, он должен знать, что работа Джона Смита безопасна.
Уплотнение в конечном итоге удалит надгробный камень после gc_grace_seconds, но основное поведение верное: если вы пишете ячейку, а затем сразу ее удалите, вам все равно нужно сохранить надгробный камень на диск, чтобы убедиться, что все реплики правильно удалены эта клетка.
Я согласен с вашим комментарием, но Datastax Enterprise поддерживает режим InMemory, который по существу должен делать то же самое. У нас есть временные данные, которые идеально вписывались бы в память и никогда не нуждались бы в том, чтобы очищать данные на диске. Было бы неплохо, если бы Кассандра поддерживала уплотнение в памяти. – ppeddi