Содержимое для авторизованных пользователей

Иван Панченко, Postgres Professional: о растущих возможностях российских СУБД для высоконагруженных систем

В интервью Иван Панченко, сооснователь российского разработчика продуктов для работы с данными Postgres Professional, рассказал о том, почему важно непрерывное слияние изменений PostgreSQL и Postgres Pro, что такое Postgres Pro Shardman и какие разработки готовится выпустить на рынок компания.

 Редакции СУБД Postgres Pro основаны на базе PostgreSQL. Чем они отличаются от опенсорсной системы?

— Мы развиваем несколько функциональных направлений СУБД: безопасность, производительность, надежность, масштабируемость, облегчение миграции. В нашей флагманской версии Postgres Pro Enterprise больше 100 разработок для удовлетворения требований крупных заказчиков.

Среди ключевых: BiHA (Built-in High Availability) встроенная в ядро система отказоустойчивого управления кластером, встроенный механизм сжатия данных CFS, который позволяет в разы сократить объем базы данных. Кроме этого, внедрены приоритизация ресурсов, модуль анализа исторической нагрузки для поиска ресурсоемких операций pgpro_pwr, расширение Multimaster, превращающее СУБД в синхронный кластер active-active без разделения ресурсов, интеграция с расширением Citus для обработки аналитических данных, инкрементальный бэкап, позволяющий быстро сбрасывать на диск только те данные, которые изменились с момента снятия полной резервной копии. В отличие от открытой версии PostgreSQL, где тоже есть такая возможность, у нас данные о том, какие блоки базы данных изменились с прошлого раза, копятся непосредственно в самой базе, поэтому инкрементальный бэкап можно получить мгновенно.

Большое внимание мы уделяем облегчению миграции с Oracle — в этой задаче помогает команда ораклистов, которая работает у нас под руководством Марка Ривкина с 2022 года. В последних версиях Postgres Pro уже появились системные пакеты в стиле Oracle, утилита для облегченной миграции кода и много других решений и функций, которые помогают значительно сэкономить время и ресурсы заказчиков при смене СУБД.

Подобного рода изменений в сравнении с открытой версией Postgres у нас очень много, в том числе механизмы для оптимизации, созданные с учетом особенностей конкретных SQL-запросов, например, в 1С, других сложных системах. К слову, Postgres Pro — первая российская СУБД, полностью совместимая с системой программ «1С:Предприятие». Мы давно выпускаем специальные версии для 1С, которые максимально адаптированы для работы с платформой и включают значительное количество оптимизаций.

— Совсем недавно вышла новая версия СУБД — Postgres Pro Enterprise 17 с большим количеством новых разработок. Что туда вошло?

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

Первое из них — расширение Proxima, где объединены функциональность прокси-сервера и управления пулом соединений. Функциональность прокси-сервера позволяет Proxima стать единой точкой клиентских подключений и перенаправляет запросы на ведущий сервер или лидер BiH-кластера. Благодаря управлению пулом соединений, Proxima оптимизирует потребление системных ресурсов при больших нагрузках.

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

Важное внедрение — управление жизненным циклом информации. Новое расширение pgpro_ilm позволяет переносить редко используемые отношения в более дешёвое хранилище по аналогии с функцией управления жизненным циклом информации (information lifecycle management, ILM) в Oracle. Сейчас расширение позволяет перемещать обычные таблицы и секции секционированных таблиц.

Мы продолжаем активно работать и представим несколько новых разработок в ближайшее время.

— Postgres Pro — единственная российская СУБД, обновленные версии которой выходят уже через несколько недель после выхода открытой СУБД PostgreSQL. Рекордные для рынка сроки. Почему это важно?

— Мы постоянно работаем над тем, чтобы сокращать разрыв между выходами релизов PostgreSQL и Postgres Pro. Новые ванильные версии возникают не просто так: в них исправляются уязвимости, присутствуют важные доработки — фичи, которые должны вовремя, а лучше первыми, получать наши заказчики. Если прекратить забирать изменения из СУБД с открытым кодом, через какое-то время коммерческие продукты на ее основе неизбежно устареют и станут представлять серьезную угрозу для информационных систем заказчиков. Нам, как разработчику, важно обеспечить максимальную защиту и свести любые риски к минимуму.

Во-вторых, мы входим в ТОП-3 крупнейших мировых контрибьюторов открытой СУБД PostgreSQL: отправляем в сообщество больше 100 патчей в год и во многом определяем развитие системы. Нам важно находиться на острие технологического прогресса. Это невозможно делать без постоянных обновлений.

Несколько лет назад мы перешли к практике непрерывного слияния изменений с PostreSQL. Делаем это постоянно, практически ежедневно, как только изменения принимаются в открытой версии. Благодаря такому подходу мы свели техническое отставание к минимуму: выпускаем обновленную версию Postgres Pro Standard всего через несколько дней после выхода PostgreSQL, а Postgres Pro Enterprise — через несколько недель.

— Ранее вы объявили о выходе в широкое пользование новой СУБД Shardman. Чем она отличается от других продуктов и какие задачи решает?

— Postgres Pro Shardman решает задачи построения горизонтально масштабируемого отказоустойчивого кластера до сотни серверов. Эту СУБД мы создали специально по запросу крупных заказчиков, чьи системы находятся под высокой транзакционной нагрузкой, с которой один сервер не способен справиться. В этом случае база данных распределяется на несколько серверов, чтобы каждый из них работал со своей частью базы, это называется шардингом.

Вплоть до нынешнего момента эту задачу решали только внешними инструментами на уровне приложения. Однако программисту намного проще, когда шардинг прозрачно реализуется внутри базы данных. Именно это и позволяет сделать Postgres Pro Shardman. Важно, что при этом гарантируется высокий уровень изоляции транзакций и целостности данных. Это значит, что, например, при переводе денежных средств в банковской системе из базы данных на одном сервере в базу данных на другом, деньги не пропадут, даже если случится авария и придется восстанавливаться с резервной копии. Система уже входит в Реестр российского ПО, получила сертификацию ФСТЭК.

— Какие у Postgres Pro глобальные направления в работе? Есть ли дорожная карта, которой следуете?

— Конечно. В среднесрочной перспективе у Postgres Pro есть несколько направлений:

  • Поддержка баз данных большого размера: распределенная обработка на десятках серверов, поддержка кластеров с минимальным временем простоя и другие возможности.
  • Высокопроизводительные и надежные машины баз данных.
  • Удобство использования. СУБД должна быть удобной и универсальной, в реальном времени поддерживать как транзакционную, так и аналитическую нагрузку.
  • Технологии искусственного интеллекта: адаптивность, работа с векторными данными и так далее.
Прокрутка наверх