分散キャッシュ

WebSphere® eXtreme Scale は、共有キャッシュとして使用されることが最も多く、 これまで使用されていたような従来のデータベースに代わり、データへのトランザクション・アクセスを 複数のコンポーネントに提供します。共有キャッシュにより、データベースを構成する必要がなくなります。

キャッシュのコヒーレンス

すべてのクライアントがキャッシュ内の同じデータを見るので、キャッシュはコヒーレントです。各データ はキャッシュ内の 1 つのサーバーのみに保管されるため、 さまざまなバージョンのデータを保管することになりかねない、レコードの無駄なコピーが 防止されます。コヒーレントなキャッシュは、より多くのサーバーがデータ・グリッドに追加されるにつれて、 より多くのデータを保持することができ、グリッドのサイズが増えるのにつれて直線的に増加します。クライアントはこのデータ・グリッドからのデータに、リモート・プロシージャー・コールを使用してアクセスするので、 このキャッシュはリモート・キャッシュまたは、ファー・キャッシュとも呼ばれます。データの区画化により、 各プロセスは、全データ・セットの中から固有のサブセットを保持します。データ・グリッドが大きいほどより多くのデータを保持でき、 そのデータに対するより多くの要求にサービスを提供できます。コヒーレントであることによって、 失効データが存在しないため、データ・グリッドの周囲で無効化データをプッシュする必要が なくなります。コヒーレント・キャッシュは、各データの最新コピーのみを 保持します。

WebSphere Application Server 環境 を実行している場合は、TranPropListener プラグインも使用可能です。TranPropListener プラグインは、WebSphere Application Server 高可用性コンポーネント (HA マネージャー) を使用して、 変更を各ピア ObjectGrid キャッシュ・インスタンスに伝搬します。
図 1. 分散キャッシュ
分散キャッシュ

ニア・キャッシュ

クライアントは、eXtreme Scale が分散トポロジーで使用されている場合、オプションでローカルのインライン・キャッシュを持つことができます。オプションのこのキャッシュ はニア・キャッシュと呼ばれます。これは、各クライアントにある独立した ObjectGrid であり、 リモート用のキャッシュ (サーバー・サイド・キャッシュ) として機能します。ニア・キャッシュは、ロックがオプティミスティックまたはロックなしに構成されている場合、デフォルトで使用可能にされており、ロックがペシミスティックに構成されている場合は使用することができません。
図 2. ニア・キャッシュ
ニア・キャッシュ
ニア・キャッシュは、 リモート側で eXtreme Scale サーバーに保管されている キャッシュ・データ・セット全体のサブセットへのメモリー内アクセスを可能にするため、非常に高速です。ニア・キャッシュは区画化されず、 任意のリモート eXtreme Scale 区画からのデータを含みます。WebSphere eXtreme Scale は、 以下のように、3 つまでのキャッシュ層を持つことができます。
  1. トランザクション層キャッシュには、単一トランザクションのすべての変更が含まれます。 トランザクション・キャッシュは、トランザクションがコミットされるまで、データの 作業用コピーを保持します。クライアント・トランザクションが ObjectMap のデータを要求すると、 最初にトランザクションがチェックされます。
  2. クライアント層のニア・キャッシュは、サーバー層のデータの サブセットを保持します。トランザクション層にデータがない場合、 データはクライアント層にあればクライアント層から取り出され、 トランザクション・キャッシュに挿入されます。
  3. サーバー層のデータ・グリッドには大半のデータが含まれ、すべてのクライアント間で共有されます。サーバー層は区画に分割できるので、 大量のデータをキャッシュに入れることができます。クライアントの ニア・キャッシュにデータが存在しないと、サーバー層からデータがフェッチされ、 クライアント・キャッシュに挿入されます。サーバー層は、Loader プラグインを 保持することもできます。グリッドに要求されたデータがない場合、Loader が呼び出され、結果のデータがバックエンドのデータ・ストアからグリッドに挿入されます。

ニア・キャッシュを 使用不可にするには、クライアント・オーバーライド eXtreme Scale 記述子構成で numberOfBuckets 属性を 0 に 設定します。eXtreme Scale のロック・ストラテジーについて詳しくは、マップ・エントリーのロックに関するトピックを参照してください。 ニア・キャッシュは、クライアント・オーバーライド eXtreme Scale 記述子構成を 使用して、別の除去ポリシーや異なるプラグインを使用するように 構成することもできます。

利点

  • データへのアクセスがすべてローカルで行われるため、応答時間が速くなります。ニア・キャッシュ内でデータを探すことで、まず、サーバーのグリッドにいく手間が省け、リモート・データでさえもローカルでアクセス可能になります。

欠点

  • 各層のニア・キャッシュはデータ・グリッド内の現行データと同期していない場合があるため、失効データの期間が長くなります。
  • メモリー不足を回避するため、エビクターに頼り、データを無効化する 必要があります。

使用する場合

応答時間が重要で、失効したデータは許容できる場合に使用します。