Можно ли удалить весь раздел из таблицы Cassandra, не записывая надгробий, не дожидаясь gc_grace_period и не выполняя уплотнение?
Удалить весь раздел из Cassandra без надгробий и ttl?
Ответы (1)
Никогда раньше gc_grace_period. Но хорошо, что вы можете это контролировать. Если вы знаете назначение надгробий, то можете понять, что при распределенных удалениях, если узел не работает какое-то время, вы можете получить удаленные данные или возникнут некоторые проблемы с согласованностью. Для одного узла вы можете установить gc_grace_period равным 0. Но для нескольких узлов это значение должно быть больше 0. Для частого удаления в некоторых таблицах, если вас беспокоит создание большого количества надгробий, вы можете установить небольшой gc_grace для этих таблиц, но рассмотрите сценарии сбоя узла и обработайте его по мере необходимости.
Некоторые ссылки:
удаление без надгробий или TTL
Об удалениях в Cassandra
ОТРЕДАКТИРОВАННЫЙ ОТВЕТ
Range Tombstones — это эффективный способ удаления на основе ключа раздела. Это создает одно захоронение для всей строки, уменьшая количество захоронений, прочитанных при чтении диапазона, и количество захоронений, которые необходимо объединить или очистить путем сжатия.
Из ссылки @mando222 & я поделился. Пожалуйста, прочтите данную ссылку. Вы получите свой ответ.
Существуют различные типы удалений. Удаление всего раздела (или удаление одной строки), удаление одного столбца, удаление диапазона. Если вы удалите одну строку или раздел, не упомянув столбец, будет создано только одно надгробие для этой строки или всего раздела. У них нет отдельного надгробия для каждой ячейки, вместо этого у них есть надгробие с одним диапазоном.
Если вы удаляете диапазон, некоторые строки, которые находятся в диапазоне, также создают одиночное захоронение для диапазона.
Меньшее количество надгробий обеспечивает более быстрое чтение и более быстрое и менее дорогое уплотнение.