最近對分布式幾個概念之間的關聯很疑惑 分布式事務,共識演算法,最終一致性。它們究竟是怎麼聯絡在一起的?

時間 2021-05-06 04:55:05

1樓:陸小鳳

分布式事務是多個系統之間就乙個事務的all or nothing達成共識,因此需要共識演算法。

如果通過共識演算法在多個系統之前提供全域性有序的事務處理,比如先假設有乙個1到N的佇列,然後達成共識每個佇列格應該放哪個事務,就可以在多個系統之間實現強一致。

簡單的理解,可能有誤,坐等大佬。

2樓:陳廣勝

事務:在一系列的讀/寫操作上達成ACID。

分布式事務:如果事務的讀/寫操作不在同乙個節點上,這個事務就是分布式事務;分布式提交需要多個節點間協調,一般使用2PC協議。

共識:在乙個值的多個副本上達成一致(Consensus),這些副本在不同的節點。

共識演算法,在多個副本上達成一致的演算法,像Paxos, Raft, 一般用來構建自動恢復的複製狀態機。

最終一致性:一種特定的弱一致性,說系統如果一直沒有接受新的更新,在經過一定時間後,對所有副本的訪問都會返回最後更新的值。

注意與ACID的Consistency區別,Disambiguating ACID and CAP

3樓:NeoX

不同層面的概念:

分布式事務是一種抽象 (Abstraction), 而且其實很籠統,你要什麼樣的保證,或者用資料庫術語說什麼樣的isolation guarantee? 是Serializability, Snapshot Isolation, 還是Eventual Consistency (所謂的最終一致性), 並沒有講。

共識演算法是實現手段,不管是PAXOS, 2PC (Jim Gary 和 Lamport 其實證明了2PC是PAXOS的一種特殊形式), 還是PBFT, RAFT, 都是來保證共識的具體演算法。

最終一致性是分布式系統或者分布式事務的乙個特性。基本上是說給的時間足夠長,在某些假設下,系統會最終回歸到一致性的狀態下。其實是乙個很弱的保證,因為並沒有講說多長時間能夠回歸,只要不是無限長就行 (甚至連這點很多系統也沒有嚴格的數學證明)。

4樓:小男

要了解這個概念要先了解CAP定理中的分割槽。

所謂的分割槽直白的說,就是把資料複製為兩份。

為了這兩份資料保持一樣,就產生了3種方法。

分別是事前,事中和事後。

分布式事務的方法是將要使用其中任意乙個資料時,要先鎖住另乙個資料。這樣修改完當前資料再修改另乙個資料。來保證資料的一致。

共識演算法是在修改其中任意乙個資料時,與其他資料協商,然後使用能夠協商一致的資料。

最終一致性是在所有資料都修改完成後,是指所有資料各修改各自的,修改好後把不一致的丟棄掉採用一致的部分。

分布式資料庫計算引擎對分布式儲存系統底座提出了哪些新的技術挑戰?

lemon wonder 我說一下HTAP情況,對於資料庫,TP主要是事務相關,一般底層儲存引擎使用行存,對於AP是分析性,對事務要求沒那麼高,一般用列存,要處理HTAP,那要做到行列混合儲存就很困難。對於儲存引擎,一種是外掛程式型,向MySQL中,SQL和儲存約定好介面,實現介面並直接使用。但是要...

分布式深度學習系統與傳統的分布式系統的區別

我覺得沒法嚴格區分吧,傳統分布式維護資料一致性 資料重發 災備等等,任何資料對它來說都是一串二進位制編碼。分布式深度學習系統 或者分布式機器學習系統 是在一套傳統分布式系統基礎上,更關注與如何進行梯度同步 引數同步 如何將傳統優化演算法並行化 如何將不可並行的優化演算法偽並行化等等。 桂能 傳統分布...

分布式儲存和分布式計算兩個哪個更適合作為工作深入方向發展

論深入的話,不懂儲存,談何計算?就好比 HDFS 玩的溜的人,他不會不懂 Hadoop,但會玩 Hadoop 的不一定會玩 HDFS。但從發展來看,深入淺出和由淺入深殊途同歸。對於大多數人來說,由淺入深是較好的路線,先懂計算,後知儲存。 xuhuleon 本科時間還早,都看看唄。兩個也不能徹底分開看...