[速報]Oracleデータベースをインメモリ化する「Oracle Database In-Memory」、性能を数百倍高速化、来月出荷へ

2014年6月11日

米オラクルは、Oracle Database 12cをインメモリデータベース化し、従来と比較して数百倍の性能向上を実現する「Oracle Database In-Memory」を来月7月に出荷すると発表しました

Oracle Database In-Memoryは、昨年9月に行われたOracle OpenWorld 2013の基調講演で発表されたもの。今回の発表には、そのときと同様に同社CEOのラリー・エリソン氏が登壇、熱のこもった説明を行いました。

fig

エリソン氏は「Oracle Database In-Memoryは、アナリティクス処理を10倍も100倍も高速化し、OLTPも2倍、3倍と高速化する。しかもOracle RAC(Real Application Cluster)によってスケールアウトしつつ、アプリケーションからは透過的で、可用性もこれまでと変わらない。導入も簡単だ」と、特徴を説明しています。

fig

インメモリデータベースの分野では、SAPが「SAP HANA」をすでに出荷済みで、インメモリデータベースとして高速なアナリティクス処理とOLTPの両立を実現しています。オラクルは以前からインメモリデータベースとして「Oracle TimesTen」、インメモリグリッドの「Oracle Coherence」などを提供していましたが、メインストリームとなるOracle Databaseのインメモリ化ではSAPに後れをとってしまいました。

エリソン氏は、Oracle Databaseのインメモリ化に時間がかかってしまったことを認めつつ「アナリティクス処理だけでなくOLTPも高速化し、しかも従来のアプリケーションがそのまま動く、この3つを実現しつつ、スケールアウトし、フォールトトレンラントも実現している。こうした他社ではできないことを実現するために時間がかかってしまったのだ」と、できあがった製品の競争力を強調しています。

エリソン氏の発表の内容を基に、Oracle Database In-Memoryの仕組みと特徴を紹介しましょう。

アナリティクス処理をカラムストアで高速化

Oracle Database In-Memoryは、OLTP向けの従来型のロー型ストアと、アナリティクス向けのカラムストアの両方を備えている。

fig

カラムストアはデータを圧縮して保存するため、メモリ量の20倍から30倍のデータを扱える。

カラムストアに対してはプロセッサのコアごとに処理するため、最新のマルチコアプロセッサであれば非常に高速かつ並列にデータ処理が可能。

fig

カラムストアではテーブルのジョインも数十倍以上高速になり、複数の次元を持つキューブ型のデータ処理なども非常に得意。

fig

OLTPをインデックス削除で高速化

アナリティクス処理だけでなく、OLTPも高速化できる。

従来のOLTPデータベースは、OLTPのためのインデックスに加え、アナリティクス処理用のインデックスも10から20と多数設定されている。

fig

この多数のインデックスが、OLTPにおけるデータの追加や削除といった処理を遅くしているのだが、アナリティクス処理をインメモリで高速に実現できるようにしたため、これらのインデックスは不要になる。

テーブルから不要なインデックスを落としてしまえば、OLTPも高速になる。

fig

「(OLTPによって)データが変更されれば、インメモリのカラムナストアのデータも同期しなければならないが、おおむねこれは非常に高速に行われる」(エリソン氏)

RACに対応したスケールアウト、可用性を実現

Oracle Database In-MemoryはRACのノードごとに働くため、RACと同様にスケールアウトする。

fig

他社のインメモリデータベースには、すべてのデータをインメモリに乗せるシンプルなものもあるが、実際のデータのうちどれだけ本当にメモリに乗せて高速処理する必要があるのか、どれだけメモリのコストをかけるのか?

Oracle Database In-Memoryはすべてのメモリに乗せる必要はなく、アクティブな部分だけをメモリに乗せればいい。フラッシュメモリやディスクといった階層構造を利用でき、非常に経済的だ。

fig

RACの可用性はそのまま利用できる上、インメモリも二重化できるため、万が一いずれかのノードが止まっても処理を続けることができる。

fig

簡単に導入でき、アプリケーションの変更は不要

Oracle Database In-Memoryの導入はきわめて簡単だ。利用したいメモリサイズを設定し、インメモリ化したいテーブル、もしくはパーティションを指定する。

fig

あとはOLTPから不要になったインデックスを落とせば、OLTPも高速化する。

アプリケーションからはまったく透過的で、インメモリの利点を得るのになんの変更もいらない。高速になったデータベースの上でそのまま動き続ける。しかもOracle 12cのマルチテナント機能など、これまでの機能はまったくそのままだ。

fig

Oracle Database In-Memoryは、Oracle Database 12cがサポートするすべてのハードウェアで動作し、7月に出荷予定。

あわせて読みたい

Oracle Database RDB データベース Oracle インメモリデータベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本