9.5.4. 各キャッシュが独自のストアを持つレプリケートされたキャッシュ


各ノードが独自のバックエンドストアを持つ 2 つのノード

図9.4 各ノードが独自のバックエンドストアを持つ 2 つのノード

このケースでは、 各ノードが独自のデータストアを持ちます。 キャッシュへの変更は クラスタ全体でレプリケートされ、 キャッシュローダーを使用して永続化されます。 つまり、 すべてのデータストアが全く同じステートを持つことになります。 変更をトランザクションで同期的にレプリケートする場合、 2 相コミットプロトコルにより、 すべての変更がレプリケートされ各データストアに永続化されるか、 何もレプリケートされず永続化も行われません (アトミック更新)。
JBoss Cache は XAResource ではありません。 そのため、 復元を実装しません。 復元をサポートするトランザクションマネージャを使用する場合は、 この機能を使用できません。
ここでの問題はステート転送です。 新しいノードが起動した時に以下を実行する必要があります。
  1. コーディネータ (クラスタ内の最も古いノード) にステートを送るよう指示します。 これは常に完全ステート転送となり、 既存のステートをすべて上書きします。
  2. コーディネータは、未完了トランザクションが完了するまで待機する必要があります。この待機中は新しいトランザクションを開始できません。
  3. 次に、 コーディネータは loadEntireState() を使用してキャッシュローダーに対して全体のステートを要求します。 キャッシュローダーは新しいノードにステートを送ります。
  4. 新しいノードは、 古いステートを上書きして新しいステートをストアに保存するようキャッシュローダーに指示します。 これは CacheLoader.storeEntireState() メソッドです。
  5. オプションとして、ステート転送中に一時 (インメモリ) ステートを転送することもできます。
  6. これで、 新しいノードのバックエンドストアのステートが、 クラスタ内の他のノードと同じになります。 また、 他のノードから受け取った変更はローカルのキャッシュローダーを使用して永続化されるようになります。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る