3. Какие различия между Tantor SE 1C 16 и PostgreSQL 16#
3. Какие различия между Tantor SE 1C 16 и PostgreSQL 16 #
3.1. Полезные ссылки #
3.2. Улучшения ядра #
64-битный счетчик транзакций.
Улучшенная производительность с большим количеством одновременных пользователей благодаря улучшениям в механизме SLRU, которые были внесены в PostgreSQL 17.
Увеличенное количество секций в общих буферах.
Оптимизированный алгоритм сжатия данных
pglz
(~1,4 раза).Уменьшенное количество блокировок страниц данных в общих буферах.
Сжатие в libpq.
Оптимизация и ускорение процесса восстановления каскадной репликации (standby fadvise).
Возможность завершения транзакции на основе предустановленного тайм-аута.
Поддержка расширений и типов данных для совместимости с 1С.
Улучшения SIMD для архитектур x86 (SSE2) и ARM (NEON) были введены, что привело к улучшению обработки транзакций. Эти достижения также способствуют более быстрым операциям с jsontext, тем самым повышая общую эффективность обработки потоков данных.
Оптимизация для линейного поиска для процессоров архитектуры ARM64.
Проверка контрольной суммы блоков данных при отправке WAL на резервный сервер.
Повышенная информативность диагностической информации:
Диагностика внутренних ошибок СУБД (
backtrace_on_internal_error
параметр).Информативность журналов сервера СУБД — стартовые сообщения содержат дополнительную диагностическую информацию.
Приложение сервера pg_controldata содержит дополнительную метаинформацию о редакции и сборке для упрощения диагностики возможных неполадок.
Максимальный размер данных в ячейках таблицы, поддерживаемый модулем pg_dump, составляет 2 ГБ.
3.3. Дополнительные поставляемые утилиты #
pgcompacttable — инструмент, предназначенный для уменьшения размера раздутых таблиц и индексов без использования тяжелых блокировок. Он разработан для реорганизации данных в таблицах и перестройки индексов с целью освобождения дискового пространства без влияния на производительность базы данных.
pgcopydb — инструмент, который автоматизирует выполнение pg_dump | pg_restore между двумя работающими серверами Postgres. Чтобы как можно быстрее сделать копию базы данных на другой сервер, желательно использовать параллельные опции pg_dump и при этом иметь возможность передавать данные в несколько задач pg_restore.
3.4. Дополнительные модули (расширения) #
credcheck - обеспечивает проверку учетных данных, во время создания пользователя, смены пароля и переименования пользователя. Используя это расширение, можно определить набор правил для разрешения определенного набора учетных данных и набор правил для отклонения определенного типа учетных данных. Расширение разработано на основе хука check_password_hook в PostgreSQL.
fasttrun - предоставляет небезопасную для транзакций функцию для обрезки временных таблиц без увеличения размера pg_class. Этот модуль необходим для поддержки 1C Enterprise. Быстрая операция обрезки не является транзакционной, поэтому ее результаты не могут быть отменены и сразу становятся видимыми во всех сессиях независимо от уровня изоляции.
fulleq - предоставляет дополнительный оператор эквивалентности для совместимости с Microsoft SQL Server. Этот модуль необходим для поддержки 1C Enterprise.
hypopg - добавляет поддержку гипотетических индексов. Гипотетический, или виртуальный индекс — это индекс, который в действительности не существует, и поэтому его создание не требует ресурсов ЦП, диска или каких-либо ресурсов. Они полезны, чтобы знать, могут ли определенные индексы повысить производительность для проблемных запросов. Дает возможность узнать, будет ли СУБД использовать эти индексы или нет, не тратя ресурсы на их создание.
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.
pg_hint_plan - позволяет настраивать планы выполнения SQL-запросов с использованием так называемых "подсказок" в комментариях SQL. Это дает возможность компенсировать ошибки планировщика, возникающие в критических случаях.
pg_repack - позволяет удалять раздувание таблиц и индексов (BLOAT) и, при необходимости, восстанавливать физический порядок кластеризованных индексов. В отличие от CLUSTER и VACUUM FULL, он работает онлайн, не удерживая эксклюзивную блокировку обрабатываемых таблиц во время обработки.
pg_store_plans - предоставляет средства для отслеживания статистики плана выполнения для всех операторов SQL, выполняемых сервером Tantor.
pg_wait_sampling - предоставляет информацию о текущем событии ожидания конкретного процесса. Однако для того, чтобы собрать описательную статистику поведения сервера, пользователь должен многократно отбирать текущее событие ожидания. pg_wait_sampling — это расширение для сбора выборочной статистики событий ожидания, которое предотвращает избыточное семплирование ожидания текущего события.
pgaudit - предоставляет детализированное ведение журнала аудита сеансов и/или объектов через стандартное средство ведения журнала Tantor DBMS. Цель pgAudit - предоставить пользователям Tantor DBMS возможность создавать журналы аудита, которые часто требуются для соблюдения государственных, финансовых или ISO сертификаций.
plantuner - предоставляет возможность управлять планировщиком, предоставляя приглашения, которые заставляют оптимизатор частично игнорировать свой алгоритм.
pgauditlogtofile - это дополнение к pgAudit, которое перенаправляет строки аудита в отдельный файл, вместо использования диспетчера журналирования сервера PostgreSQL. В итоге мы получаем файл аудита, который можно легко ротировать, не загрязняя журналы сервера этими сообщениями. Журналы аудита в системах с высокой нагрузкой могут очень быстро расти. Это расширение позволяет автоматически ротировать файлы на основе заданного количества минут.
transp_anon (прозрачная анонимизация) - это расширение для маскировки или замены конфиденциальных персональных или коммерчески чувствительных данных из базы данных PostgreSQL.
3.5. Дополнительно поставляемые программы: #
Tantor Platform: полнофункциональная модульная платформа для администрирования и мониторинга Tantor RDMS и большинства кластеров, основанных на PostgreSQL. Платформа упрощает ежедневную работу с RDBMS и значительно упрощает управление RDBMS. Функциональность программного обеспечения включает: умный и простой пользовательский интерфейс, автоматическую адаптивную настройку кластера, обзор системы, оповещения и мониторинг, автоматическую проверку работоспособности и аудит схемы, выполнение задач обслуживания через графический интерфейс, профилирование запросов и администрирование нескольких серверов в одном месте;
pg_anon: это самостоятельная программа на Python для работы с СУБД Tantor или PostgreSQL для маскировки и анонимизации данных во время миграции данных между производственной и тестовой средами;
wal-g: это инструмент создания зашифрованных, сжатых резервных копий Tantor SE-1C (полных и инкрементных) и их отправки/получения из/в хранилища без сохранения в файловой системе;
pg_configurator: инструмент настройки PostgreSQL;
pg_cluster: Ansible playbook для создания кластера PostgreSQL высокой доступности на базе Patroni.
3.6. Заметки к релизу #
Первый выпуск Tantor SE-1C — 16.2.1
.
Значительные изменения можно найти на соответствующей странице.
Все остальные изменения см. в Примечаниях к выпуску.