継続渡しスタイル(CPS)によるデータ処理とデータベースの最適化
従来のデータベースでは、クエリ実行時に中間結果を生成・保持するオーバーヘッドが発生しがちです。
この問題を解決するため、関数型プログラミングの手法である継続渡しスタイル(CPS)と自動インライン化を採用することが提案されています。
CPSを用いることで、複数のオペレータ処理を一つの統合されたループに効率的に「融合(フュージョン)」させることが可能になります。
特に新しいデータベースシステムPrelaでは、「すべてを二項関係として扱う」設計のもと、演算子定義をCPS形式で行っています。
これにより、単なる選択クエリであっても複数のテーブル結合が伴う場合でも、コンパイル時に高速なカラムナ実行を自動的に回復させることが可能となり、大幅な性能向上が実現しています。
原文の冒頭を表示(英語・3段落のみ)
Passing DBs Through
Continuations
Dedicated to the Minnowbrook
※ 著作権に配慮し、引用は冒頭3段落までです。続きは元記事をご覧ください。