2

私がChubbyについて理解しているように、いつでも5台のChubbyサーバーがあります。1 つはマスターで、クォーラムへの書き込みの調整を処理し、他の 4 つのサーバーは読み取り専用で、マスターへの書き込みの転送処理を行います。書き込みは Paxos を使用して一貫性を維持します。

マスターと 4 つのレプリカに違いがある理由を誰かが説明してくれませんか。Chubby がマルチマスターではないのはなぜですか? この質問は Zookeeper にも当てはまります。

4

1 に答える 1

2

ノードが競合に対処する必要がないため、マスターが 1 つの方が効率的です。

Chubby と Zookeeper はどちらも、システムの要点が、ある状態から次の状態への遷移の全体的な順序を決定する分散状態マシンを実装しています。複数のノードが同時に遷移を提案している場合、競合を解決するには多くのメッセージ (理論的には無限のメッセージ) が必要になる場合があります。

Paxos (および Chubby) は、競合を減らすためにレプリカが識別リーダーに書き込みを転送する「識別リーダー」と呼ばれる最適化を使用します。(私は、Chubby レプリカがこれを行うと想定しています。できなければ、デザイナーはその責任をクライアントに押し付けるだけです。) Zookeeper もこれを行います。

Chubby と Zookeeper はどちらも実際に複数のリーダーを処理します。なぜなら、死亡したことを知らずに復活したリーダーに対処しなければならないからです。Chubby にとって、これが Paxos を使用することの要点です。最終的にリーダーの 1 人が勝利します。(理論的にはそうではないかもしれませんが、私たちエンジニアはランダム化されたバックオフなどの実際的なことを行って、その確率を許容できるほど小さくします。) 一方、Zookeeper は各リーダーに減少しない ID を割り当てます。現在のリーダー以外の移行は拒否されます。これは、リーダーが死ぬと、Zookeeper が一時停止し、新しい遷移を受け入れる前に再構成フェーズを通過する必要があることを意味します。

于 2013-03-29T21:09:52.560 に答える