На прошлой неделе состоялся релиз новой 16 версии СУБД PostgreSQL. Давайте посмотрим, что нам приготовили.
Наиболее значимые изменения коснулись логической репликации, а именно добавили две опции:
CREATE SUBSCRIPTION sub CONNECTION ” PUBLICATION pub WITH (copy_data = on, binary=true, streaming=parallel);
- binary = true – позволяет сделать первичную инициализацию используя бинарный формат – ускорение до 30-50%
- streaming=parallel – позволяет выполнять репликацию текущих изменений, пока они еще не зафиксированы. Позволяет улучшить производительность до 100%, особенно при использовании синхронного коммита в режиме remote_apply.
Более подробно с примерами можно ознакомиться в статье.
Также теперь можно строить каскадную логическую репликацию и улучшенное построение active-active вариантов логической репликации одной таблицы для одновременных вставок и апдейтов.
Конечно в каждой новой версии улучшаются моменты по оптимизации производительности, а именно:
- ускорена работа bulk load инструмента COPY TO в некоторых кейсах до 300%
- улучшено построение планов планировщиком для агрегатных функций c distinct и order by, а также некоторых других
- добавлена поддержка балансировки нагрузки на стороне клиентов, использующих библиотеку libpq. Теперь клиент может подключаться к разным хостам, которые могут выбираться как в определённом, так и в случайном порядке. Если хост недоступен, будем пытаться подключиться к другому серверу.
Внесены небольшие изменения в мониторинг – а именно добавлено поле в pg_stat_all_tables
со временем последнего сканирования таблицы и ряд других незначительных правок.
В целом релиз получился удачным, но как обычно, для продакшн я рекомендую подождать минимум 2 минорной версии, т.е. 16.2 с фиксом багов.
Добавить комментарий