2016-04-30 42 views
1

我一直在閱讀關於分佈式系統中的選舉算法。我讀了關於欺負算法並理解它。我碰到A Ring Algorithm,瞭解它如何進行選舉,但我不明白它是如何處理當兩個進程25同時發現協調員7不起作用的情況。選舉算法 - 環算法

每一種建立一個選舉消息,並開始循環it.Eventually,兩個消息會去所有的辦法,都25將其轉換爲協調員消息,具有完全相同的號碼,在同一訂購。

誰將成爲協調員(25)以及爲什麼根據此算法?

+0

@如果2和5都啓動該算法,同時Coordinatore將始終爲5(更大的id)。 –

回答

2

說2和5發現協調器不能正常工作,那麼兩者都將啓動選舉算法。

由於環是單向的,因此消息只能在一個方向上傳播。 2的選舉消息將達到5,5的選舉消息將達到2.

但有趣的是,每當一個節點收到選舉消息時,它就會將其id添加到該消息中。同樣,當一個節點收到其自己的選舉消息時,它選擇具有最大ID的節點作爲新協調者,這兩個選舉消息中將爲5。

因此5將成爲協調者併發送協調者消息。

+0

就是這樣!我錯過了這個--->「它選擇了最大的ID作爲新協調者的節點」,現在我明白了,非常感謝。 – JWizard