理解分布式一致性:Paxos協(xié)議之Multi-Paxos

在前面一篇文章我們講到了理解分布式一致性:Paxos協(xié)議之Basic Paxos,本篇文章我會講解更加通用和普遍的Multi-Paxos協(xié)議。

在Basic Paxos協(xié)議中,每一次執(zhí)行過程都需要經歷Prepare->Promise->Accept->Accepted 這四個步驟,這樣就會導致消息太多,從而影響分布式系統(tǒng)的性能。
如果Leader足夠穩(wěn)定的話,Phase 1 里面的Prepare->Promise 完全可以省略掉,從而使用同一個Leader去發(fā)送Accept消息。
當然我們還要對請求消息做一些改造,這里我們在請求里面加入了輪數(shù)I,每過一輪,I+1 。
下面我們用序列圖的形式盡可能的去展示Multi-Paxos的魅力。

Multi-Paxos without failures

下圖我們展示一個基本的Multi-Paxos一次執(zhí)行交互流程,系統(tǒng)有1個Client,1個Proposer, 3個Acceptor, 1個Learner。

Multi-Paxos when phase 1 can be skipped

上面我們講到在Multi-Paxos中,如果Leader足夠穩(wěn)定的話,在接下來的執(zhí)行中,phase 1 的請求其實是可以被省略的,那么接下來我們看一下被省略的整個流程。
這里round number需要+1,表示已經進入下一輪了。


Multi-Paxos when roles are collapsed

在Basic-Paxos中我們區(qū)分了很多角色,有Clients,Proposers, Acceptors and Learners。實際上Proposers, Acceptors and Learners可以合并成一個,我們把它統(tǒng)稱為Server。下面是合并之后的序列圖。


大家看看,是不是實現(xiàn)起來簡單很多?

Multi-Paxos when roles are collapsed and the leader is steady

同樣的,當Leader很穩(wěn)定的時候,我們可以在接下來的執(zhí)行中忽略Phase 1. 如下圖所示:


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

相關閱讀更多精彩內容

友情鏈接更多精彩內容