Обзор движка выполнения

В системе баз данных движок выполнения принимает план запроса, сгенерированный оптимизатором, и извлекает строки данных в соответствии с этим планом.

YMatrix в настоящее время поддерживает следующие движки выполнения:

  • Движок выполнения на базе Greenplum (Volcano)
  • Векторизованный движок выполнения, разработанный YMatrix
Движок выполнения Описание
Движок выполнения Volcano Движок выполнения Volcano использует модель Volcano, также известную как модель выполнения на основе запроса (pull-based). После анализа SQL-запросов в базе данных генерируется дерево запроса. Каждый узел дерева представляет алгебраический оператор. Во время выполнения запроса вычисления происходят сверху вниз по дереву запроса, в то время как данные извлекаются и обрабатываются снизу вверх.
Векторизованный движок выполнения Векторизованный движок выполнения — это высокопроизводительный движок, специально разработанный для столбцовых форматов хранения, таких как MARS3, MARS2 и AOCO. Для типовых запросов он обеспечивает производительность на один-два порядка выше по сравнению с традиционными движками, ориентированными на строки.
Преимущества производительности векторизованного движка по сравнению со скалярными движками обусловлены следующими факторами:
1. Пакетная обработка для снижения накладных расходов выполнения
2. Обработка небольшими пакетами для улучшения локальности данных и использования кэша, повышая производительность доступа к данным
3. Выбор оптимальных путей обработки на основе характеристик данных
4. Снижение накладных расходов на вызовы функций и использование инструкций CPU SIMD (Single Instruction, Multiple Data) для дальнейшего повышения эффективности
5. Обработка данных по столбцам и загрузка только необходимых столбцов для избежания ненужного ввода-вывода
Векторизованный исполнитель автоматически интегрируется с традиционным оптимизатором Postgres. Оптимизатор GPORCA необходимо включать вручную.