式の JIT コンパイル
このトピックでは、StarRocks における式の JIT コンパイルの有効化と設定方法について説明します。
概要
ジャストインタイムコンパイル (JIT) は、実行時に機械コードを生成し実行する手法です。インタープリタと比較して、JIT コンパイラは最も頻繁に使用されるコード部分の実行効率を大幅に向上させることができます。StarRocks は、特定の複雑な式に対して JIT コンパイルをサポートしており、パフォーマンスを大幅に向上させることができます。
使用法
バージョン v3.3.0 以降、StarRocks はメモリ制限(BE 設定項目 mem_limit
によって設定)を 16 GB 以上に設定した BE ノードに対してデフォルトで JIT コンパイルを有効にしています。JIT コンパイルは一定量のメモリリソースを消費するため、16 GB 未満のメモリを持つ BE ノードではデフォルトで無効になっています。
以下のパラメータを使用して、式の JIT コンパイルを有効化および設定できます。
jit_lru_cache_size (BE 設定)
- デフォルト: 0
- 型: Int
- 単位: GB
- 可変性: はい
- 説明: JIT コンパイルのための LRU キャッシュサイズ。0 より大きい値に設定すると、キャッシュの実際のサイズを表します。0 以下に設定すると、システムは
jit_lru_cache_size = min(mem_limit*0.01, 1GB)
の式を使用してキャッシュを適応的に設定します(ノードのmem_limit
は 16 GB 以上である必要があります)。 - 導入バージョン: -
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