СберТех выпустил новый релиз Platform V Pangolin — СУБД для высоконагруженных систем. В версии 6.4.0 продукт получил значительные обновления в функциональности для производительности и удобства сопровождения, а также незаметные для пользователей подкапотные изменения.
В этом обзоре собраны наиболее существенные изменения.
Добавлена поддержка ОС CentOS Stream 9 и Platform V SberLinux OS Server 8.10
Это одно из ключевых изменений для администраторов баз данных в обновленной версии. Так теперь выглядит актуальный список поддерживаемых операционных систем:
- РЕД ОС 7.3;
- РЕД ОС 8;
- Альт 8 СП;
- Альт 8 СП Релиз 10;
- Альт 9 Сервер;
- Альт 10 Сервер;
- Red Hat Enterprise Linux 8.7;
- Platform V SberLinux OS Server 8, 9;
- Astra Linux 1.7;
- CentOS Stream 9.
Появилась
возможность сжатия данных на уровне хранения
Объемы данных в информационных системах увеличиваются. Системы хранения данных становятся вместительнее и производительнее, но при этом не становятся доступнее. Более того, учитывая распространение виртуализации и возможности перераспределения ресурсов, они могут оказаться менее производительными для конечного пользователя.
Для решения этой проблемы в СУБД Pangolin добавлен механизм сжатия на уровне хранения данных.
Что отличает его от аналогов:
- возможность настройки на различных уровнях объектов, схем, табличных пространств;
- возможность настройки механизма сжатия в зависимости от размера и характера данных;
Новая функциональность позволяет экономить дисковое пространство за счёт сжатия данных до 90% и повышает быстродействие благодаря уменьшению количества чтений. Отдельно важно то, что администраторы БД могут действительно гибко управлять сжатием, например, сжимать старые секции. В результате снижаются накладные расходы и потребление CPU.
Обеспечен контроль целостности передачи WAL по сети
В СУБД Pangolin, как и в PostgreSQL, физическая репликация основана на передаче WAL-файлов между узлами. Это позволяет обеспечить защиту их целостности от повреждения, что может произойти, например, на этапе записи на диск.
Повреждение даже одного блока на мастер-узле может привести к невозможности применения журнала на реплике, а в результате — к потере реплики и отсутствию защиты. В обновленной версии СУБД Pangolin добавлен механизм проверки целостности WAL при передаче на реплику и его восстановление в случае повреждения.
Это позволяет дополнительно защитить систему от ошибок записи и повысить доступность данных.
Доработана функциональность глобальных индексов
В новой версии получили развитие глобальные индексы для секционированных таблиц. В частности:
- ускорены операции обслуживания благодаря пропуску пустых партиций;
- устранен техдолг: реализована поддержка глобальных индексов утилитами pg_squeeze, pg_repack и расширениями pg_outline, pg_profile;
- убраны артефакты после отмены операций CREATE INDEX/REINDEX;
- улучшено вычисление планов выполнения для случаев, когда недостаточно статистики;
- добавлена поддержка режима non-concurrently для операции объединения индексов (UNITE). Теперь она работает быстрее для конкретного индекса. Команда UNITE для этого режима стала транзакционной.
Возможность создавать глобальные индексы (в том числе уникальные) для секционированных таблиц ранее помогла мигрировать на СУБД Pangolin процессингу Сбера — одной из самых высоконагруженных систем компании. Функциональность появилась в релизе 6.4.1, а затем дорабатывалась в последующих релизах.
Реализован механизм обновления системных каталогов без изменения структуры данных
При переходе на новую версию продукта изменение данных системного каталога (добавление или изменение view, type, function и пр.) требует полного переноса данных для обновления системы. Этот процесс занимает много времени, и (в ряде случаев) дополнительное дисковое пространство, даже если изменения незначительны. Добавленный механизм позволяет выполнить обновление СУБД с незначительным изменением системного каталога, не прибегая к миграции данных или использованию pg_upgrade и в несколько раз быстрее. Решение работает для обновления с версии 6.1.0 и выше.
Обновлена функциональность для повышения производительности
- Реализован GUC-параметр log2_num_buf_partitions для управления количеством секций структуры BufferMapping.
- Добавлено управление размером и изменена структура кэша журнала состояния транзакций (как в PG17).
- Добавлены подсказки опережающего чтения с диска.
- Появилась возможность параллельного анализа.
Реализованы
прочие точечные изменения
Добавлено расширение pgvector, которое позволяет работать с векторными данными — хранить, индексировать и выполнять запросы.
Появилась поддержка смещения значения LSN (это уникальный идентификатор для отслеживания изменений в данных) после переноса БД через pg_dump и pg_restore.
Добавлена возможность поставки докер-образа СУБД Pangolin и поставки сборки с отладочными пакетами.
Предыдущие релизы
Больше о развитии Platform V Pangolin читайте в предыдущих обзорах обновлений (версия 6.3.0 и 6.2.0). Полностью функциональность продукта описана в технической документации.