Infinispan は Java データグリッドプラットフォームです。キャッシュされた データの管理に JSR-107 準拠のキャッシュインターフェースを提供します

以下の Infinispan キャッシュコンテナーが ${build.fullName} で使用されます:

各キャッシュコンテナーは「repl」および「dist」キャッシュを定義します。これらのキャッシュは、ユーザーアプリケーションによって直接使用されてはなりません。

Infinispan の機能と設定オプションに関する詳細は、 Infinispan ドキュメント を参照してください。

クラスタリングモード

${build.shortName} で Infinispan を使用すると、2 つの方法でクラスタリングを設定できます。ご使用のアプリケーションに適した方法は要件によって異なります。各モードでは可用性、一貫性、信頼性、およびスケーラビリティーのトレードオフが発生します。クラスタリングモードを選択する前に、ネットワークで最も重要な点を特定し、これらの要件のバランスを取ることが必要となります。

レプリケーションモード

Replicated モードはモードはクラスターの新しいインスタンスを自動的に検出し、追加します。これらのインスタンスに加えられた変更は、クラスター上のすべてのノードにレプリケートされます。ネットワークでレプリケートされる情報量が多いため、通常レプリケートモードは小型のクラスターでの使用に最も適しています。UDP マルチキャストを使用するよう Infinispan を設定すると、ネットワークトラフィックの輻輳をある程度軽減できます。

分散モード

Distribution モードでは、Infinispan はクラスターを線形にスケールできます。Distribution モードは一貫性のあるハッシュアルゴリズムを使用して、クラスター内で新しいノードを配置する場所を決定します。保持する情報のコピー数 (または所有者数) は設定可能です。保持するコピー数、データの永続性、およびパフォーマンスにはトレードオフが生じます。保持するコピー数が多いほどパフォーマンスへの影響が大きくなりますが、サーバーの障害時にデータを損失する可能性は低くなります。ハッシュアルゴリズムは、メタデータのマルチキャストや保存を行わずにエントリーを配置し、ネットワークトラフィックを軽減します。

クラスターサイズが 6-8 ノードを超える場合は Distribution (dist) モードをキャッシュストラテジーとして使用するよう考慮してください。デフォルトの Replicated モードではデータはクラスター内のすべてのノードで分散されますが、Distribution モードではノードのサブセットのみに分散されます。

同期および非同期のレプリケーション

レプリケーションは同期または非同期モードのいずれかで実行でき、要件とアプリケーションの応じてモードが選択されます。同期レプリケーションでは、ユーザーのリクエストを処理するスレッドはレプリケーションが正常に終了するまでブロックされます。レプリケーションに成功した場合のみ応答がクライアントに返信され、スレッドが開放されます。同期レプリケーションはクラスターの各ノードからの応答を必要とするため、ネットワークトラフィックに影響を与えます。ただし、クラスターのすべてのノードへ確実に変更が加えられる利点があります。

非同期レプリケーションはバックグラウンドで実行されます。Infinispan は、バックグラウンドスレッドがレプリケーションの実行に使用するレプリケーションキューを実装します。レプリケーションは、時間ベースまたはキューのサイズのいずれかによってトリガーされます。アプリケーションキューを使用すると、クラスターノード間で対話が行われないため、パフォーマンスを向上することができます。非同期レプリケーションの難点は、精度が低いことです。実行に失敗したレプリケーションはログに書き込まれ、リアルタイムでは通知されません。

キャッシュコンテナー

キャッシュコンテナーはサブシステムによって使用されるキャッシュのリポジトリーです。Infinispan では、デフォルトキャッシュコンテナーは設定 xml ファイルで定義されます。1 つのキャッシュがデフォルトキャッシュとして定義され、そのキャッシュがクラスタリングに使用されます。