1.3. バックアップストラテジー
Data Grid クラスターは、データをリモートサイトにバックアップするためにさまざまな戦略を使用できます。
Data Grid は、ローカルキャッシュへの書き込みが発生するのと同時にサイト間で複製します。たとえば、クライアントが LON に "k1" と書き込む場合、Data Grid は同時に "k1" を NYC バックアップします。
1.3.1. 同期バックアップ リンクのコピーリンクがクリップボードにコピーされました!
Data Grid がデータをバックアップ場所に複製する場合は、操作が完了するのを待たずにローカルキャッシュに書き込みます。
バックアップ操作が失敗した場合に、Data Grid がローカルキャッシュへの書き込みを処理する方法を制御できます。たとえば、リモートサイトへのバックアップが失敗した場合に、ローカル書き込みを中止して例外を出力するように Data Grid を設定できます。
同期バックアップは、楽観的なトランザクションに参加するキャッシュを持つ 2 フェーズコミットもサポートします。バックアップの最初のフェーズはロックを取得します。2 番目のフェーズは変更をコミットします。
クロスサイトレプリケーションのある 2 フェーズコミットは、ネットワーク全体で 2 つのラウンドトリップが必要なため、パフォーマンスに大きく影響します。
1.3.2. 非同期バックアップ リンクのコピーリンクがクリップボードにコピーされました!
Data Grid がデータをバックアップ場所に複製する場合、操作が完了するのを待たずにローカルキャッシュに書き込みます。
非同期バックアップ操作およびローカルキャッシュへの書き込みは、互いに独立しています。バックアップ操作が失敗した場合は、ローカルキャッシュへの書き込み操作は続行され、例外は発生しません。
1.3.3. 同期バックアップと非同期バックアップの比較 リンクのコピーリンクがクリップボードにコピーされました!
同期バックアップは、サイト全体でのデータの一貫性を最も強力に保証します。strategy=sync の場合、cache.put() 呼び出しが返されると、ローカルキャッシュとバックアップの場所で値が最新の状態であることがわかります。
この一貫性のために犠牲となるのがパフォーマンスです。同期バックアップは、非同期バックアップと比較すると、レイテンシーが大幅に高くなります。
一方、非同期バックアップは、クライアントリクエストにレイテンシーを追加しないので、パフォーマンスに影響を及ぼすことはありません。ただし、strategy=async の場合、cache.put() 呼び出しが返されると、バックアップの場所の値がローカルキャッシュの値と同じであるかどうかを確認できません。