計画、構想の段階は過ぎ、企業は新たな革新を実践すべきときに。それをサポートするために、OracleはITをシンプルにしている。この「シンプルにする」というのは、禅の精神にもつながり本来日本人が最も得意とするところだろう。
「日本人がこの心をもてば、世界を席巻できるはずです」と遠藤氏。そのシンプルなITの象徴となるのが、Oracleのエンジニアードシステム。これは、ハードウェアとソフトウェアを統合するだけでなく「エンジニアードすることで、よりシンプルに提供します。そこから、顧客のイノベーションを加速できます」(遠藤氏)
行型とカラム型を1つのデータベースのメモリー上で同時に実現
遠藤氏の後を引き受け基調講演を行ったのは、エンジニアードシステムの代表Oracle Exadataの開発責任者でもあるOracle Corporation システム・テクノロジー シニア・バイスプレジデントのホアン・ロアイザ氏。彼は、1988年からOracle Databaseの開発に携わっており、Oracle Exadataはもちろん先月Oracle OpenWorldで発表されたインメモリーデータベースの開発責任者も担っている。
「インメモリーのゴールは、データベースの処理を速くすることです。これは、とくにクエリーを速くし即時に答えを返す。データウェアハウスだけでなくOLTPも速くすることで、さまざまなデータベースで利用可能なものです。この機能は、簡単に導入できるのも大きな特長です。既存データベースに設定を追加するだけで、データベースが極めて速くなります」(ロアイザ氏)
過去何年もの間、データベースのデータは行型のストアで処理されてきた。OLTP処理にはこの行型が向いている。一方で、カラム型という考え方がある。こちらは分析処理を高速にできる。現状、顧客は、これらのどちらかを目的に応じて選ばなければならない。
「行を選ぶと分析がうまくいかず、カラムにするとOLTPがうまくいきません」とロアイザ氏。この状況を解決するために生まれたのが、Oracleのインメモリーデータベース機能だ。
「Oracleでは同時に両方の処理を可能にしています。どちらかを選ぶのではなく、行の形でもカラムの形でも、同じデータが入っています。実行するクエリーごとに、どちらが軽く処理できるかでそれらを選択することになります」(ロアイザ氏)
重要なポイントは同時に2つのフォーマットをインメモリー上で実現し、それらが1つのデータベースだということ。メモリーへのデータ展開は、データベースのスタートアップ時にロードで行われる。検索時には、カラムだけを処理することで高速化する。それに加え、ベクタープロセッシングやSIMDといったハードウェア機能も活用する。ベクタープロセッシングはCPUには昔からあったものだが、これまではあまり活用されてこなかった。これをデータベース処理で使う。結果的には、100倍以上の高速化が達成できるのだ。
先日のOracle OpenWorldで実施したデモでは、インメモリーでなくインデックスの張られていないデータベースに比べ、700倍高速化される様子が示された。すでに米国のYahoo!では、この機能を試用している。その結果、検索速度が100倍高速化したとのこと。これを利用するために、Yahoo!ではSQLやアプリケーションの変更などは一切行っていない。
データウェアハウス的な検索処理だけでなく、インメモリーデータベース機能はOLTPも高速化する。ERPのようなアプリケーションでは、OLTP処理とレポーティング処理の両方を行う。データを抽出しレポーティングするのの高速化のるために、数多くのインデックスを設定する。その数は、OLTP用のインデックスの10倍にもなる。さらに、データが更新されればインデックスも更新しなければならない。この処理負荷は大きく、それがOLTPの性能劣化の大きな要因の1つでもある。
新しいインメモリデータベース機能は、これらインデックスを置きかえることができる。さらに、定型的な処理だけでなくアドホックな検索にも対応可能で、結果的に管理とチューニング作業も不要になる。インデックスに関わる処理が必要なくなるので、そのぶんOLTP処理は速くなるわけだ。ロアイザ氏によれば、インメモリー化しインデックスをなくすだけで、OLTPの処理は2倍以上速くなるという。