為什麼 percolator 的事務兩階段提交不需要 Coordinator?

時間 2021-06-03 04:34:52

1樓:hellocode

傳統的2PC中的Coordinator是為了保證原子性提交,如果在Coordinator commit成功,認為事務Commit;如果發生異常,由Coordinator來負責rollback 或者 roll-forward整個事務。

實際上Coordinator的角色可以進一步分解:

向所有Participant傳送Prepare請求,確定這個是否可以提交

如果可以提交,寫Commit Log,並向所有Participant廣播訊息

如果不能提交,回滾或者重試,釋放在Prepare階段申請到的資源

因此Percolator實際上就是乙個把Coordinator的任務分解重組之後的方案:

Prepare請求的廣播,由Client負責

Commit的決定,也由Client判斷

Commit Log:Client在Bigtable中寫Primary Key的Write列

Commit資訊廣播:Client在Bigtable修改Secondary Key的Write列

rollback/roll-forward:這個也是由Client驅動,通過Prepare Log和Commit Log的狀態來判斷

概括一下,Percolator把Coordinator的角色分成有狀態和無狀態兩部分,有狀態的下沉到Bigtable,無狀態的話就交給Client執行。

至於Percolator這種設計的優劣,以及其他2PC的工程實現(例如Spanner的2PC就是另一種取捨),甚至於Percolator事務的Isolation保證,那就是另乙個問題了,暫且不提。

為什麼我做的事,父母不提,我姐做的事,即使很小念念不忘?

小霞 你做得是父母不提,不見得是他們沒有看見而是大多基於父母對你寄於厚望而吝於表揚,只是怕你自滿而停止進取,你姐做的事,不論大小,父母能念念不忘,就是他們知道姐姐是你效仿的榜樣,又怕你因是小的而忽略了姐姐做的事情,父母只是時時給你提醒要你學習而已,希望你不要因此而介懷甚至選擇無視父母的愛啊! si ...

Lending Club 做的事為什麼商業銀行做不了?

大魚 題主貌似僅只看到利率的問題?拋開市場化利率 公尺國的利率情況不了解,國內也在推進中 說說為什麼商業銀行做不了P2P幹的事。樓下幾位答主已經從風控和成本層面說了。是滴,商業銀行和P2P不論從監管和融資成本方面都不可同日而語。補充一點 網際網路講求長尾效應。碎片化的融資需求是商業銀行無暇服務的。客...

為什麼同樣的事,男生受罰嚴重。?

吃火鍋叫我丶 前兩天看了金星老師的訪問 感覺不只電視業適合,大家都適合 沒記錯是說 女孩當驢使,男孩當畜牲使 雖然不好聽,但是這個社會就是這樣 沒有絕對的公平 自我強大吧 這是唯一出路 三秋 首先一定要知道這是什麼命題!如果論觸及法律的事情,這問題就是根本意義上的錯誤。憑什麼她是個女的殺了人就判無期...