Перейти к основному содержимому

JIT-компиляция для выражений

Эта тема описывает, как включить и настроить JIT-компиляцию для выражений в Selena.

Обзор

Just-in-time компиляция (JIT) — это генерация машинного кода и его выполнение во время работы. По сравнению с интерпретатором, JIT-компилятор может значительно улучшить эффективность выполнения наиболее используемых частей кода. Selena поддерживает JIT-компиляцию для определенных сложных выражений, обеспечивая многократное улучшение производительности.

Использование

Начиная с версии 1.5.0, Selena включает JIT-компиляцию по умолчанию для BE-узлов с ограничением памяти (настраиваемым параметром конфигурации BE mem_limit) больше или равным 16 ГБ. Поскольку JIT-компиляция потребляет определенное количество ресурсов памяти, она отключена по умолчанию для BE-узлов с менее чем 16 ГБ памяти.

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

jit_lru_cache_size (конфигурация BE)

  • По умолчанию: 0
  • Тип: Int
  • Единица: Байты
  • Изменяемый: Да
  • Описание: Размер LRU-кэша для JIT-компиляции. Представляет фактический размер кэша, если установлен больше 0. Если установлен меньше или равен 0, система адаптивно установит кэш, используя формулу jit_lru_cache_size = min(mem_limit*0.01, 1GB) (при этом mem_limit узла должен быть больше или равен 16 ГБ).
  • Введен в: -

jit_level (системная переменная)

  • Описание: Уровень, на котором включена JIT-компиляция для выражений. Допустимые значения:
    • 1: Система адаптивно включает JIT-компиляцию для компилируемых выражений.
    • -1: JIT-компиляция включена для всех компилируемых, неконстантных выражений.
    • 0: JIT-компиляция отключена. Вы можете отключить ее вручную, если для этой функции возвращается какая-либо ошибка.
  • По умолчанию: 1
  • Тип данных: Int
  • Введен в: -

Поддержка функций

Поддерживаемые выражения

  • +, -, *, /, %, &, |, ^, >>, <<
  • Преобразование типов данных с CAST
  • CASE WHEN
  • =, !=, >, >=, <, <=, <=>
  • AND, OR, NOT

Поддерживаемые операторы

  • OLAP Scan Operator для фильтра
  • Projection Operator
  • Aggregate Operator для выражения
  • HAVING
  • Sort Operator для выражения

Поддерживаемые типы данных

  • BOOLEAN
  • TINYINT
  • SMALLINT
  • INT
  • BIGINT
  • LARGEINT
  • FLOAT
  • DOUBLE