3

私はクラスターコンピューティングのさまざまなアーキテクチャを調査しています。人気のあるもののいくつかは次のとおりです。

  1. マスタースレーブ。
  2. RPC
  3. ..。

マスタースレーブでは、通常の方法は、1台のマシンをマスターとして設定し、多数のマシンをマスターによって制御されるスレーブとして設定することです。ここのある特定のアルゴは私に興味を持った。これはリーダー選出アルゴと呼ばれ、どのマシンがマスターになるかを選択する際に一定のランダム性があります。

私の質問は-なぜ誰もがこの方法でマスターマシンを選びたいのでしょうか?このアプローチは、マシンをマスターとして手動で選択する場合と比較して、どのような利点がありますか?

4

3 に答える 3

12

このアルゴリズムにはいくつかの利点があります。

  1. リーダーとしてのノードの選択は動的に行われるため、たとえば、最高のパフォーマンスを持つノードを選択でき、新しいノードの到着がより適切な選択になる場合があります。
  2. リーダーを動的に選択するもう 1 つの良い方法は、ノードの 1 つに重大な障害 (PC がシャットダウンしているなど) がある場合、他の選択肢があり、リーダーを手動で変更する必要がないというものです。

  3. 手動でノードを選択した場合、このノードを使用するように他のすべてのノードを手動で構成し、時間を手動で設定する必要がありますが、このアルゴリズムはタイミングの問題を処理するのに役立ちます。

  4. たとえば(あまり関係ありません)、ほとんどの場合、DHCPを使用するのはなぜですか?このアルゴリズムによって処理される構成が多すぎます。
于 2011-01-16T18:06:57.623 に答える
2

ノードのネットワークを考えると、常に 1 つのリーダー ノードを持つことが不可欠です。現在のリーダーが死亡した場合、ネットワークは何らかの方法で別のリーダーを選択する必要があります。このシナリオと要件を考えると、それを行うには 2 つの方法があります。

  1. 誰がリーダーになるかを決定する中央ノードがある中央システムアプローチ。現在のリーダーが死亡した場合、この中央ノードは、誰がリーダーの役割を引き継ぐべきかを決定します。しかし、これは単一障害点です。つまり、リーダーの決定を担当する中央ノードがダウンし、現在のリーダーが死亡した場合にリーダーを選択する人が誰もいません。

  2. 同じシナリオで、分散リーダー選択を使用できます。これは、すべてのノードでリーダーが誰であるべきかというコンセンサスに達するためです。したがって、誰がリーダーになるべきかを決定する中央ノードを持つ必要がないため、単一障害点が排除されます。リーダーノードが死ぬと、ノードの障害を検出する方法があり、すべてのノードが分散リーダー選択アルゴリズムを開始し、相互にリーダーを選出するコンセンサスに達します。

要するに、中央制御のないシステムがある場合、おそらくシステムは単一障害点を持たずにスケーラブルであることを意図しているため、これらのシステムではノードを選択するためにリーダー選挙アルゴリズムが使用されます。

于 2011-02-10T22:59:05.673 に答える
2

このようなアルゴリズムを使用する主なアイデアは、追加の構成を取り除き、ある種の柔軟性を追加し、システム全体の安定性を高めることです。ただし、通常 (HPC/MPI アプリケーションでは) マスター ノードは手動で選択されます。

マスター選択アルゴリズムが非常に簡単であるとします。使用可能なシステムのリストを取得し、IP アドレスが最大のものを選択します。この場合、任意のノードで新しいプロセスを簡単に開始でき、マスター ノードが自動的に検出されます。

このようなアイデアの良い例の 1 つは、WCCP プロトコルの「指定プロキシ」選択アルゴリズムです。このアルゴリズムでは、プロキシの数を柔軟に変更でき、実行時にマスター ノードが選択されます。

于 2011-01-16T17:57:12.570 に答える