Экосистема PostgreSQL переживает один из самых динамичных периодов в своей истории. Из классической реляционной базы данных «слон» окончательно превращается в универсальную платформу данных, способную вытеснять специализированные NoSQL-хранилища, масштабироваться на сотни узлов и мгновенно поднимать тысячи микро-баз для интеграционного тестирования.
Сегодняшний обзор посвящен четырем знаковым событиям: выходу первого релиз-кандидата ветки Postgres 19 RC1, релизу открытого MongoDB-совместимого движка DocumentDB 1.0, феноменальному рекорду распределенного расширения Citus в 10 миллионов QPS и легковесному рантайму PGX.
Давай подробно разберем каждое новшество и посмотрим, какие практические преимущества они дают нашим проектам.
Postgres 19 RC1
Выход первого релиз-кандидата (RC1) означает, что состав возможностей девятнадцатой ветки окончательно заморожен, а команда сообщества перешла к финальному тестированию стабильности перед всеобщим релизом.
Главное новшество, которого администраторы баз данных ждали годами — нативная поддержка онлайн-репака таблиц:
-- Нативная реорганизация раздутой таблицы без эксклюзивной блокировки в Postgres 19
REPACK TABLE sales_orders CONCURRENTLY;
Раньше для борьбы с разрастанием таблиц (Table Bloat) приходилось либо ставить стороннее расширение pg_repack, либо мириться с блокировкой таблицы командой VACUUM FULL. В Postgres 19 механизм очистки встроен в ядро: сервер создает теневую копию данных, стримит дельту изменений через WAL и на лету подменяет указатели страниц без остановки чтения и записи.
Кроме того, в 19 ветке существенно ускорен параллельный вакуум индексов и добавлена оптимизация сканирования B-Tree деревьев при работе с UUID-ключами.
DocumentDB 1.0
Многие команды держат в инфраструктуре MongoDB исключительно ради гибкой схемы документов (JSON Document Store). Но содержать два независимых кластера СУБД — это двойные затраты на лицензии, мониторинг и бэкапы.
Проект с открытым исходным кодом DocumentDB 1.0 предлагает радикальное решение: полноценный протоколный шлюз, который принимает стандартные клиентские подключения MongoDB (порт 27017) и транслирует их в оптимизированные запросы к PostgreSQL поверх типа данных jsonb:
# Запуск контейнера DocumentDB поверх PostgreSQL
docker run -d --name documentdb-gateway \
-p 27017:27017 \
-e POSTGRES_URI="postgres://user:secret@pg-master.corp.local:5432/app_db" \
documentdb/gateway:1.0.0
Разработчик в коде приложения использует официальный драйвер mongodb для Node.js или Python, а под капотом данные надежно лежат в таблицах PostgreSQL с поддержкой транзакций ACID и точечных B-Tree индексов по полям документов.
Citus
Команда StackGres провела независимое тестирование распределенного расширения Citus и зафиксировала впечатляющий результат: открытый кластер Citus достиг производительности 10 000 000 транзакционных запросов в секунду (QPS).
Что особенно важно: для достижения этой цифры Citus потребовалось ровно в два раза меньше узлов данных, чем проприетарной распределенной системе Neki от PlanetScale. Секрет успеха кроется в оптимизации протокола междоузлового взаимодействия (Distributed Query Execution) и эффективной локализации транзакций в шардах.
Если твой монолитный PostgreSQL уперся в потолок по процессору и диску одной машины, шардирование через Citus позволяет расти линейно без переписывания SQL-запросов.
PGX
При запуске юнит-тестов и интеграционных тестов в CI/CD всегда стоит дилемма: использовать медленный Docker-контейнер с реальным Postgres или ненадежные моки в памяти (SQLite).
Проект PGX открывает третий путь: легковесный микро-рантайм ядра PostgreSQL, способный поднимать тысячи изолированных «одноразовых» баз данных прямо внутри одного операционного процесса. Инициализация базы занимает меньше 15 миллисекунд, а после завершения теста память мгновенно освобождается.
Синтез экосистемы
Выход Postgres 19 RC1 и развитие таких проектов, как DocumentDB и Citus, доказывают: экосистема инструментов PostgreSQL закрывает любые прикладные задачи современного инженера — от мобильного тестирования до терабайтного шардинга.
