Что нового в Postgres Pro Enterprise 17: от Proxima до интеллектуального управления данными. postgres.. postgres. PostgreSQL.. postgres. PostgreSQL. Администрирование баз данных.. postgres. PostgreSQL. Администрирование баз данных. базы данных.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных. Блог компании Postgres Professional.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных. Блог компании Postgres Professional. Высокая производительность.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных. Блог компании Postgres Professional. Высокая производительность. оптимизация базы данных.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных. Блог компании Postgres Professional. Высокая производительность. оптимизация базы данных. оптимизация запросов postgresql.. postgres. PostgreSQL. Администрирование баз данных. базы данных. безопасность баз данных. Блог компании Postgres Professional. Высокая производительность. оптимизация базы данных. оптимизация запросов postgresql. Хранение данных.
Что нового в Postgres Pro Enterprise 17: от Proxima до интеллектуального управления данными - 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • AQO 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: LesnoyChelovek

Источник

Rambler's Top100