- BrainTools - https://www.braintools.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Адаптивное выполнение и оптимизация запросов для искусственного интеллекта и генеративных моделей 

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

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

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

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

В Postgres Pro Enterprise 17 улучшены инструменты для защиты данных:

  • pgpro_usage [9]. Модуль собирает статистику использования объектов базы данных и вызовов функций каждым пользователем и на её основе формирует отчёт о реально используемых привилегиях, выявляя избыточные права доступа. В отчёте указываются объекты, пользователи, их привилегии и роли, благодаря которым получены привилегии. 

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

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

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

  • Audit 2.0 [10]. Инструмент позволяет назначать аудит не для каждого пользователя, а для группы пользователей. Также можно использовать предустановленные группы аудита, например all DDL, all DML и all pros, которые позволяют отслеживать все команды DDL, DML и вызовы процедур. Это значительно ускоряет и упрощает использование средств аудита. 

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

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

Схема возможной реализации интеллектуального хранения данных

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

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

  • Сжатие. Перемещение данных в сжатое табличное пространство происходит автоматически через CFS.

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

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

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

Что нового в Postgres Pro Enterprise 17: от Proxima до интеллектуального управления данными - 4
  • Multimaster [13]. Ускорено применение транзакций на отстающем узле в режиме catchup, при котором узел сокращает отставание от других узлов кластера.

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

  • Автоматическое секционирование (pgpro_autopart [15]). Инструмент динамически создаёт секции при добавлении или изменении ключа секционирования данных в таблице, что избавляет от необходимости вручную создавать новые секции. Расширение позволяет автоматически создавать партиции при использовании интервального секционирования.

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

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

Автор: LesnoyChelovek

Источник [17]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/11653

URLs in this post:

[1] Proxima: https://postgrespro.ru/docs/enterprise/17/proxima

[2] pgpro_queue: https://postgrespro.ru/docs/enterprise/17/pgpro-queue

[3] pgpro_multiplan: https://postgrespro.ru/docs/enterprise/17/pgpro-multiplan

[4] Шаблонные планы: https://postgrespro.ru/docs/enterprise/17/pgpro-multiplan#PGPRO-MULTIPLAN-WILDCARDS

[5] AQE: https://postgrespro.ru/docs/enterprise/17/aqe

[6] памяти: http://www.braintools.ru/article/4140

[7] AQO Enterprise: https://postgrespro.ru/docs/enterprise/17/aqo

[8] ошибки: http://www.braintools.ru/article/4192

[9] pgpro_usage: https://postgrespro.ru/docs/enterprise/17/pgpro-usage

[10] Audit 2.0: https://postgrespro.ru/docs/enterprise/17/pg-proaudit

[11] pgpro_ilm: https://postgrespro.ru/docs/enterprise/17/pgpro-ilm

[12] BiHA: https://postgrespro.ru/docs/enterprise/17/biha-solution

[13] Multimaster: https://postgrespro.ru/docs/enterprise/17/multimaster

[14] pgpro_pwr: https://postgrespro.ru/docs/enterprise/17/pgpro-pwr

[15] pgpro_autopart: https://postgrespro.ru/docs/enterprise/17/pgpro-autopart

[16] PPEM: https://postgrespro.ru/products/PPEM

[17] Источник: https://habr.com/ru/companies/postgrespro/articles/877300/?utm_source=habrahabr&utm_medium=rss&utm_campaign=877300

www.BrainTools.ru

Рейтинг@Mail.ru
Rambler's Top100