同期ネットワークのコンテキスト内でのLCRとFloodmaxの実際的な違いを理解しようとしています。
Floodmaxの時間計算量はO(N)であり、本質的に次のように機能することを理解しています。
- すべてのプロセスは、これまでに確認した最大のUID(最初は独自のUID)を保持します。
- 各ラウンドで、各プロセスはこの最大値をすべての発信ネイバーに送信します。
- 直径が丸められた後、最大値がプロセスのUIDである場合は、それ自体がリーダーを選択します。それ以外の場合は、非リーダーになります。
一方、LCR:
- 各プロセスは、そのUIDをリングの周りに送信します。プロセスがUIDを受信すると、これを自身のUIDと比較します。
- 着信UIDが大きい場合、このUIDを次のプロセスに渡します。
- 着信UIDが小さい場合、それは破棄されます。
- それが等しい場合、プロセスはそれ自体をリーダーとして宣言します。
それもO(N)の時間計算量を持っています。したがって、本質的に、両方のアルゴリズムはトークンリングネットワークでUIDを渡します。2つの間に本当の違いや利点はありますか?