Базы данных: обзор

Stable

Как в SPG99 устроена пользовательская модель базы: lifecycle writer, durable storage и новые profile/autoscaler‑поля.

Обновлено: 21 марта 2026 г.

В SPG99 база данных — это не только SQL‑сущность внутри PostgreSQL, но и управляемый ресурс платформы с собственным lifecycle.

Что включает в себя база в SPG99

Для пользователя база обычно ассоциируется со следующими параметрами:

  • имя;
  • size;
  • состояние (state);
  • timeline и storage‑привязка;
  • runtime‑поля вроде worker_id, current_scale, target_scale, active_connections.

В новой модели полезно также смотреть на:

  • current_profile;
  • target_profile;
  • candidate_profile;
  • scale_state;
  • freeze_new_checkouts.

Главное отличие от “обычной VM с PostgreSQL”

В SPG99 durable‑состояние базы живёт в storage‑контуре платформы, а compute запускается по требованию. Поэтому:

  • база может находиться в stopped, и это нормально;
  • при первом подключении платформа поднимет writer автоматически;
  • после простоя writer может быть снова остановлен;
  • это не означает потерю данных.

Что изменилось на compute‑стороне

В новой версии платформы локальный pod держит только минимальный набор данных для старта PostgreSQL. Старт идёт через soft basebackup, а пользовательские relation pages подтягиваются лениво по мере обращения.

Для пользователя это значит:

  • cold start стал легче и чище;
  • локальный диск writer — рабочий cache, а не “главный дом” базы;
  • durability по‑прежнему обеспечивается storage‑цепочкой платформы.

Базовый жизненный цикл

Упрощённо пользователь видит такую схему:

create -> stopped / booting -> ready -> idle -> stopped -> deleting

Но теперь у активной базы может быть и дополнительный профильный lifecycle:

STEADY -> PREPARING -> FREEZING -> DRAINING -> ... -> COOLDOWN

Что важно в ежедневной работе

  • state показывает lifecycle БД;
  • size показывает пользовательский класс ресурса;
  • current_scale / target_scale помогают понять, активен ли writer;
  • current_profile / target_profile показывают профиль writer;
  • scale_state показывает, идёт ли controlled handoff;
  • worker_id полезен для диагностики, но не является стабильным бизнес‑идентификатором.

Практический смысл

Пользовательская модель SPG99 даёт хороший баланс:

  • база создаётся быстро;
  • простаивающий writer не расходует ресурсы вечно;
  • запуск и остановка выполняются автоматически;
  • durable‑данные не зависят от жизни одного worker;
  • profile handoff выполняется безопасно и прозрачно через autoscaler.

Именно поэтому stopped и даже временный freeze_new_checkouts нужно воспринимать как часть нормальной serverless‑эксплуатации, а не как аварию.