この記事の趣旨
"MonetDB/X100: Hyper-Pipelining Query Execution"という2005年に発表された、 列指向DBMSを提案した論文を読んでいきます。
分析ワークロード向けRDBMSにおける初期実装であるMonetDBを扱った論文で、提案時期が 2005年と古くはあるものの現代のDWHの礎となる内容です。
MonetDB/X100: Hyper-Pipelining Query Execution
Peter Boncz, Marcin Zukowski, Niels Nes
著者について
Peter Boncz、Marcin Zukowski、Niels Nseのグループによる論文。 いずれの著者も機械学習や分析におけるDBMSについて研究している。
問題意識
2005年当時のDBMSは他のアプリケーションに比べ、IPCが低くなる傾向にあった。 原因はほとんどのDBMSがコンパイラの最適化を阻害する実装だったためである。 これはRDBMSが実装された当時に比べCPUやコンパイラが発達したためで、この論文では C-store DBMSであるMonetDBと従来のR-store DBMSをそれぞれTPC-Hで評価を行い、 パフォーマンス阻害要件と最適化方法を提案している。
手法
CPUによるIF文の処理方法はDBMSにとっては選択性が低く、そういった実行は予測不可能 でありクエリ実行を著しく劣らせた。 提案手法ではMonetDB/X100として効率的なシーケンシャルアクセスに向けた、C-storeス トレージとクエリエンジンを実装した。 RAMは提案手法のデータアクセスと同様の方法で圧縮して保存し、Cacheでは なベクトル化された処理にもとづくパイプライン実装を使用した。 CPUにおいてもベクトル型における式計算を提供し、コンパイラが高効率な処 理を生成した。
結果として提案手法は従来のDBMS実行に比べTPC-Hで優れた性能をしめした。
作業時間
- read
- 21:32
- 21:32
- author
- 29:00
- 7:28
- summary
- 56:20
- 27:20
感想
2005年と古く、またVolcano-likeなど知らない概念も登場した。
提案内容としては現代のDWHが採用しているものだった。
論文外の感想
今回本文を読む時間を大幅に短くしてみたが、それにともない理解度も低下した気がする。
やっぱり30分以上で読むのがよさそう。