Compute: обзор
StableРоль Compute в архитектуре SPG99, связь со storage‑контуром, soft basebackup и что это значит для пользователя.
Обновлено: 21 марта 2026 г.
Compute — это рабочий исполнительный слой PostgreSQL в SPG99. Именно он поднимает PostgreSQL, принимает клиентские подключения через Gateway и исполняет SQL‑запросы.
Главное в текущей модели сервиса: Compute — это не “вечный pod с полным набором пользовательских файлов на локальном диске”. В SPG99 он выступает как управляемый вычислительный слой над отказоустойчивым storage‑контуром.
Что входит в Compute
Внутри Compute находятся:
- PostgreSQL 17;
- расширение
spg99; - агент управления, который подготавливает bootstrap, TLS, managed‑config, readiness и связь с control plane.
Что изменилось в новой модели
Раньше пользователю было проще думать о compute как о worker, который при старте подтягивает “почти всю базу”. Теперь контракт точнее:
PGDATAна compute — ephemeral;- локальный диск — write‑back cache;
- durable‑состояние живёт в Pageserver + Safekeeper + object storage;
- запуск идёт через soft basebackup;
- локально остаётся только стартовый минимум для быстрого запуска PostgreSQL.
Это значит, что на поде теперь нет лишнего пользовательского дискового слоя “на всякий случай”. База стартует быстрее, а локальный диск работает именно как быстрый operational cache.
Роль Compute в цепочке SPG99
Упрощённо рабочий путь выглядит так:
Приложение / psql
-> Gateway
-> Control Plane
-> Provisioner
-> Compute
-> Pageserver + 3 Safekeeper
Роли сервисов в этой цепочке такие:
- Console — показывает статусы БД, DSN, логи, метрики и доступные действия.
- Gateway — единая PostgreSQL‑точка входа и встроенный pooler.
- Control Plane — управляет lifecycle и autoscaler‑состоянием.
- Provisioner — поднимает compute‑pod.
- Compute — запускает PostgreSQL, обслуживает SQL, использует local cache, пишет WAL в Safekeeper и читает данные через Pageserver.
- Pageserver — источник soft basebackup и remote read‑through.
- Safekeeper — контур надёжности WAL.
Как проходит обычный запуск
Жизненный цикл Compute в нормальном сценарии выглядит так:
- Пользователь создаёт БД или подключается к уже созданной БД.
- Control Plane понимает, что для БД нужен активный writer.
- Provisioner поднимает или назначает compute‑воркер.
- Compute получает soft basebackup и конфигурацию.
- PostgreSQL выходит в
ready. - Gateway передаёт клиентское соединение в готовый backend.
Как Compute участвует в autoscaler
В новой модели profile autoscaler не делает live resize уже работающего writer. Вместо этого:
- запускается candidate generation под новый профиль;
- candidate может быть подготовлен в
prepare_onlyрежиме; - платформа ждёт безопасное окно;
- Gateway замораживает новые checkout'ы и помогает выполнить drain;
- writer handoff завершается только после promote нового поколения.
Для пользователя это означает:
- профиль writer меняется безопасно;
- система не рискует session‑state и WAL‑корректностью ради “горячего resize”;
- важнее смотреть на
current_profile,target_profileиscale_state, чем на старое понимание “scale как число pod’ов”.
Что важно помнить пользователю
- Состояние
stopped— это нормальная часть serverless‑модели, а не авария. - Первое подключение после простоя может занять больше времени из‑за cold start.
- Локальный диск Compute нужен для скорости, но не является единственным источником надёжности.
- Правильная точка входа для приложения — Gateway, а не прямой адрес worker/pod.
- При переходе между профилями writer платформа создаёт новое поколение compute, а не “растягивает” старое.
