Pageserver

Stable

Как Pageserver хранит историю данных, отдаёт soft basebackup и позволяет запускать PostgreSQL с минимальным локальным набором данных на pod’е.

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

Pageserver — это внутренний storage‑сервис SPG99. Он нужен для того, чтобы база могла быстро стартовать, останавливаться и снова подниматься без привязки к постоянному локальному диску конкретного Compute.

Проще говоря, Pageserver — это сервис истории данных и bootstrap для PostgreSQL в SPG99. Он:

  • хранит storage‑метаданные timeline;
  • публикует layers и manifest в S3‑совместимое хранилище;
  • получает WAL‑историю от Safekeeper;
  • отдаёт Compute soft basebackup для cold start;
  • обслуживает remote read‑through на local miss.

Что самое важное в новой модели

Pageserver теперь отдаёт не тяжёлый полный рабочий слепок пользовательских relation files, а тонкий startup‑образ.

Это означает:

  • локально оставляется стартовый минимум для PostgreSQL;
  • системные каталоги и relmap материализуются сразу;
  • пользовательские relation files не обязаны лежать локально полностью;
  • Compute дочитывает их через Pageserver по мере необходимости.

Практически именно это и позволило сократить объём локальных данных на pod’е до минимально необходимого.

Как Pageserver участвует в жизненном цикле базы

Создание базы

Control Plane создаёт новый timeline в Pageserver.

Первый старт

При первом запуске Compute обращается в Pageserver за soft basebackup. Pageserver выбирает лучший bootstrap‑источник и отдаёт startup‑образ.

Работа запущенной базы

Пока база работает, Pageserver:

  • держит подписку на WAL;
  • materialize‑ит историю;
  • обслуживает page‑read‑through;
  • публикует новые layers и manifest.

Повторный запуск

При новом старте Pageserver снова отдаёт стартовое состояние, не требуя полного постоянного локального пользовательского набора на compute.

Почему это быстро

Pageserver ускоряет restart‑path за счёт нескольких факторов:

  • Compute не зависит от постоянного durable‑диска;
  • startup идёт от тонкого soft‑образа;
  • relation pages подтягиваются лениво;
  • bootstrap идёт потоково;
  • storage‑history материализуется постепенно.

Почему это надёжно

  • durability не хранится только в локальном PGDATA Compute;
  • источник WAL — Safekeeper quorum;
  • Pageserver собирает рабочее состояние из storage‑истории, а не из “единственного локального worker”.

Короткий итог

Pageserver в текущем SPG99 — это сервис, который сделал возможными:

  • soft basebackup;
  • минимальный локальный pod‑диск;
  • быстрый cold start;
  • безопасный restart без привязки базы к одному конкретному worker.