Loading
|
@IT > インメモリー・データベースがもたらす驚異のリアルタイム性能 |
|
Oracle TimesTen In-Memory Databaseは、現時点で最も進化したインメモリー・データベースといえる。高速トランザクション性能、開発生産性の高さといった従来の特長に加え、2007年3月に発表された新バージョンではOracleデータベースとの親和性が高まった。高負荷Webアプリケーションの開発スタイルにどんな変革がもたらされるのか?
今回取り上げる「Oracle TimesTen In-Memory Database」(以下、Oracle TimesTen)は、インメモリー・データベースの既成概念を打ち破り、その市場を一気に拡大する製品だ。インメモリー・データベースならではの高速処理と開発効率の高さはそのままに、データベース市場で不動の地位を持つOracleデータベースとの連携を可能にする同製品は、2007年3月に最新バージョンとなる7.0が発表された。早速、その特長と実力を見てみよう。
Oracle TimesTenに対する期待が特に高いのは、リアルタイム性が要求される証券のオンライントレーディングや負荷の高いeコマースサイトなどのWebアプリケーションである。素早い応答速度を要求されるこれらのWebアプリケーションでは、データベース接続がボトルネックとなるケースが少なくない。 このような事態に直面した開発者は、まずSQLチューニングを行うのが一般的な手法である。それでも要求されるパフォーマンスに達しない場合、残された選択肢は2つしかなかった。すなわち「アプリケーション側で作り込む」か「あきらめる」かだ。いうまでもなく「あきらめる」を簡単に選ぶ技術者はいない(図1)。
そこで、エンジニアは必死になってアプリケーション側に独自の高速化ロジックを作り込むのだが、これには非常に大きな問題がある。まず、実装とテストに膨大な時間と手間がかかる結果、開発効率が落ち、一方でコストは膨らんでいく。次に、それだけコストをかけて性能を向上させても、トランザクション数やデータ量が増えれば、再度独自のチューニング作業を繰り返すことになり、そのたびに関連するほかのアプリケーションとの連携にまで目を配らねばならない。その労力は計りしれないものだ。そして何よりも、ここまで高度な作り込みができるエンジニアはなかなか確保できない。かくして、アプリケーション開発工数は肥大化の一途をたどって行くというのが、悲しい“お約束”になってきた(図2)。
しかし、Oracle TimesTenを導入すれば、独自ロジック作成の作業は一切不要になる(図3)。チューニングの際に最も手間を食う部分をOracle TimesTenに任せた結果、開発エンジニアはアプリケーション側の作り込み作業から一気に解放され、開発効率を飛躍的に向上できるのだ。アプリケーションに組み込まれたミドルウェアとして動作するOracle TimesTenは、それ自体を運用管理する必要はなく、通常どおりSQL、JDBC、ODBCといった標準技術を用いてデータベースを利用するだけ。少ない工数で非常に高速なデータベースアクセスが実現できてしまうのだ。バックエンドのデータベースとの同期や冗長化なども、必要なオプションを選んで利用するだけである。
インメモリー・データベースとは、通常のデータベースのようにデータをハードディスク上に保存するのではなく、メモリ上に常駐させておくデータベースの総称だ。ディスクアクセスに伴うオーバーヘッドが劇的に減少し、超高速の処理が実現するのが最大の特長である。一方で、インメモリーだから電源断でデータが損失してしまうだとか、通常のデータベースのキャッシュと大して違わないといった先入観は、Oracle TimesTenには当てはまらないことを強調しておこう。 Oracle TimesTenの高パフォーマンスは、単にメモリ上にデータを置いているからではない。メモリ上にあるデータに対して最適化された“T-Tree”索引を採用するなど、メモリ上のデータを取得するのに特化したテクノロジを持つ。また、データの永続性を保証するロギング方式が用意されており、高速なパフォーマンスとデータ保護の両立を可能にしている。 そもそもなぜOracle TimesTenが生まれたか、歴史的な背景を少しだけ見ておこう。その原型は、インターネット以前の電話交換機に端を発する。当時の電話交換機はハードウェアからOS、アプリケーションまで1台ごとの専用設計だったが、新しいネットワークの発達とサービスの拡大、特に携帯電話の爆発的な普及を契機として処理データ量は急増を続け、従来の専用機の開発ペースでは到底追い着かなくなってきた。そこで、1990年代後半から急速にオープン化とデータ処理の高速化の研究が進められた結果、商用データベースが導入されたのである。しかし、ネットワーク網では“データ処理の遅延=つながりにくさ”は許されない。いかにリアルタイム処理を確保するかに焦点を絞っていった結果、データをメモリに置くというインメモリー処理技術が発達した。その技術を開発者の多いSQLでアクセスできるように実装したのがTimesTenである。つまり、Oracle TimesTenは非常にタイムクリティカルなネットワークの組み込み機器分野で誕生した、歴史と実績のあるソフトウェアなのである。 すでにネットワーク事業者(エリクソン、ノキアなど)や通信キャリア(T-Mobile、Sprintなど)などの組み込み機器分野で多くの採用実績を持つOracle TimesTenが、エンタープライズ分野でも注目され始めているのには、もちろん理由がある。Webアプリケーションの応用範囲が拡大する中で、マイクロ秒レベルのリアルタイム処理が要求される、タイムクリティカルなデータ処理のニーズは高まる一方だ。この流れを受けOracle TimesTenは、金融・証券システム(JPモルガン、BearStearnsなど)、企業の受発注システムやeコマース(SalesForce.com、Avayaなど)といった、世界の1600社以上の企業・組織に導入されているという。リアルタイムで膨大なデータを確実に処理するサービスが求められる分野の広がりを見ても、インメモリー・データベースが注目を集めるのは時代の必然だといえよう。 さらに今後、データベースの高速レスポンスによってITのあり方が改革される期待も高まる。トランザクションの多いWeb 2.0、家庭電化製品やホームセキュリティなどの次世代ネットワーク分野、センサーベースのRFIDアプリケーション、数ミリ秒単位のトランザクションが期待される金融商品のアルゴリズム取引、通信と放送の融合による新しいサービスなど、広範囲な適用が想定されるだろう。
Oracle TimesTenの特長は、超高速のデータ処理だけではない。エンタープライズデータベースにとって速いことは重要だが、それだけでは不十分だ。なぜなら、標準技術に準拠した開発生産性や、ミッションクリティカルなビジネスシステムに耐えうる可用性を提供できなくてはならないからだ。 それではここでOracle TimesTenが提供する、“ミッションクリティカルなデータベースとしての特長”から代表的なものを見ていこう。
ここまでOracle TimesTenの特長と、それらがもたらすメリットを見てきたが、2007年3月にリリースされた最新バージョンのOracle TimesTen 7.0では、さらにエンタープライズシステムにふさわしいバージョンアップが施されている。 ■ アプリケーションとSQLの互換性の強化 リリース7.0では、Oracle TimesTen自身がOracleデータベースと同じデータ型もサポートするように改良されている。つまり、Oracle TimesTenをOracleデータベースのキャッシュとして利用する際、両者の挙動が同一になり、抽出結果が常に一致するわけだ。処理データの信頼性を保つうえで、これは大きなメリットといえよう。 さらに前バージョンまでは、OracleデータベースのSQLが一部、そのまま使えなかったため、開発者はSQLの書き換えを余儀なくされる場面もあった。しかし、バージョン7.0からは多くのOracleデータベースの拡張SQL(DECODE関数、TO_NUMBER関数など)をサポートすることによって、SQLの書き換え量が大幅に減った。 ■ キャッシュ自身をよりインテリジェンスにする機能の追加 インテリジェンスなキャッシュとは具体的に、「Automatic Load on SELECT」と「Automatic Data Aging」という2つの機能だ。これらは、Oracle TimesTen上にキャッシュがなかった場合、自動的にOracleデータベース上からデータを取得したり、反対に時系列で見て一定期間アクセスがなかったデータをメモリから落とすという機能である。これを使うと、CRMサイトなどでは常に入れ替わるOracleデータベース上の顧客データを最適化された必要最小限のサイズでキャッシュに展開し、なおかつ効率よく管理できるようになる。大規模で超高速処理を要求されるWebサービスなどには、パフォーマンスとサービスレベルを両立させるうえで欠かせない機能となるだろう。 ■ 日本語処理への対応 このほかにもマルチバイトのハンドリングをOracleデータベースと同等に行えるようになり、日本語でのソートが可能になるなど、日本市場における有用性も加えられた。 ◇ もともとインメモリー・データベースに特化した製品として1998年にリリースされたOracle TimesTenは、2005年にOracleファミリーに吸収されたのを契機に、エンタープライズデータベースへの本格的な対応が進んだ。それが今回のリリース7.0発表で、いよいよ完成形に近づいた感がある。巨大化と高速化の進むエンタープライズデータベースの世界にあって、インメモリー・データベースの速さと開発効率を生かした新しいビジネスモデルや適用分野が拓かれていくことを大いに期待したい。 提供:日本オラクル株式会社
企画:アイティメディア 営業局 制作:@IT編集局 掲載内容有効期限:2007年4月12日 |
|