Конфигурация плановой очистки данных
В этом разделе описаны принципы работы системы плановой очистки данных и ее корректная настройка на уровне сервисов.
Система очистки отвечает за удаление устаревших данных и позволяет настраивать расписание очистки с помощью cron-выражений.
Точка управления системой — сервис baf-dashboard, а непосредственное удаление данных выполняют сервисы platform-backend и video-recorder.
platform-backend
Сервис отвечает за удаление устаревших фотографий попыток авторизации. Фотографии регистрационных попыток удаляются только при удалении соответствующего аппликанта.
Все параметры настройки очистки находятся в файле platform.values.yaml.
Расписание и параметры очистки
Процедура очистки запускается по расписанию, которое настраивается через переменные:
PLANNED_RETENTION_POLICY_DAY_OF_WEEK- день недели (cron)PLANNED_RETENTION_POLICY_HOUR- час (cron)PLANNED_RETENTION_POLICY_MINUTE- минута (cron)
В стандартных настройках период установлен на 59-й минуте каждого часа, то есть процедура выполняется раз в час.
Удаление данных выполняется пакетами для распределения нагрузки:
DELETE_SAMPLE_BATCH_SIZE- количество кадров, удаляемых за одну операциюDELETE_SAMPLE_BATCH_SLEEP- пауза в секундах между операциями удаления
Количество параллельных процессов очистки настраивается через backend.retention_workers_count. Увеличение числа процессов позволяет параллельно выполнять очистку данных разных аккаунтов, при этом данные одного аккаунта всегда обрабатываются одним процессом.
Режим обратной совместимости
При старте сервиса на чистой базе или на BAF версии 1-14-0 и старше процедура работает в режиме обратной совместимости.
В этом режиме удаляются фото попыток, созданные раньше значения backend.sample_ttl от времени запуска процедуры.
Процедура переходит в новый режим работы при открытии страницы настроек очистки в дашборде.
Режим работает для каждого аккаунта индивидуально — переход на новый режим в одном аккаунте не затрагивает другие аккаунты.
Режим плановой очистки
После перехода в режим плановой очистки процедура проверяет, нужно ли выполнять очистку в данный момент. Если плановое время не наступило или очистка отключена, процедура завершается без действий.
При выполнении условий запускается очистка данных от вычисленной из настроек очистки плановой даты.
В стандартных настройках физическое время начала удаления данных может быть сдвинуто до 1 часа, так как процедура выполняется раз в час.
video-recorder
Сервис отвечает за удаление устаревших видео-данных попыток.
Все параметры настройки очистки находятся в файле video-recorder.values.yaml.
Расписание и параметры очистки
Процедура запускается аналогично сервису platform-backend, но частота проверки настраивается через переменную:
RETENTION_CHECK_FREQUENCY- частота запуска процедуры проверки очистки в секундах (максимальный период - 1 час)
В стандартных настройках частота установлена на 3600 секунд, то есть очистка выполняется раз в час.
Удаление данных выполняется пакетами для распределения нагрузки:
RETENTION_BATCH_SIZE- количество записей, удаляемых за одну операциюRETENTION_BATCH_PAUSE- пауза в секундах между операциями удаления
Количество параллельных процессов очистки настраивается через video_recorder.retention_workers_count.
Увеличение числа процессов ускоряет очистку данных по разным аккаунтам, при этом данные одного аккаунта всегда обрабатываются одним процессом.
Особенности работы с MinIO
S3-хранилище не удаляет данные сразу, а перемещает их в папку .trash, которая очищается один раз в minio.delete_cleanup_interval секунд.
Важно, чтобы объем данных, удаляемых video-recorder за этот период, не вызывал I/O шторм. При изменении размера пакета или длительности паузы необходимо соответствующим образом корректировать minio.delete_cleanup_interval.
Режим обратной совместимости
Сервис не имеет режима обратной совместимости. При обновлении BAF с версии 1-14-0 и старше очистка данных средствами MinIO отключается. До включения плановой очистки данные хранятся бесконечно.
Ошибочный контент все также удаляется средствами MinIO — данные старше minio.error_data_retention_days удаляются автоматически.
Режим плановой очистки
Логика работы плановой очистки аналогична сервису platform-backend. После перехода в этот режим процедура проверяет необходимость выполнения очистки. Если плановое время не наступило или очистка отключена, процедура завершается без действий. При выполнении условий запускается очистка данных от вычисленной плановой даты.
В стандартных настройках физическое время начала удаления данных может быть сдвинуто до 1 часа, так как процедура выполняется один раз в час.