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

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

В настоящее время YMatrix поддерживает использование нескольких движков выполнения:

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