ホワイトペーパーとアナリストレポート

SQLより20倍高速 - Cachéは、なぜ高速なのか

リレーショナル・データベースからCachéに切り替えられたお客様からは、ハードウェアは同じでアプリケーションも変更していないにもかかわらず、平均パフォーマンスが最高で20倍高速になった、との報告が寄せられています。ここでは、Cachéでアプリケーションをこれほど高速に実行できる理由を探ってみます。

A) 多次元データ・エンジン

Cachéは、データを2次元テーブルの集合ではなく、多次元配列の形態で格納します。定義の面からは、多次元構造に格納されたデータは、プログラマが選択した数のパラメータにより、既に相互参照されている状態にあります。リレーショナル・データベース・システムでデータにアクセスし、更新するには、複雑で時間のかかる結合が必要となりますが、多次元データベースではそのような処理は不要です。処理オーバーヘッドを大幅に低減できるので、各種アプリケーションをはるかに高速に実行できます。

インターシステムズは、スパース配列の概念を採用することにより、多次元データ・エンジンの効率をさらに向上させています。CachéデータベースにNullセルがあっても、ディスク領域を占有することがありません。"空の"データ・セルが1つも存在しないので、データ検索やローカル・メモリへのデータ読み込みに要する時間も短縮できます。

B) トランザクション・ビットマップ・インデックス

ビットマップ・インデックスでは、クラスのプロパティ(テーブルの列)をビット配列で記述します。プロパティで可能なそれぞれの値に対して、そのクラスの各オブジェクト(テーブルの行)を表現するビット列が1つ存在します。オブジェクトがそのプロパティ値を持っていればビットは“1”、持っていなければ“0”になります。ビットマップ・インデックスの利点は、複雑なクエリであっても、インデックスに対する論理演算(ANDとOR)で処理できることにあります。具体的には、クエリの条件に一致するインスタンス(行)を正確に示す一時的なインデックスを作成します。データベース全体の検索は行いません。

ビットマップ・インデックスでは、複雑なクエリの応答時間を大幅に短縮できることが知られていますが、従来は作成に時間がかかり面倒だったので、データ・ウェアハウス・アプリケーション以外では使用が敬遠されていました。しかし、Cachéのビットマップ・インデックスの新機能は、非常に軽快なので、急速に変化するトランザクション・データにおいても使用できます。

C) エンタープライズ・キャッシュ・プロトコル

インターシステムズのエンタープライズ・キャッシュ・プロトコル(ECP)では、分散システムにおけるアプリケーションのパフォーマンス向上を実現できます。ECPは、今日最も一般的に使用されているシンクライアント・アーキテクチャ向けに最適化されています。

情報がネットワーク全体で要求される場合、応答データのパッケージには、目的のデータに加えて、そのデータが格納されていたデータベース・ブロック全体も含まれています。オブジェクトおよびCachéの多次元データ・モデルが元々備えているデータ関係により、この“余分な”データはなんらかの方法で元の要求に関連付けられます。

“余分な”データは、アプリケーション・サーバにキャッシュされます。その結果、アプリケーション・サーバに接続しているあらゆるクライアントからのそれ以降の要求に対応できます。ECPはデータベース・ロックの維持を自動的に処理し、変更内容をデータ・サーバなどに伝えます。

パフォーマンスとスケーラビリティに関するECPの利点は劇的です。クライアントは、ローカルにキャッシュされたデータを頻繁に使用するので、応答時間の短縮が望めます。しかも、ネットワーク・トラフィックが大幅に低減されるので、指定されたどのネットワークでも、より多くのアプリケーション・サーバとクライアントをサポートできます。