拜占庭將軍問題

曾經(jīng)的拜占庭國(guó)土遼闊,為了抵御來(lái)自各個(gè)方向的敵人,軍隊(duì)之間分隔很遠(yuǎn),他們之間只能通過信使互相傳遞消息。一場(chǎng)新的戰(zhàn)役即將爆發(fā),有5支拜占庭軍隊(duì)要共同進(jìn)退,5個(gè)將軍都是平級(jí)的,他們要怎么達(dá)成一起進(jìn)攻或者一起撤退的共識(shí)呢?

最簡(jiǎn)單的辦法就是投票,每個(gè)將軍都派出信使將自己的意見發(fā)給其他四個(gè)將軍。對(duì)每個(gè)將軍來(lái)說,算上自己的票數(shù),如果進(jìn)攻票超過2票就會(huì)發(fā)起進(jìn)攻,如果少于或者等于2票就撤退。這是最簡(jiǎn)單的情況,很合邏輯。那假如是下面的情況呢?

  1. 5個(gè)將軍中有一個(gè)是奸細(xì),其他4個(gè)將軍有兩個(gè)贊成進(jìn)攻,2個(gè)反對(duì),這個(gè)將軍給其中2個(gè)發(fā)去了進(jìn)攻的意見,給另外2個(gè)卻是撤退,結(jié)果是2支軍隊(duì)進(jìn)攻,2支軍隊(duì)撤退,沒有達(dá)成共識(shí)。
  2. 可能有一個(gè)或者多個(gè)信使被暗殺,或者被策反。

在這兩種情況下,投票的結(jié)果不能代表大多數(shù)將軍的意見。

以上,可以總結(jié)出拜占庭將軍問題:在可能有叛徒的情況下,其余忠誠(chéng)的將軍如何不受其影響達(dá)成一致的協(xié)議?

拜占庭帝國(guó)在還沒得出解決方案就亡國(guó)了,那現(xiàn)在說這個(gè)問題的意義在哪?

賣了個(gè)大官子,其實(shí)這個(gè)故事是對(duì)分布式系統(tǒng)要解決問題的模型化。

什么是分布式系統(tǒng)?

隨著對(duì)計(jì)算量和存儲(chǔ)量需求的不斷增加,制造一臺(tái)擁有超強(qiáng)計(jì)算能力和存儲(chǔ)空間的計(jì)算機(jī)成本高,而且總是會(huì)有瓶頸,分布式系統(tǒng)則是由一組普通廉價(jià)的計(jì)算機(jī)通過互相通信來(lái)一起完成計(jì)算和存儲(chǔ)等工作,當(dāng)需要更高的算量或者儲(chǔ)存時(shí),可以增加機(jī)器,需求少的情況可以減少機(jī)器,整體比單臺(tái)超級(jí)計(jì)算機(jī)更靈活也更實(shí)惠。

從 拜占庭將軍問題 到 分布式系統(tǒng)問題

將拜占庭將軍的故事映射到分布式系統(tǒng)上,每個(gè)將軍代表一臺(tái)計(jì)算機(jī),信使代表通信系統(tǒng),單臺(tái)計(jì)算機(jī)可能遭受惡意攻擊后向其他計(jì)算機(jī)發(fā)送錯(cuò)誤信息,通信網(wǎng)絡(luò)可能會(huì)阻塞、斷開,通信內(nèi)容可能被截取、替換,在這些情況下,正常運(yùn)行的計(jì)算機(jī)怎么達(dá)成一致執(zhí)行任務(wù)呢?

這是2013年圖靈獎(jiǎng)得主 Leslie Lamport 在 1980 年的論文 The Byzantine Generals Problem 中提出的分布式領(lǐng)域的容錯(cuò)問題,這是分布式領(lǐng)域最復(fù)雜、最嚴(yán)格的容錯(cuò)模型。

許多解決方案,共識(shí)算法相繼被提出。在日常工作中使用的分布式系統(tǒng)面對(duì)的問題不會(huì)那么復(fù)雜,更多的是計(jì)算機(jī)故障掛掉了,或者網(wǎng)絡(luò)通信問題而沒法傳遞信息,這種情況不考慮計(jì)算機(jī)之間互相發(fā)送惡意信息,極大簡(jiǎn)化了系統(tǒng)對(duì)容錯(cuò)的要求,最最主要的是達(dá)到一致性。

下一篇文章會(huì)介紹在這種簡(jiǎn)化要求的情況下的一種共識(shí)算法:Raft,再之后會(huì)講講其他的一些能夠解決復(fù)雜情況的共識(shí)算法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容