ピア複製されるローカル・キャッシュ

独立したキャッシュ・インスタンスを持つプロセスが複数ある場合は、確実にキャッシュが同期されるようにする必要があります。キャッシュ・インスタンスが確実に同期されるようにするには、Java Message Service (JMS)を使用して、ピア複製されるキャッシュを有効にします。

WebSphere® eXtreme Scale には、ピア ObjectGrid インスタンス間にトランザクション変更を自動的に伝搬する 2 つのプラグインがあります。 JMSObjectGridEventListener プラグインは、JMS を使用して、eXtreme Scale 変更を自動的に伝搬します。
図 1. JMS によって変更が伝搬されるピア複製キャッシュ
異なる Java 仮想マシンで実行している 2 つの ObjectGrid インスタンス間で JMS が変更を伝搬します。各 ObjectGrid インスタンスにはそれぞれアプリケーションが関連付けられています。
WebSphere Application Server 環境 を実行している場合は、TranPropListener プラグインも使用可能です。TranPropListener プラグインは、高可用性 (HA) マネージャー を使用して、各ピア・キャッシュ・インスタンスに変更を伝搬します。
図 2. HA マネージャーによって変更が伝搬されるピア複製キャッシュ
異なる Java 仮想マシンで実行している 2 つの ObjectGrid インスタンス間で HA マネージャーが変更を
伝搬します。
各 ObjectGrid インスタンスにはそれぞれアプリケーションが関連付けられています。

利点

  • より頻繁にデータが更新されるため、データが有効な場合が増えます。
  • TranPropListener プラグインを使用すると、ローカル環境と同様、 eXtreme Scale デプロイメント記述子 XML ファイルや他のフレームワーク (Spring など) を使用 して、eXtreme Scale をプログラマチックまたは宣言的に作成できます。HA マネージャーとの 統合は自動的に行われます。
  • 最適のメモリー使用効率および並行性が得られるように、各 BackingMap を独立して調整できます。
  • BackingMap 更新は、単一の作業単位にまとめることができ、Java Transaction Architecture (JTA) トランザクションなどの 2 フェーズ・トランザクションの最終参加者として統合することができます。
  • 十分小さなデータ・セットの少数 JVM トポロジー、または頻繁にアクセスされるデータのキャッシングに最適です。
  • eXtreme Scale に対する変更 は、すべてのピア eXtreme Scale インスタンスに複製されます。 変更は、永続サブスクリプションが使用されている限り、整合性が保たれます。

欠点

  • JMSObjectGridEventListener の構成および保守は、複雑になる場合があります。eXtreme Scale は、eXtreme Scale デプロイメント記述子 XML ファイルまたは Spring などのその他のフレームワークを使用して、プログラマチックまたは宣言的に作成できます。
  • スケーラブルではありません。データベースが必要とするメモリー量が、JVM の負担になる場合があります。
  • Java 仮想マシンを追加する場合に不適切な機能:
    • データを簡単には区画化できない
    • 無効化にコストがかかります。
    • 各キャッシュは個別にウォームアップが必要になります。

使用する場合

デプロイメント・トポロジーは、キャッシュに入れるデータ量が小さく、1 つの JVM に収まり、かつ比較的安定している場合にのみ使用します。