Перейти к основному содержимому

# Конфигурация плановой очистки данных

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

Система очистки отвечает за удаление устаревших данных и позволяет настраивать расписание очистки с помощью 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 часа, так как процедура выполняется один раз в час.