ハイウォーターマーク
成功したレプリケーションを示す、ライトアヘッドログ内のインデックス。
別名: コミットインデックス
問題
ライトアヘッドログパターンは、サーバーのクラッシュと再起動後の状態を回復するために使用されます。ただし、ライトアヘッドログだけではサーバー障害時の可用性を確保できません単一サーバーが障害を起こした場合、サーバーが再起動するまでクライアントは機能できません。より可用性の高いシステムを実現するには、複数のサーバー上でログをレプリケートできます。リーダーとフォロワーを使用すると、リーダーはそのすべてのログエントリを、過半数クォーラムのフォロワーにレプリケートします。リーダーに障害が発生した場合は、新しいリーダーを選択して、クライアントは以前とほとんど同じようにクラスタで作業を続けることができます。ただし、まだいくつかの問題があります。
- リーダーはログエントリをフォロワーに送信する前に障害が発生する可能性があります。
- リーダーはログエントリを一部のフォロワーに送信した後で障害が発生する可能性がありますが、過半数のフォロワーに送信する前です。
これらのエラーシナリオでは、一部のフォロワーはログ内のエントリを欠落している場合があり、一部のフォロワーは他のフォロワーよりも多くのエントリを持つ場合があります。したがって、ログのどの部分をクライアントに公開しても安全かを各フォロワーが把握することが重要になります。
解決策
ハイウォーターマークはログファイル内のインデックスであり、過半数クォーラムのフォロワーに正常にレプリケートされたことが確認された最新のログエントリを記録します。リーダーはまた、レプリケーション中にハイウォーターマークをフォロワーに渡します。クラスタ内のすべてのサーバーは、ハイウォーターマーク以下の更新を反映したデータのみをクライアントに送信する必要があります。
詳細については、oreilly.comのオンラインeBookの第10章を参照してください。
このパターンは分散システムのパターンの一部です
2023年11月23日