Три базовых состояния
Для повседневной эксплуатации достаточно различать три состояния:
| Состояние | Что происходит | Что видит приложение |
|---|---|---|
active | compute запущен и обрабатывает соединения | обычная работа PostgreSQL |
idle | активного compute нет, durable state сохранён | новых запросов ещё нет, база спит |
wake-up | платформа поднимает compute по первому запросу | первое подключение может занять больше времени |
Эта модель проста, но она закрывает почти все реальные вопросы эксплуатации: когда платить за compute, когда ожидать cold start и в какой момент retry является штатным поведением.
Что стоит предусмотреть приложению
Приложению не нужен отдельный режим «работы с serverless PostgreSQL», но полезно заложить несколько стандартных практик:
- разумный
connect_timeout; - retry на первое подключение после простоя;
- таймауты и pool-настройки без предположения, что compute активен всегда;
- корректное логирование неудачных первых попыток соединения.
Это не специфично только для SPG99 — это обычная инженерная дисциплина при работе с системами, у которых есть переходы жизненного цикла.
1. открыть соединение
2. если timeout или временная ошибка подключения -> повторить попытку
3. после успешного подключения -> продолжить работу
4. не менять DSN и не запрашивать новый endpointПравила эксплуатации, которые стоит принять заранее
Чтобы модель оставалась предсказуемой, команде полезно заранее договориться о нескольких правилах:
- какие окружения действительно можно переводить в auto-stop;
- какие SLO допустимы для первого подключения после периода idle;
- какие migration и batch-job сценарии должны запускаться только после успешного wake-up;
- какие dashboards и алерты показывают частоту wake-up и фактическое время простоя.
Когда эти правила определены, lifecycle базы перестаёт быть «магией» и становится обычной частью эксплуатации.
Когда auto-stop лучше ограничить
Если база участвует в длительных интеграционных тестах без права на дополнительную задержку первого запроса, либо если сценарий требует непрерывного тёплого состояния, auto-stop стоит настраивать осторожнее или отключать для конкретной базы.
Идея не в том, чтобы обязательно остановить всё подряд. Цель — отключать compute там, где это безопасно и выгодно. Поэтому зрелая эксплуатация всегда начинается с классификации окружений, а не с глобального правила для всех баз одновременно.
Что почитать дальше
Вебинар SPG99: PostgreSQL без оплаты простоя для dev/test, preview и внутренних сервисов
Это не общий разговор про облака и не обзор интерфейса. В эфире создадим базу в Console, подключимся через psql, посмотрим путь stopped → booting → ready, дадим базе уйти в idle и отдельно разберём контролируемое переключение между writer-профилями L1 и L2.
Как SPG99 удерживает один DSN и не теряет состояние при остановке compute
Снаружи SPG99 выглядит как обычный PostgreSQL по одному DSN. Внутри платформа разделяет Gateway, Control Plane, worker и durable storage — поэтому compute можно останавливать без потери данных и без смены адреса подключения.
