Среди ключевых изменений стоит выделить поддержку 64-битного счетчика транзакций в базе данных, позволяющего обеспечить большую емкость и производительность. Это особенно важно для крупных организаций с высокой нагрузкой БД. Обновленный счетчик обеспечивает более надежную и безопасную работу БД, поскольку позволяет избежать проблем с превышением лимита транзакций и потерей данных.
В новом релизе благодаря добавлению параметра origin в команду CREATE SUBSCRIPTION появилась возможность создавать двунаправленную логическую репликацию, которая позволяет передавать изменения из одной БД в другую и наоборот, что обеспечивает синхронизацию данных в режиме реального времени. Данные можно синхронизировать между несколькими БД, находящимися на разных физических серверах. Таким образом можно добиться повышенной отказоустойчивости системы и непрерывности бизнес-процессов при отказе одного из серверов. Кроме того, распределение нагрузки между несколькими серверами способствует повышению производительности БД в целом.
В версии Tantor SE 15 реализована поддержка сжатия в библиотеке libpq. В ее конфигурации теперь есть параметр libpq_compression, поддерживаются алгоритмы сжатия lz4 и zlib. Это существенно ускоряет передачу данных и работу приложений, уменьшает нагрузку на сеть и потребление памяти на сервере, а также экономит место на диске.
Доработки затронули и ядро СУБД Tantor: внедрен метод SIMD (Single Instruction, Multiple Data), позволяющий повысить производительность продукта. Более эффективное использование ресурсов процессора особенно заметно при обработке больших массивов данных либо сложных данных, таких как тексты и JSON. Поддержка SIMD ускоряет запросы, которые используют математические операции, на несколько порядков. Также оптимизирован линейный поиск, обеспечена поддержка SSE2 (SIMD для процессоров Intel и AMD архитектуры x86) и SIMD NEON (SIMD для процессоров ARM).
Среди нововведений стоит отметить возможность резервировать подключения для пользователей, не являющихся superuser. Это происходит с помощью нового параметра конфигурации reserved_connections, доступного в файле postgresql.conf. Еще одно новшество — это параметр transaction_timeout, который позволяет отменить любую транзакцию, если она продолжается дольше указанного интервала времени, и применим как к явным, так и к неявным транзакциям.
В новой версии СУБД Tantor появилась поддержка автономных транзакций в PL/pgSQ: добавлено расширение языка PL/pgSQL для автономных транзакций, что дает возможность независимо фиксировать или отменять дочернюю транзакцию, не влияя на то, что происходит с текущей (например, для ведения журнала аудита). Расширение реализует автономные транзакции через механизм фоновых процессов. В будущих релизах разработчики планируют обеспечить поддержку расширения языка PL/Python и SQL.
«Мы провели большую работу в части оптимизации ядра под высокие нагрузки: добавили 64-битных счетчик транзакций и набор важных расширений, — отмечает Вадим Яценко, генеральный директор «Тантор Лабс». — Наша команда подходит очень ответственно к ко всем этапам разработки продукта и уже на стадии бета-тестирования выявляет ошибки и погрешности, чтобы предоставить нашим заказчикам высокопроизводительный, надежный и удобный инструмент для работы с данными».