Cold start and idle behavior

Stable

Autostart через Gateway, idle stop и best practices для retry.

Обновлено: 4 февраля 2026 г.

spg99 оптимизирован под модель serverless compute: данные хранятся отдельно (Pageserver/S3), а compute с PostgreSQL может подниматься/гаситься по требованию.

Что такое cold start

Cold start происходит, когда для БД нет активного compute (state=stopped, target_scale=0):

  • вы открываете первое соединение на Gateway;
  • Gateway инициирует start (через CP);
  • после readiness compute соединение продолжает устанавливаться как обычный PostgreSQL коннект.

Текущая типичная длительность cold start: до ~5 секунд (< 5 с).

Idle stop

Чтобы не держать compute без нагрузки, CP может автоматически останавливать БД при простое:

  • проверка выполняется периодически;
  • если нет активных подключений и БД не использовалась дольше idle_timeout (по умолчанию ~5 минут), CP переводит target_scale в 0 и гасит compute.

Следующее подключение снова разбудит БД.

Рекомендации для приложений

  1. Всегда делайте retry на connect (экспоненциальный backoff, 2–5 попыток).
  2. Ставьте connect_timeout 5–10s, а общий дедлайн на установление соединения (включая retry) — 20–30s.
  3. Для критичных сервисов используйте «прогрев»:
    • заранее вызовите start через Console/CLI/API перед пиковым трафиком;
    • держите регулярный healthcheck/keepalive (если это допустимо по стоимости/политикам).
  4. Не держите «висящие» idle‑соединения: они ухудшают эффективность compute/pooling и мешают auto‑stop.

Что вы увидите в состоянии БД

  • stoppedstarting/bootingready — нормальный путь.
  • Если БД зависла в транзитном состоянии или долго в error — см. Troubleshooting.