Бета-выпуск СУБД PostgreSQL 9.6 с поддержкой распараллеливания запросов

Представлен первый бета-выпуск СУБД PostgreSQL 9.6, ключевым новшеством в котором является поддержка распараллеливания операций последовательного сканирования записей (Sequential Scan), слияния запросов (join) и агрегирования данных. При распараллеливании операция разбивается на части и каждая часть разбирается отдельным обработчиком, после чего результаты работы каждого обработчика объединяются, что позволяет существенно увеличить скорость обработки запроса на системах с большим числом процессорных ядер. Выигрыш особенно заметен для ресурсоёмких запросов, таких как сопоставление по регулярным выражениям.

Другие улучшения:

  • Возможность создания кластерных конфигураций, включающих несколько запасных узлов, реплицируемых в синхронном режиме.
  • Новый режим синхронной репликации «synchronous_commit = remote_apply», при котором основной узел перед закрытием транзакции ожидает подтверждения приёма данных standby-узлом;
  • В модуль postgres_fdw, позволяющий логически объединить содержимое БД с нескольких серверов, добавлена поддержка операций слияния (join) и сортировки запросов, а также выполнения операций UPDATE и DELETE на внешнем сервере;
  • Новый API для создания горячих бэкапов, в котором метка резервной копии не записывается в директорию с данными, а возвращается как результат выполнения функции pg_stop_backup (), что позволяет защититься от проблем в случае краха во время бэкапа;
  • Снижено негативное влияние на работу больших таблиц операции «autovacuum», благодаря исключению операций повторной заморозки («refreezing») старых данных;
  • Реализована подсистема для отображения прогресса выполнения операций, например, организовано информирование о времени до завершения VACUUM;
  • В систему полнотекстового поиска добавлен новый оператор ‹-› или ‹DISTANCE›, определяющий расстояние между словами (например, можно осуществить выборку фраз, в которых слово «А» отделено от «B» заданным числом слов);
  • Добавлен модуль pg_visibility.

© OpenNet