オランダ国立情報数学研究所のデータベースを100倍速くするプロジェクトから生まれたVectorwiseの全貌

EnterpriseZine / 2012年12月6日 0時0分

アムステルダムにあるオランダ国立情報数学研究所、ここで「X100」というプロジェクトが行われていた。このプロジェクトの目的は、「100倍高速なデータベースを作る」こと。100倍という数値目標を設定したきっかけは「C言語で書かれたプログラムとリレーショナルデータベースの処理では、100倍くらいの差がある」ということからだった。その後、このX100プロジェクトの成果は、Actian社に引き継がれ商用化することになる。このActian、元はデータベースとしては歴史も実績もある「Ingres」を提供していたIngres Corporationだ。そして、X100プロジェクトの成果である「100倍速いデータベース」として生まれたのが、データウェアハウスなどの分析処理向けの高速データベース「Vectorwise」だ。

■Vectorwiseはカラム型で分析やBIに特化したデータベース

 「Vectorwiseには100倍速くするためのさまざまなトリックがあります」と語るのは、ActianでVectorwiseの製品担当をしているMark Van de Wiel氏。彼は、一般的なリレーショナルデータベースが遅いのは、ストレージの処理が非効率的だからだと指摘する。

 「通常のデータベースは、ストレージの中の構造が行ベースになっています。これはOLTPトランザクションであれば効率はいいのですが、分析などの用途には向いていません。そこでVectorwiseでは、ストレージの中の構造を分析用途に最適化した、カラム型にしています」

 Vectorwiseでは、ディスク上のデータブロックのサイズも大きく、性能が最大化するよう調整されている。すべてのデータブロックはカラムごとに生成され、ブロック内にミニマム、マックス値を持っており、それを使って高速な参照処理ができる。さらに、高速なメモリバッファを、ディスクの手前に割り付けることでも高速化を図っている。このメモリバッファは、CPUの処理を効率化するためにディスクとは非同期でデータを読み込めるようになっている。また、データの圧縮も活用されている。ディスク上だけでなくメモリ上でも圧縮することで、CPUが処理するデータサイズも小さくなるように工夫されているのだ。

 Vectorwiseでは、内部的にストレージインデックスと呼ばれるものを持っており、いわゆるデータベースのインデックスは必要ないとのこと。このストレージインデックスについては、データベース側でなんらその存在を意識する必要はない。

  • 前のページ
    • 1
    • 2
  • 次のページ
EnterpriseZine

トピックスRSS

ランキング