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

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

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

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

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

  • Увеличение производительности системы управления базами данных (СУБД) при большом количестве одновременных пользователей.

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

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

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

  • libpq сжатие.

  • Устранение лишних соединений при объединении таблицы с самой собой.

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

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

  • Возможность завершить транзакцию на основе заданного времени ожидания.

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

  • Поддержка расширений и типов данных для совместимости с 1С.

  • Увеличение скорости обработки потока данных, особенно для ускорения операций при работе с jsontext для процессоров архитектуры ARM.

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

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

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

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

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

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

fasttrun - предоставляет небезопасную для транзакций функцию для обрезки временных таблиц без увеличения размера pg_class. Этот модуль необходим для поддержки 1C Enterprise. Быстрая операция обрезки не является транзакционной, поэтому ее результаты не могут быть отменены и сразу становятся видимыми во всех сессиях независимо от уровня изоляции.

fulleq - предоставляет дополнительный оператор эквивалентности для совместимости с Microsoft SQL Server. Этот модуль необходим для поддержки 1C Enterprise.

hypopg - добавляет поддержку гипотетических индексов. Гипотетический или виртуальный индекс - это индекс, который фактически не существует. Таким образом, для его создания не требуется никаких ресурсов ЦП, диска или других ресурсов. Это полезно, чтобы узнать, могут ли определенные индексы улучшить производительность проблемных запросов, так как вы можете узнать, будет ли Tantor использовать эти индексы или нет, не тратя ресурсы на их создание.

mchar - разработан для улучшения поддержки 1C: Предприятие, самой популярной российской CRM и ERP системы. Он реализует типы MCHAR и MVARCHAR, которые совместимы с MS SQL CHAR и VARCHAR соответственно. Кроме того, эти типы используют библиотеку ICU для сравнения и преобразования регистра, поэтому их поведение одинаково на разных операционных системах. СУБД Tantor также включает расширение citext, которое предоставляет типы, аналогичные MCHAR. Однако это расширение не эмулирует поведение MS-SQL в отношении пробелов в конце значения.

online_analyze - выполняет активацию сбора статистики сразу после операций INSERT/UPDATE/DELETE/SELECT INTO для задействованных таблиц.

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

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

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

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

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

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

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

plantuner - предоставляет возможность управлять планировщиком, предоставляя подсказки, которые заставляют оптимизатор частично игнорировать свой алгоритм.

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

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

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

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

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

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

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