How spg99 works: request flow

Stable

Поток запроса: от клиента через Gateway до CP, Provisioner, compute и S3.

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

Что происходит при первом и последующих подключениях к БД spg99.

  1. Клиент идёт на единый Gateway по DSN. Gateway валидирует SNI и проверяет lease для БД/tenant.
  2. Если compute отсутствует или в STOPPED, Gateway просит Control Plane запустить его. CP вызывает Provisioner и ставит state=creating/starting.
  3. Provisioner поднимает ВМ, передаёт агенту register_token, адреса Safekeeper/Pageserver и timeline. Агент делает hello в CP.
  4. CP отдаёт bootstrap‑спеку, агент вытягивает TLS‑сертификат, стартует PostgreSQL и подключает его к WAL/ Pageserver. CP меняет state=ready.
  5. Gateway устанавливает соединение от клиента до PostgreSQL. Для клиента это стандартный PostgreSQL‑протокол по TLS.
  6. CP отслеживает активные подключения и last_used_at. При длительном idle отправляет stop_db → Provisioner гасит ВМ, state=stopped. При следующем подключении цикл повторяется.

Обработка отказов: при падении ВМ CP поднимает новую по тому же timeline. Клиенты продолжают использовать тот же DSN, Gateway разруливает смену compute.