AnalyticDB for PostgreSQLには、Alibaba Cloudによって開発されたベクトル化された実行エンジンが搭載されています。 特にOLAPシナリオで実行パフォーマンスを最適化するために、AnalyticDB for PostgreSQLは、ベクトル化計算やジャストインタイム (JIT) コンパイルなどのテクノロジーを組み合わせて、火山モデルを最適化し、最新のハードウェアを最大限に活用します。

ベクトル化計算モデル
AnalyticDB for PostgreSQLは、ベクトル化された実行エンジンを使用して火山モデルを最適化します。 データは行ではなくバッチで転送されます。 ベクトル化された計算モデルは、実行性能を改善するために火山モデルと共に使用される。 各オペレータは、バッチモードでデータをプルする。 各バッチは、データの複数の行を含む。 データは、列または行の優先度に基づいて格納できます。

JITコンパイル
AnalyticDB for PostgreSQLの実行エンジンは、ターゲットに依存しないコード生成のためのJITコンパイルと低レベル仮想マシン (LLVM) をサポートしています。 JITコンパイルは、高度な言語の過度の抽象化によるパフォーマンスオーバーヘッドを削減するために、コア操作に適用されます。 式の計算と複雑な論理演算はアセンブリレベルで最適化されます。これにより、命令サイズが最小限に抑えられ、エンジンの実行速度が数倍向上します。

メモリ管理の最適化
AnalyticDB for PostgreSQLは、ハイブリッドトランザクション /分析処理 (HTAP) 要件に基づいて、メモリ管理の効率を最適化します。
- メモリの再利用: 各演算子は、複数の行の実行結果を生成し、実行結果を行または列メモリのブロックに格納します。 メモリは、メモリのアプリケーションやリリースの繰り返しを避けるために、可能な限り演算子間で再利用されます。
- バッチメモリ割り当て: ベクトル化された実行エンジンは、各演算子のメモリサイズを予測し、実行エンジンのバッチデータモデルを使用して複数の操作に同時にメモリを割り当てます。 これにより、断片化メモリ割り当てが最小限に抑えられます。

- 最小メモリの原則: メモリパフォーマンスを最大化するために、AnalyticDB for PostgreSQLは、メモリに対する不要なリクエスト、リセット、およびリリース操作を削減します。