Архивация данных по их времени жизни | Tdb
Руководство пользователя Работа с движками базы данных Архивация данных по их времени жизни

Архивация данных по их времени жизни

Доступно с версии 3.0.0.

Tarantool DB поддерживает архивацию данных – автоматический перенос устаревших данных из спейсов на движке memtx в спейсы vinyl на основе времени жизни кортежей (TTL), например по времени их создания (created_at) или обновления (updated_at). Такая архивация данных позволяет:

  • держать горячие данные в оперативной памяти (memtx) для высокой производительности;

  • переносить холодные данные на диск (vinyl) для долгосрочного хранения.

Перенос данных на диск позволяет освободить оперативную память от значимых данных, которые уже не изменяются и запрашиваются редко – например, закрытых заявок, обработанных событий, завершённых сессий.

Для архивации устаревших кортежей используются модуль cooler и отдельная технологическая роль roles.cooler:

  • роль roles.cooler задается на экземплярах хранилища кластера и отвечает за запуск и остановку архивации, обработку смены мастер-узла в наборе реплик, а также конфигурацию модуля expirationd. Модуль expirationd используется для итерации по индексам спейсов и выполнения фоновых задач архивации;

  • модуль cooler позволяет задавать архивацию данных в миграциях, а также отвечает за DDL-операции по созданию спейса vinyl и просмотр состояния и статистики архивации.

Подробный пример настройки и применения архивации данных приведен в разделе Пример архивации устаревших данных.

Гарантии

  • Перенос кортежей из memtx в vinyl устойчив к сбоям. Сначала происходит вставка архивируемого кортежа в спейс vinyl. Соответствующий кортеж удаляется из memtx-спейса только при его успешном добавлении в спейс vinyl.

  • Никогда не возникает состояния, при котором архивируемый кортеж отсутствует и в memtx, и в vinyl.

  • Для спейса vinyl можно установить те же параметры доступа, что и для memtx, используя функцию box.schema.user.grant().

  • Включение и выключение транзакционного менеджера memtx MVCC не влияет на архивацию данных.

Особенности работы

  • На каждый индекс спейса задается только одна задача архивации. Создать несколько задач по архивации на один индекс спейса невозможно. При этом можно создать несколько задач архивации на один спейс.

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

Нашли ответ на свой вопрос?
Обратная связь