過半数定足数
すべての決定において過半数を必要とすることで、2つのサーバーグループによる独立した意思決定を回避します。
問題
分散システムにおいて、サーバーはアクションを実行するたびに、クラッシュが発生した場合に、アクションの結果がクライアントに提供される必要があることを確認する必要があります。これは、クラスター内の他のサーバーに結果を複製することで実現できます。しかし、元のサーバーが更新が完全に認識されたことを確認する前に、どのくらいの数の他のサーバーが複製を確認する必要があるでしょうか?元のサーバーがあまりに多くの複製を待機した場合は、ライブネスが低下するため、応答が遅くなります。しかし、複製が十分でない場合は、更新が失われる可能性があります。これはセーフティの障害です。全体的なシステムパフォーマンスとシステムインテグリティのバランスを取ることは非常に重要です。
ソリューション
クラスターノードの大多数が更新を認識した場合、クラスターは更新を受信したことに同意します。この数を、クォーラムと呼びます。つまり、5つのノードのクラスターがある場合は、3のクォーラムが必要です。『n』ノードのクラスターの場合、クォーラムは『n』/ 2 + 1です。
クォーラムの必要性は、許容できる障害の数を示しています。これは、クラスターのサイズからクォーラムを引いた数です。5つのノードのクラスターは、2つが障害に耐えることができます。一般的に、『f』の障害を許容したい場合は、2『f』+ 1のクラスターサイズが必要です。
詳細については、oreilly.comのオンラインeブックの第8章を参照してください。
このパターンは分散システムのパターンの一部です。
2023年11月23日