TTL Remover на данных Кассандры - PullRequest
       104

TTL Remover на данных Кассандры

0 голосов
/ 11 декабря 2018

У меня есть сценарий, когда приложение вставило данные в таблицу Cassandra с (TTL) 5 дней. У меня также есть (GC_GRACE_SECONDS) до 5 дней, так что надгробия будут выселены, как только начнется уплотнение.

Теперь у меня есть сценарий, в котором для одной таблицы мне нужно хранить данные в течение 60 дней.Я изменил запись приложения, чтобы обновить TTL до 60 дней для новых данных.Но я ищу решение, где я мог бы изменить TTL для существующих данных (который имеет 5 дней до 60 дней).

Я пробовал Instaclustr / TTLRemover по какой-то причине, код не работал для нас,Мы используем Apache Cassandra 3.11.3.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Мы можем установить TTL двумя способами 1) из запроса 2) по таблице.Просто обновите TTL для этой таблицы или заново вставьте запрос с новым значением TTL.

0 голосов
/ 11 декабря 2018

Просто для ясности параметров:

default_time_to_live : TTL (время жизни) в секундах, где ноль отключен.Максимальное настраиваемое значение - 630720000 (20 лет).Если значение больше нуля, TTL включен для всей таблицы, и отметка времени истечения добавляется в каждый столбец.Новая временная метка TTL вычисляется каждый раз, когда данные обновляются, а строка удаляется после истечения срока действия всех данных.Значение по умолчанию: 0 (отключено).

gc_grace_seconds : Секунды после того, как данные помечены надгробной плитой (маркером удаления), прежде чем они будут допущены для сбора мусора.Значение по умолчанию: 864000 (10 дней).Значение по умолчанию позволяет Cassandra максимально увеличить согласованность перед удалением.Примечание: записи, захороненные в течение периода отсрочки, исключаются из подсказок или пакетных мутаций.

В вашем случае вы можете обновить TTL и gc_grace_seconds до 60 дней, чтобы новые данные истекали через 60 дней.Но поскольку ваши существующие данные уже помечены как ttl как 5 дней, они не будут обновлены новыми ttl и будут удалены через 5 дней.Насколько мне известно, нет способа обновить TTL для существующих данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...