《雲數據管理:挑戰與機遇》2.1.4 領導者選舉
領導者選舉
很多分布式算法都需要一個進程來充當協調者,然而,實際當中選擇哪個進程作為協調者通常並不重要。該問題通常被稱為領導者選舉(leader election),其關鍵在於要確保一個唯一的協調者被選中。該協議非常簡單,通常要求每個進程有一個進程編號,所有的進程編號都是唯一並且完全排序的。我們使用具有代表性的Bully算法(Bully Algorithm [Garcia-Molina, 1982])來對該協議進行舉例,該算法假設通信是可靠的。其核心思想是努力選擇具有最大進程編號的進程。任何一個進程,如果該進程剛從故障中恢複,或者該進程懷疑當前的協調者失效了,都可以發起新的選舉。有三類消息可以使用:election、ok和I won。
進程可以同時發起選舉。發起進程p向所有擁有較高ID的進程發送一個election消息,並等待ok消息。如果沒有收到任何ok消息,則p成為協調者,並向所有擁有較低ID的進程發送I won消息。如果該進程收到ok消息,則退出並等待I won消息。如果一個進程收到了election消息,可以返回。一個ok消息,並發起一個新的選舉。如果進程收到了一個I won消息,則發送者就是協調者。很容易證明Bully算法的正確性。選舉協議也可以利用邏輯通信結構或者覆蓋網絡(如環)來實現。Chang and Roberts [1979]設計了這種協議,該協議把所有的節點組織成一個邏輯環,其中每一個進程都知道它的近鄰,目的也是選擇具有最大ID的進程作為協調者。一個進程如果剛剛恢複或者檢測到協調者失效,可以發起新的選舉。該進程按順序對後繼節點進行詢問,直到發現活動節點,就把election消息發送給下遊最近的活動節點。每一個接收到election消息的進程把自己的ID添加到該消息中並順著環繼續傳遞。一旦消息返回到發起者,就選擇具有最大ID的節點作為領導者並順著環發布一個特殊的coordinator消息。注意,多個選舉可以並發執行。
最後更新:2017-05-19 12:31:12
上一篇:
D-News | 中國發布首個VR標準,穀歌為數據中心研發SDN新架構Espresso
下一篇:
《雲數據管理:挑戰與機遇》2.1.3 互斥和仲裁集
回憶篇,那些抹不去的童年記憶
雲服務器 ECS 建站教程:快速搭建 Moodle 課程管理係統
directdraw顯示yuv420(YV12)
拍立淘Open SDK-在你的App裏用相機連接淘寶和世界
阿裏雲雙11直播節目單曝光!雲棲社區精心呈現,歡迎觀看
阿裏研究院啟動2017年度淘寶村輔助認證活動(附表格下載)
WINDOWS中cmd的切換目錄cd命令失效
Eclipse的JSP頁麵提示Multiple annotations found at this line或者String cannot be resolved to a type
WIKIOI-1341 與3和5無關的數
Configure and Practice Backup and Recovery in Cloud