Оптимизация производительности в зависимости от архитектуры системы
Функциональность доступна только для редакций Enterprise и Enterprise для ERP-систем.
В зависимости от архитектуры системы и возможностей процессора в СУБД могут использоваться дополнительные оптимизации, основанные на SIMD (Single Instruction, Multiple Data). SIMD позволяет выполнять одну и ту же операцию над несколькими элементами данных одновременно и применяется для ускорения внутренних операций при наличии аппаратной поддержки.
Данные оптимизации являются опциональными и управляются параметрами конфигурации.
Сжатие FSM
Использование SIMD позволяет повысить эффективность операций над структурами данных, применяемыми для хранения информации о свободном пространстве (карта свободного пространства, FSM). Оптимизация направлена на обработку большего количества элементов структуры за один шаг.
В рамках данного подхода возможно применение деревьев с увеличенным количеством элементов в узле по сравнению с бинарной структурой, что позволяет сократить размер FSM без ухудшения производительности.
Быстрая сортировка
SIMD-оптимизации применяются для ускорения операций сортировки. Это влияет на выполнение:
- операций построения индексов;
- запросов с сортировкой (
ORDER BY,GROUP BY); - других операций, требующих сортировки данных.
Настройка
Для управления использованием SIMD при сортировке используется параметр конфигурации:
| Название параметра | Тип | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enable_fast_sort | boolean | off | on/off | Включает SIMD-оптимизированную сортировку. Параметр имеет контекст USERSET, что позволяет изменять его в конфигурационном файле или сессией через SET |
Быстрое сопоставление с образцом
Для операций сопоставления с образцом SIMD применяется при выполнении фильтрации и поиска данных, в том числе в запросах, использующих шаблоны. Использование SIMD позволяет сократить время выполнения таких операций на больших наборах данных.
Настройка
Для управления данным механизмом используется параметр конфигурации:
| Название параметра | Тип | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enable_fast_pattern_matching | boolean | off | on/off | Управляет использованием SIMD-оптимизаций при операциях сопоставления с образцом. Контекст применения: USERSET |
Оптимизации записи WAL
В Pangolin реализован механизм ускорения выделения новых страниц буфера WAL при интенсивной параллельной записи. В стандартной реализации PostgreSQL для выделения страниц используется единая блокировка, что при высокой конкуренции может заметно ограничивать масштабирование и снижать производительность.
Настройка
Для включения механизма используется параметр enable_wal_locking_reduction:
| Название параметра | Тип | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enable_wal_locking_reduction | boolean | off | on/off | Снижает конкуренцию за блокировки при выделении страниц буфера WAL, позволяя процессам параллельно выделять разные страницы. Контекст применения: PGC_POSTMASTER |
При значении on несколько процессов могут параллельно выделять разные страницы буфера WAL и записывать данные, что снижает конкуренцию за блокировку и повышает производительность записи WAL.