Как стать автором
Обновить
341.13
Postgres Professional
Разработчик СУБД Postgres Pro

Что нового в Postgres Pro Enterprise 17: от Proxima до интеллектуального управления данными

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.3K

Объём статьи не позволяет детально описать все новшества вышедшей версии Postgres Pro Enterprise 17, поэтому мы решили опубликовать краткий обзор со ссылками на более детальную информацию.

Proxima — три в одном для масштабирования, отказоустойчивости и производительности

Забудьте о пулерах, прокси и балансировщиках нагрузки. Proxima — новая технология, встроенная в ядро СУБД Postgres Pro Enterprise, которая объединяет все эти функции. Это делает работу эффективнее и снижает задержки. Что это даёт?

  • Пул соединений. Proxima создаёт несколько подключений, которые могут быть использованы для большого количества клиентских сессий. Это позволяет клиентам устанавливать соединения с минимальными задержками, минуя затратные по времени операции создания соединений и выделение оперативной памяти для пользовательских процессов. Proxima также снижает нагрузку на мастера на шифрование трафика и авторизацию пользователей. Клиентские подключения используют готовые соединения из пула, а значит, ресурсы расходуются эффективно.

  • Проксирование запросов. Proxima автоматически определяет назначенного «лидера» в кластере BiHA и прозрачно перенаправляет клиентские запросы на него, даже если клиент изначально подключился к реплике. Это избавляет приложения от необходимости самостоятельно следить за изменениями в топологии кластера и гарантирует, что запросы на запись всегда попадают на нужный узел.

  • Балансировка нагрузки (ещё в разработке). Proxima будет отслеживать нагрузку и динамически распределять входящие соединения между узлами отказоустойчивого кластера. Такой подход обеспечивает равномерное распределение нагрузки между узлами, что предотвращает перегрузку отдельных реплик и максимизирует общую производительность системы.

Эффективное управление очередями прямо в базе данных 

Для работы с асинхронной обработкой сообщений подходит pgpro_queue. Это расширение позволяет управлять очередями сообщений прямо в Postgres Pro Enterprise, без использования сторонних сервисов. Таким образом можно реализовать сложную бизнес-логику внутри базы данных. pgpro_queue создаёт очереди, в которые добавляются сообщения и которые получатели сообщений могут эффективно обрабатывать.

  • Транзакционность. Сообщение будет либо успешно обработано, либо вернётся в очередь для повторной попытки. В случае сбоя в обработчике сообщения, оно автоматически вернётся в очередь для повторной попытки обработки. При сбое в обработчике соответствующая транзакция откатывается, и механизм retry on rollback не просто возвращает его в очередь, но и устанавливает отсрочку видимости для предотвращения зацикливания.

  • Приоритеты, фильтрация и исключения. Поддерживается не только последовательная обработка сообщений, но и приоритизация, фильтрация сообщений по атрибутам и возможность исключить из очереди сообщения, которые не были обработаны в течение определённого времени.

  • Модель хранения сообщений. Сообщения в очереди хранятся до тех пор, пока их не прочитают. Все сообщения, включая их состояния, также сохраняются при перезапуске Postgres или переключении на реплику. Это делает систему более надёжной и отказоустойчивой.

Новые инструменты для управления планами запросов 

В Postgres Pro Enterprise 17 улучшены инструменты для работы с планами выполнения запросов, что особенно оценят те, кто заботится о производительности.

  • pgpro_multiplan. Это расширение заменяет устаревший sr_plan и позволяющее хранить неограниченное количество планов, одобренных администратором базы данных, для каждого запроса. Система автоматически выбирает оптимальный план на основе параметров запроса, а поддержка переноса планов между серверами упрощает администрирование и повышает стабильность работы системы. В расширение добавлен новый тип зафиксированных планов — hintset, который представляет собой набор указаний, сформированных на основе замороженного плана выполнения, включая значения переменных окружения оптимизатора, типы соединений, порядок соединений и методы доступа к данным, аналогичные тем, что поддерживаются расширением pg_hint_plan. В отличие от предыдущих типов планов, hintset привязан не к уникальным идентификаторам объектов (OID), а к их именам, что обеспечивает устойчивость плана к изменениям в базе данных, таким как пересоздание таблиц или добавление полей.

  • Шаблонные планы. В Postgres Pro Enterprise 17.2.2 появилась привязка одного плана к группе запросов, отличающихся только именами таблиц. В именах таблиц можно использовать wildcard’ы , что упрощает управление планами для запросов с динамическими именами таблиц, особенно для пользователей 1С (temp_tab_*).

  • Ассистент регистрации запросов. Автоматизирован процесс выбора и сохранения запросов для управления планами. Все выполняемые запросы с планами сохраняются в специальной таблице, что позволяет администраторам удобно выбирать и «замораживать» планы, не работая с текущими запросами в реальном времени. Упрощает механизм «захвата» планов, фиксируя id + планы.

Адаптивное выполнение и оптимизация запросов

Postgres Pro Enterprise 17 предлагает решения, которые автоматически подстраиваются под нагрузку и помогают ускорить выполнение сложных запросов:

  • AQE (Adaptive Query Execution). Система автоматически обнаруживает долго выполняющиеся запросы и «на лету» отправляет их на повторное планирование и выполнение. AQE может перезапускаться в случае превышения времени выполнения, ошибок планировщика или переполнения памяти бэкенда. В качестве триггеров теперь используется не только время, но и память и нарушение кардинальности. Это позволяет оптимизировать выполнение запросов в реальном времени. Поддерживается extended-протокол/prepared statements.

  • AQO Enterprise. Модуль, поставляемый начиная с релиза Postgres Pro Enterprise 17.2.2, постоянно обучается на всём массиве выполняемых запросов, корректирует ошибки планировщика и не требует ручного вмешательства. AQO Enterprise использует историю выполнения запросов и корректирует планы на основе полученных знаний, обеспечивая максимальную производительность. Он задействует механизм оценки кардинальности Delta Learning, автоматически передаёт базу знаний на реплики через WAL.

Инструменты контроля и защиты 

В Postgres Pro Enterprise 17 улучшены инструменты для защиты данных. Например, модуль pgpro_usage собирает статистику использования объектов базы данных и вызовов функций каждым пользователем и на её основе формирует отчёт о реально используемых привилегиях, выявляя избыточные права доступа. В отчёте указываются объекты, пользователи, их привилегии и роли, благодаря которым получены привилегии. 

Пример отчёта pgpro_usage
Пример отчёта pgpro_usage

Специалист по информационной безопасности видит, какие права пользователи используют или не используют. Соответственно, он может убрать ненужные права и повысить безопасность. За сбор статистики отвечают pg_stat_all_tables_per_user и pg_stat_all_functions_per_user.

Интеллектуальное хранение данных с помощью pgpro_ilm

Расширение pgpro_ilm позволяет автоматически перемещать на более дешёвые диски редко используемые данные и, если необходимо, сжимать их.Таким образом можно экономить место и эффективно использовать ресурсы, перемещая таблицы или их части в другие хранилища с разными характеристиками. 

Схема возможной реализации интеллектуального хранения данных
Схема возможной реализации интеллектуального хранения данных
  • Температурная карта. Для каждой таблицы и секции отслеживается время последнего доступа к данным (чтение и модификация). На основе этой информации формируется температурная карта, которую pgpro_ilm использует для отслеживания «устаревших» данных.

  • Политики. Специалист задаёт политики  декларативно, определяя, что делать с данными (перемещение, сжатие) в зависимости от времени последнего доступа или модификации. Поддерживаются политики по no access и no modification. Политики выполняются автоматически (scheduler).

  • Сжатие. Упаковка редко модифицируемых данных выполняется автоматически, как перемещение их в сжатое с использованием CFS табличное пространство.

Инфраструктура и удобство

В Postgres Pro Enterprise 17 добавили новые функции, которые делают настройку, мониторинг и управление кластерами проще. Это даёт администраторам больше возможностей для оптимизации работы и создания гибкой, масштабируемой инфраструктуры.

  • Улучшения BiHA. Добавлена возможность вызова пользовательских SQL-функций при добавлении/удалении узлов или других событиях в кластере BiHA, например при смене «лидера». Добавлена роль пользователя biha_callbacks_user для выполнения обработчиков. Для конфигурации из двух узлов — «лидер» и «ведомый» — добавлена возможность установить облегченный вариант BiHA («рефери») без пользовательской БД на третьем узле. Добавлена возможность размещать реплику под контролем BiHA в удалённый ЦОД, при сбое всего основного ЦОД администратор БД легко может превратить эту реплику в «лидера».

  • Multimaster. Ускорено применение транзакций на отстающем узле в режиме catchup, при котором узел сокращает отставание от других узлов кластера.

  • pgpro_pwr. Добавлено отслеживание версий расширений и возможность скрытия данных для определённых баз данных в отчёте. Модуль обновлен до версии 4.8.

  • Улучшенное управление секционированными таблицами. В команду ALTER TABLE добавлены две подкоманды: SPLIT PARTITION разделяет одну секцию на несколько, а MERGE PARTITIONS объединяет несколько секций в одну. Кроме того, расширение pgpro_autopart динамически создаёт секции при добавлении или изменении ключа секционирования данных в таблице, что избавляет от необходимости вручную создавать новые секции. Расширение позволяет автоматически создавать партиции при использовании интервального секционирования.

  • PPEM 2.0. Предложены новая архитектура и платформа на Golang, обновлённый UI, визуализация планов запросов, отображение состояния кластеров, дерева блокировок, профиля ожиданий сессии, восстановление в режиме Point-In-Time-Recovery, управление объектами схемы БД, автоматическая настройка экземпляра под 1С/OLTP.

Представленные нововведения охватывают широкий спектр задач, включая повышение производительности и масштабируемости, усиление безопасности и упрощение администрирования. Инструменты, такие как Proxima, pgpro_queue, pgpro_multiplan, AQE и pgpro_ilm, предоставляют разработчикам и администраторам баз данных дополнительные возможности для создания более эффективных и надёжных приложений.

Теги:
Хабы:
Всего голосов 12: ↑12 и ↓0+15
Комментарии0

Публикации

Информация

Сайт
www.postgrespro.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Иван Панченко