1.6. 状態遷移
状態遷移は、サイト間でデータを同期する管理操作です。
たとえば、LON がオフラインになると、NYC がクライアント要求の処理を開始します。LON をオンラインに戻すと、LON の Data Grid クラスターには NYC のクラスターと同じデータはありません。
LON と NYC の間でデータの一貫性を保つには、NYC から LON に状態をプッシュできます。
- 状態遷移は双方向です。たとえば、NYC から LON へ、または LON から NYC へ状態のプッシュを実行できます。
- 状態をオフラインサイトにプッシュすると、オンラインに戻ります。
状態遷移は、発信元サイトと受信サイトの両方のサイトに存在するデータのみを上書きします。Data Grid はデータを削除しません。
たとえば、"k2" は LON および NYC に存在します。"k2" は、LON がオフライン時に NYC から削除されます。LON をオンラインに戻すと、"k2" は引き続きその場所に存在します。NYC から LON に状態をプッシュすると、転送は LON の "k2" には影響しません。
状態遷移後にキャッシュの内容が同じになるようにするには、状態をプッシュする前に受信サイトのキャッシュからすべてのデータを削除します。
CLI から clear()
メソッドまたは clearcache
コマンドを使用します。
状態遷移は、プッシュの開始後に発生するデータへの更新を上書きしません。
たとえば、"k1,v1" は LON および NYC に存在します。LON がオフラインになったため、NYC からLON に状態遷移をプッシュします。これにより、LON が再びオンラインになります。状態遷移が完了する前に、クライアントは LON に "k1,v2" を配置します。
この場合、プッシュを開始した後に変更が発生したため、NYC からの状態遷移は "k1,v2" を上書きしません。
自動状態遷移
デフォルトでは、CLI を使用して、または JMX や REST 経由で、クロスサイトの状態遷移操作を手動で実行する必要があります。
ただし、非同期バックアップストラテジーを使用すると、Data Grid はクロスサイト状態遷移操作を自動的に実行できます。
バックアップロケーションがオンラインに戻り、ネットワーク接続が安定すると、Data Grid はバックアップロケーション間の双方向の状態遷移を開始します。たとえば、Data Grid は、状態を LON から NYC に、NYC から LONに同時に遷移します。
一時的なネットワークの切断による状態遷移操作のトリガーを回避するために、バックアップの場所がオフラインになるために満たす必要のある条件が 2 つあります。バックアップの場所のステータスはオフラインでなければならず、JGroups RELAY2 のクロスサイトビューに含めることはできません。
自動状態遷移は、キャッシュの開始時にもトリガーされます。
LON が起動するシナリオでは、キャッシュの開始後に、通知が NYC に送信されます。これに続いて、NYC は LON への一方向の状態遷移を開始します。