少し前になりますが、2015年1月末に日本オラクルは「Oracle Exadata X5」(以下「X5」)をリリースしました。Exadataとしては第6世代となります。3月にあらためて技術的な優位点を聞く機会がありました。多岐にわたる機能強化、性能向上を盛り込みつつも「お値段据え置き」(前版と同じ価格)という点が特徴になるようです。
フラッシュは従来モデルのようにDBキャッシュとしてだけではなく、DBファイルの格納にも利用できるようになります。オラクルは「超高速オールフラッシュストレージサーバー」と呼んでいます。加えて単にストレージをディスク装置からフラッシュ装置に置き換えただけではなく、フラッシュストレージの利用を想定してOracle Databaseなどのソフトウエアの最適化を図っています。この部分はX5でかなり力を入れて開発したそうです。
この他にも、ハードウエアとソフトウエアを一体化したからこそできる最適化が随所に見られます。
データベースアプリケーションの性能は、どこか一部分が猛烈に速くても他にボトルネックがあれば「頭打ち」になってしまいます。ディスクドライブの代わりにフラッシュストレージ装置を用いたとしても、その手前のコントローラーがデータをさばき切れずにボトルネックになるという問題です。そこをX5ではPCIe接続のSSD向けの新しい規格である「NVMe」のドライバーを用いてコントローラーがボトルネックにならないようにしています。
インターコネクトも強化されています。データ転送速度40Gbpsの「InfiniBand」は以前から採用していますが、X5にはデータベースにアクセスすることを想定したInfiniBand用の独自プロトコル「Exafusion」を実装しています。このプロトコルの特徴は、OSなどの層のボトルネックを排除できる点にあります。従来はデータベースからネットワーク、ソフトウエア、OSカーネルなどを通過してInfiniBandにアクセスしていたところ、Exafusionではデータベースが直接InfiniBandハードウエアにアクセスできるようになるため大幅なショートカットが実現します。
フラッシュストレージ、InfiniBand、他にもプロセッサーではインテルの最新型CPUである「Xeon Haswell EP」を採用し、処理速度・性能を高める構成になっています。道路でイメージすると場所によって1車線だったり3車線だったりと車線の数が異なるために、車線が少ないエリアで渋滞を引き起こすのではなく、どこも3車線あって滞ることのないように設計された高速道路のようなものといえるでしょう。
もう一つ、X5にありがちな誤解を指摘してもらいました。日本オラクル データベース事業統括 製品戦略統括本部 プロダクトマーケティング本部 Database & Exadata推進部 担当シニアマネージャー 岩崎護氏によると「Exadataで速くなる部分と『Oracle Database 12c』のオプション機能である『In-Memory』で速くなる部分は違います」とのこと。Oracle Database 12cのオプションとして、In-Memoryがあります。Oracle Database 12cをデータベースアプリケーションとしているX5でも利用できる機能ですが、これとX5が独自に持つ機能とは適宜使い分けるべきもののようです。
単純に速さが加算できるというものではないようです。例えばX5で時速10km速くなり、In-Memoryオプションで時速10km速くなるから、足して時速20km分速くなる……と、イメージしてしまいがちですが、これだと正しくはありません。それぞれに強みを発揮できるところが異なります。
In-Memoryオプションはメモリ上にあるデータを最適に処理できる――つまり速くなる条件が限られているのに対し、X5は大規模OLTP、バッチ処理、データウエアハウスなど総合力で強みを発揮します。
これをより具体的に言うと、大量の似たSQLが発生するような場面はIn-Memoryが得意な領域です。例えばデータマート、定型クエリ、直近データの分析といったところです。一方、X5は、大規模なデータウエアハウスや非定型クエリ、もちろんOLTPなどの処理を得意とします。
実際には内部でオプティマイザーが自動的に適用する機能を判断するようになっています。把握しづらいかもしれませんが、データベースエンジニアであれば、両者の特性の違いは理解しておくことが大事です。続々と新製品が登場してくる今、自社における有用性を適切に判断するためには、あらためて自身の知識を確認しておくことも大切だといえるでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.