3. Различия между Tantor SE 15 и PostgreSQL 15#

3. Различия между Tantor SE 15 и PostgreSQL 15

3. Различия между Tantor SE 15 и PostgreSQL 15

3.2. Улучшения ядра

  • 64-битный счетчик транзакций.

  • Автономные транзакции.

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

  • Увеличено количество разделов в общих буферах.

  • Оптимизированный алгоритм сжатия данных pglz (~1,4 раза).

  • Уменьшено количество блокировок страниц данных в общих буферах.

  • Сжатие в libpq.

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

  • Оптимизированный процесс восстановления репликации (fadvise на резервном сервере).

  • Добавлена возможность завершения транзакции на основе предустановленного тайм-аута.

  • Возможность добавления новых зарезервированных соединений, количество которых заранее определено в параметре reserved_connections в файле конфигурации. Это позволяет резервировать слоты соединения для пользователей, не являющихся суперпользователями. Слоты, зарезервированные через этот параметр, доступны только пользователям, которые могут иметь новую предопределенную роль pg_use_reserved_connections.

  • Улучшения SIMD для архитектур x86 (SSE2) и ARM (NEON) были введены, что привело к улучшению обработки транзакций. Эти достижения также способствуют более быстрым операциям с jsontext, тем самым повышая общую эффективность обработки потоков данных.

  • Добавлена оптимизация для линейного поиска для процессоров архитектуры ARM64.

  • При отправке WAL на резервный сервер, проверяется контрольная сумма блоков данных.

3.3. Дополнительные поставляемые утилиты

  • pgcompacttable - инструмент, разработанный для уменьшения размера раздутых таблиц и индексов без использования тяжелых блокировок. Он предназначен для переорганизации данных в таблицах и восстановления индексов с целью освобождения дискового пространства без влияния на производительность базы данных.

3.4. Дополнительные модули (расширения)

credcheck - обеспечивает проверку учетных данных, во время создания пользователя, смены пароля и переименования пользователя. Используя это расширение, мы можем определить набор правил для разрешения определенного набора учетных данных и набор правил для отклонения определенного типа учетных данных. Расширение разработано на основе хука check_password_hook в PostgreSQL.

hypopg - добавляет поддержку гипотетических индексов. Гипотетический, или виртуальный индекс — это индекс, который в действительности не существует, и поэтому его создание не требует ресурсов ЦП, диска или каких-либо ресурсов. Они полезны, чтобы знать, могут ли определенные индексы повысить производительность для проблемных запросов. Дает возможность узнать, будет ли СУБД использовать эти индексы или нет, не тратя ресурсы на их создание.

orafce - представляет собой набор функций, обеспечивающих совместимость с базами данных Oracle. Эти функции позволяют упростить миграцию на Tantor и снизить затраты на перенастройку приложений.

Колоночно-ориентированный формат (ORC) - добавляет колоночный метод хранения данных с возможностью их сжатия для снижения объема ввода-вывода и достижения высокой производительности. Подходит для append-only, например time series данных, и витрин корпоративных хранилищ.

page_repair - предназначен для восстановления отдельных поврежденных страниц с использованием резервных данных с сервера репликации. Он позволяет сэкономить время на операции восстановления, так как не требует восстановления всех данных, а только отдельных страниц.

pg_background - позволяет выполнять команды в фоновом режиме, такие как VACUUM и CREATE INDEX CONCURRENTLY, из SQL, а также запускать автономные транзакции.

pg_cron - это планировщик заданий на основе cron, работающий внутри базы данных как расширение. Он использует тот же синтаксис, что и обычный cron, и позволяет планировать выполнение команд непосредственно из базы данных Tantor.

pg_hint_plan - позволяет настраивать планы выполнения SQL-запросов с использованием так называемых "подсказок" в комментариях SQL. Это дает возможность компенсировать ошибки планировщика, возникающие в критических случаях.

pg_partman - позволяет создавать и управлять партиция ми таблицы как на основе времени, так и на основе последовательностей.

pg_qualstats - сохраняет статистические данные по найденным предикатам в операторах WHERE и предложениях JOIN. Это позволит проанализировать наиболее часто выполняемые квалификаторы (предикаты) в вашей базе данных, а также идентифицировать коррелированные столбцы, определяя, какие столбцы чаще всего запрашиваются вместе.

pg_repack - позволяет удалять раздувание таблиц и индексов (BLOAT) и, при необходимости, восстанавливать физический порядок кластеризованных индексов. В отличие от CLUSTER и VACUUM FULL, он работает онлайн, не удерживая эксклюзивную блокировку обрабатываемых таблиц во время обработки.

pg_store_plans - предоставляет средства для отслеживания статистики плана выполнения для всех операторов SQL, выполняемых сервером Tantor.

pg_variables - предоставляет функции для работы с переменными различных типов в текущей сессии пользователя.

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

pgaudit - обеспечивает подробное ведение журнала сессий и/или объектов через стандартный механизм регистации Tantor DBMS. Целью pgAudit является предоставление пользователям Tantor DBMS возможности создания журналов аудита, которые часто требуются для обеспечения соответствия государственным стандартам, стандартам ISO или условиям сертификации финансовых услуг. Аудит - это официальная проверка счетов физического лица или организации, обычно проводимая независимым органом. Информация, собранная pgAudit, правильно называется «журналом регистрации» или «журналом аудита». В этой документации используется термин "журнал аудита".

pgq - предоставляет универсальную высокопроизводительную не заблокированную очередь с простым API, основанным на функциях SQL.

pgsql-http - дает возможность написать триггер, вызывающий веб-сервис, способный вернуть результат, либо заставить этот сервис обновляться в соответствии с новым состоянием базы данных.

pgauditlogtofile - это дополнение к pgAudit, которое перенаправляет строки аудита в отдельный файл, вместо использования диспетчера журналирования сервера PostgreSQL. В итоге мы получаем файл аудита, который можно легко ротировать, не загрязняя журналы сервера этими сообщениями. Журналы аудита в системах с высокой нагрузкой могут очень быстро расти. Это расширение позволяет автоматически ротировать файлы на основе заданного количества минут.

3.5. Дополнительно поставляемые программы:

  • Tantor Platform: полнофункциональная модульная платформа для администрирования и мониторинга Tantor RDMS и большинства кластеров, основанных на PostgreSQL. Платформа упрощает ежедневную работу с RDBMS и значительно упрощает управление RDBMS. Функциональность программного обеспечения включает: умный и простой пользовательский интерфейс, автоматическую адаптивную настройку кластера, обзор системы, оповещения и мониторинг, автоматическую проверку работоспособности и аудит схемы, выполнение задач обслуживания через графический интерфейс, профилирование запросов и администрирование нескольких серверов в одном месте;

  • pg_anon: это самостоятельная программа на Python для работы с СУБД Tantor или PostgreSQL для маскировки и анонимизации данных во время миграции данных между производственной и тестовой средами;

  • wal-g: это инструмент создания зашифрованных, сжатых резервных копий Tantor SE (полных и инкрементных) и их отправки/получения из/в хранилища без сохранения в файловой системе;

  • pg_configurator: инструмент настройки PostgreSQL;

  • pg_cluster: Ansible playbook для создания кластера PostgreSQL высокой доступности на базе Patroni.

3.6. Заметки к релизу

Первый релиз Tantor SE — это 15.2.0. Существенные изменения можно найти на соответствующей странице.

Все остальные изменения см. в Примечаниях к выпуску.