論文:MonetDB/X100: Hyper-Pipelining Query Execution

この記事は、「MonetDB/X100: Hyper-Pipelining Query Execution」という論文からのメモです。この論文は、2005年にThe Conference on Innovative Data Systems Research (CIDR)会議で発表されました。

シリーズ:DuckDBが採択した論文

このシリーズは、DuckDBが採用しいた論文を読んだ際のメモをまとめたものです。

  • ベクターベースのクエリエンジン: 本記事
  • 高速でSerializableなMVCC
  • Join順序の最適化 (近日公開)
  • サブクエリ展開(近日公開)

Note: DuckDBはこの論文で説明されているベクターベースのクエリエンジンのアイデアを実装していますが、ストレージのモデルはMonet DBとは違っており、Monet DBがコラムごとに別々のファイルに保存するのに対し、DuckDBはRow Groupという列と行のハイブリッドモデルを採用しています。(DuckDBへのリンクはこちら

主な内容

この論文は、現代的なCPUをより効果的に活用するために、DBMSにおけるベクター化されたクエリ実行モデルを提案し、従来のVolcanoイテレータモデルと比較しています。

クエリ解釈

CPUキャッシュ

例:

CPUパイプラインの実行

ベンチマーク

Monet DBに関するノート