# Backend Store

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Понять назначение, устройство и практику использования компонента **Backend Store** в MLflow.

## Предварительно

- [Tracking Server](tracking-server.md)

## Время

**2–3 ч**

---

## Назначение

**Backend store** — база данных **метаданных**: experiments, runs, parameters, metrics, tags, registry model versions.

## Поддерживаемые бэкенды

| URI схема | Использование |
|-----------|---------------|
| `sqlite:///path` | Локально, один пользователь |
| `postgresql://...` | Production, команда |
| `mysql://...` | Альтернатива PostgreSQL |
| `file:///path/mlruns` | File-based (legacy layout) |

## Что хранится в БД

- Имена и ID experiments
- Run ID, status, start/end time
- Key-value params и time-series metrics
- Ссылки на artifact URI (сами файлы — в artifact store)
- Model Registry: registered models, versions, stages

## Миграции

MLflow при старте сервера применяет **Alembic migrations** к схеме БД. При апгрейде версии MLflow — **бэкап БД** перед обновлением.

## Резервное копирование

- Ежедневный snapshot PostgreSQL
- Тест восстановления раз в квартал
- Artifact store бэкапится отдельно (S3 versioning)

## Производительность

- Индексы на `experiment_id`, `run_uuid`
- Архивация старых runs (скрипты или lifecycle policies)
- Не логируйте метрики каждую эпоху 1000 раз в секунду — агрегируйте

## Безопасность

- БД только в private network
- Учётная запись с минимальными правами
- Шифрование at rest (cloud managed)

---

## Самопроверка

1. Кратко опишите роль «Backend Store» в MLflow.
2. Назовите типичную ошибку при работе с этим компонентом.
3. Как этот компонент связан с соседними?

---

## Дальше

→ [Artifact Store](artifact-store.md)
