paxos演算法中,如果有兩個值被Accept了,其中乙個形成了多數派,另外乙個值怎麼處理?

時間 2021-06-07 18:15:12

1樓:樂樂Joker

沒什麼不一致的問題。只要多數派接受了某個值v,值v就被視為chosen。因為不管你少數派手上的值是什麼,都能通過後續prepare「學習」到v。

至於少數派怎麼同步v,新起一輪paxos流程,把「學習」到的v覆蓋掉少數派裡的值即可。

2樓:thinker

當把p2發給兩個acceptor去prepare的時候,其實會把p1的值返回給發起proposal的人。在第二輪中,它也只能發給兩個去acceptor去commit。

要理解一點是,paxos只是達成一次協議,保證多數派同意乙個值,而不是多個值。多個值是要多個paxos去達成的。

3樓:弓長帥

在這種情況下,paxos的一致性並沒有被破壞。learner如果想觀察到乙個」一致的「值,需要確認這個值被多數派accept過了。在這個case中,顯然只有P2滿足。

4樓:孔繁宇

關鍵在於理解proposal的chosen和accept是不同的

Paxos保證的Safety是只會有乙個proposal被chosen,而不是accept,只有當多數派acceptor在accept之後才叫做chosen

回到你的例子,只有P2被chosen,沒有違背Safety

5樓:郁白

oceanbase.org.cn/?

p=136

),根據協議p1b和p2a的要求,剛才p2的決議一定會被做為proposal value重新投票,而剛才p1的proposal value是不會被選為新的proposal value的。

6樓:大江

看過最早的那篇paxos的文章~

在講述單法令議會形成的過程中有這樣的說明:

所有的acceptor在通過第一階段形成乙個法定人數集後,會拒絕對以前提議進行投票

因為acceptor本地只記錄了乙個最新的提議的序號,老的提議的序號小於當前的提議,不會進行回覆(不回覆即不投票)

這也是paxos不保證可進行性的原因,如果有兩個leader不斷的發起提議且互相覆蓋,那麼決議永遠不能達成~

7樓:朱一聰

這個是 learner 負責的,paxos 保證不會有兩個不同的值滿足值被 chosen 的定義:多數派 acceptor 接受該值。獲取被 chosen 的值,每個 learner 可以詢問所有節點,看是否存在滿足 chosen 定義的值,當乙個 learner 學習到 chosen 的值它可以向其它節點廣播這個值,那麼其它 learner 就不用這麼麻煩了。

如果有兩個java類(不是介面),怎麼同時使用兩個類的功能?

思冉 解決這個問題,首先得了解類和類之間的關係。類和類之間的關係大體分為 is a 泛化 has a 包含 use a 依賴 is a細分可分為 繼承 實現。has a細分可分為 組合 聚合 關聯。包含的關聯強度不同 use a沒有細分。樓主的問題,第一種的解決方案 可以通過包含關係或者依賴關係來解...

如果有以下兩個女生,男生們應該怎麼選?

Reika 你信不信大部分男生會選第二個?哪怕我一看就覺得第二個女生很大可能性有一些問題。對於比較傳統的男生來說,第二個女生學歷偏低,長得好,滿足他們所有需求。對於不那麼傳統的男生來說,第二個女生的家境比較好,城市人,不會帶來一系列家庭問題,風險比較小。我一直覺得學歷並不能代表乙個人的受教育水平和三...

如果有兩個星球無法產生實質接觸,卻可以共享乙個網路,那麼這兩個星球有可能成為乙個經濟體嗎?

劉光達 乙個經濟體,看如何定義。如果是徹底的市場方式,我認為不會成為乙個穩定的經濟體,雙方會維持乙個足夠緊密但無法實現所有市場功能的鬆散的經濟組織。如果是徹底的計畫方式。我認為可以構成乙個非常緊密的經濟體,雙方有暴力手段維護共同的信用貨幣,這足夠形成乙個真正意義上的經濟體。總之,這不是乙個可以簡單論...