Устаревание данных¶
Модуль expirationd
позволяет контролировать время жизни кортежей в спейсе и
обрабатывать кортежи, время жизни которых истекло.
Модуль работает в фоновом режиме в рамках одного спейса:
обходит спейс по индексу с заданной периодичностью;
проверяет срок жизни кортежа с помощью функции
is_expired
;применяет к кортежу функцию
process_expired_tuple
, заданную пользователем.
В Tarantool DB модуль доступен в виде технологической роли expirationd.
Опции конфигурации expirationd
описаны в соответствующей секции Справочника по конфигурации.
Важно
В Tarantool DB версии ниже 1.2.0 персистентные функции, необходимые для работы модуля, требуется объявлять перед применением конфигурации для роли expirationd
.
Это означает, что сначала нужно применить миграции с функциями, и только после этого можно включать роли.
Иной порядок запуска приводит к возникновению ошибок.
В версии 1.2.0 эти ограничения исправлены: теперь порядок запуска не имеет значения.
Если роль expirationd
не включена, в веб-интерфейсе Tarantool DB появляется соответствующее сообщение.
Автоматическое удаление кортежей
Вы можете гибко настроить логику в модуле expirationd
самостоятельно или включить автоматическое удаление устаревших кортежей.
Автоматическое удаление запускается, если не указана пользовательская функция is_expired
, которая определяет время жизни кортежа.
Автоматически удаляются все кортежи старше указанного порогового значения.
Пороговое значение можно задать в опции конфигурации options.args.lifetime_in_seconds.
Название поля, по которому проверяется время жизни кортежа, можно задать в опции options.args.time_create_field
.