「非順序型」と呼ぶ実行原理に基づくデータベースエンジンの開発が進んでいる。データベースのレコードに対してI/O要求を分散して発行。同様の検索処理で、従来の「順序型」では到達できない処理スピードを目指す。ターゲットに据えるのは、大量かつ多様なデータを掛け合わせて知見を得るビッグデータ活用だ。
従来型に比べ800倍の性能を達成する――日立製作所と東京大学が共同開発中の「超高速データベースエンジン」が掲げる目標はかなり高い。
研究開発には、2010年3月から取り組む。製品の第一弾として、従来型データベースエンジンに比べ約100倍の検索性能を発揮するエンジンを開発。日立製のサーバーやストレージと組み合わせ、「Hitachi Advanced Data Binder プラットフォーム(HADB)」として6月に販売開始した。
超高速データベースエンジンの速さの秘密は、「非順序型」の実行原理に基づいてデータを処理することにある。一方、従来のデータベースエンジンは「順序型」。両者のデータ処理のイメージを示したのが図1だ。順序型は、事前にプログラムされた決定的な処理順序に従う。これに対して非順序型は、データのI/O要求の発生順序とは無関係な順序で、非同期にデータを処理する。この手法により、サーバーのマルチコアプロセッサおよびストレージシステムの利用効率向上を図る。
非順序型が、大量データをいかに効率よく処理するのか、その仕組みを見ていこう。
まず、従来の順序型データベースエンジンの動きを確認する。ここで、顧客情報テーブル、注文情報テーブル、注文明細テーブルをジョイン(結合)し、条件に合った明細レコードを取り出す処理を考える(図2)。検索のやり方はいくつかあるが、ここでは「ネステッドループジョイン」を使う。