Перейти к основному содержимому
Версия: 2.0.x

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

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

Обзор

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

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

Начиная с версии v1.5.2, 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