Приложение хочет сохранить заказ, чтобы вернуться к нему позже. Оно отправляет запрос, Postgres отвечает, а следующий запрос находит сохранённую строку. С этого простого действия начинается интерактивный разбор Postgres.

Дальше у приложения появляются новые вопросы. Как выполнить два изменения целиком? Почему подтверждённая запись переживает сбой? Что увидят два одновременных читателя? Почему старые версии строк продолжают занимать место?

Внутри — 70 коротких глав. Каждая начинается с конкретной задачи, показывает работу механизма и приводит к следующему вопросу. Можно проследить путь от страницы и WAL до номеров транзакций, снимков, изоляции, блокировок, VACUUM и autovacuum.

Отдельные истории посвящены планам запросов, EXPLAIN и EXPLAIN ANALYZE, результатам JOIN и трём алгоритмам их выполнения. У каждого встроенного типа индекса есть свой пример. Завершают маршрут триггеры, физическая и логическая репликация, чтение с отстающей реплики и переключение ведущего узла.

На экране — схема, короткое объяснение и кнопки повтора и продолжения. Полное объяснение текущего шага, SQL и источники доступны через оглавление: «Об этом шаге».

Материал основан на книге Егора Рогова и официальной документации Postgres. Анимации показывают причинный порядок событий; размеры объектов и длительности помогают проследить механизм.

Есть русская и английская версии. Идея подачи — из The Secret Lives of Data — Raft, как и в разборе Redis.

Открыть Postgres · Все визуализации