找到了一篇比較詳細的介紹。
詳細連線:
大概內容:
一致性的角度:
以資料為中心的一致性模型
以客戶為中心的一致性模型
保證最低的序列化,以達到最好的效率。
以資料為中心的一致性模型
一致性模型:
嚴格一致性
因果一致性
順序一致性
fifo一致性 fifo 保證單程序的寫順序
同步變數的一致性:
弱一致性
釋放一致性
入口一致性
修改變數資料值,不保證其它程序什麼時候能看到值的變化,但是當執行了一次同步操作後,所有的程序都會看到最新的值。
以使用者為中心的一致性模型
最終一致性 如果更新的間隔時間比較長,那麼所有的副本能夠最終大道一致性
單調讀一致性 單調讀一致性強調任何時刻不能讀到比以前讀到的資料還舊的資料
單調寫一致性 單調寫一致性跟以資料為中心的
fifo
一致性類似,但是他們的場景不同,
fifo
一致性是多個程序同時去寫,而此處強調的是針對乙個程序。
寫後讀一致性 乙個程序對資料項
a執行一次寫操作的結果總是會被該程序對
a執行的後續讀操作看見
讀後寫一致性 同一程序對資料項
a執行的讀操作之後的寫操作,保證發生在於
a讀取值相同或比其更新的值上。
上面的兩個分類主要是從學術角度進行分類,實際情況中,主要分成三類:
弱一致性(
weak
)寫入乙個資料
a成功後,在資料副本上可能讀出來,也可能讀不出來。不能保證多長時間之後每個副本的資料一定是一致的。
最終一致性(
evebtually
)寫入乙個資料
a成功後,在其他副本有可能讀不到
a的最新值,但在某個時間視窗之後保證最終能讀到。可以看做弱一致性的乙個特例。這裡面的重點是這個時間視窗。
強一致性(
strong)資料
a一旦寫入成功,在任意副本任意時刻都能讀到
a的最新值。
弱一致性和最終一致性的副本同步是採用非同步的方式,而強一致性一般要求同步更新副本,然後才能返回成功,否則很難滿足任意副本任意時刻都能讀到最新值,非同步的通常意味著更好的吞吐量,但也意味著更複雜的架構,更複雜的開發、除錯。同步意味著簡單,但也意味著響應時間更長,吞吐量的更低。
分布式系統 一致性模型
分布式系統中乙個重要的問題就是資料複製,資料複製一般是為了增強系統的可用性或提高效能。而實現資料複製的乙個主要難題就是保持各個副本的一致性。本文首先討論資料複製的場景中一致性模型如此重要的原因,然後討論一致性模型的含義,最後分析常用的一致性模型。資料複製主要的目的有兩個 可用性和效能。首先資料複製可...
分布式系統 一致性模型
原創 阿里云云棲社群 2019 03 13 13 00 00 分布式系統中乙個重要的問題就是資料複製,資料複製一般是為了增強系統的可用性或提高效能。而實現資料複製的乙個主要難題就是保持各個副本的一致性。本文首先討論資料複製的場景中一致性模型如此重要的原因,然後討論一致性模型的含義,最後分析常用的一致...
保證一致性嗎 分布式系統 一致性協議
一致性模型本質上是程序與資料儲存的約定,通過一致性模型我們可以理解和推理在分布式系統中資料複製需要考慮的問題和基本假設。那麼,一致性模型的具體實現有一些呢?本文會介紹一致性協議實現的主要思想和方法。一致性協議描述了特定一致性模型的實際實現。一致性模型就像是介面,而一致性協議就像是介面的具體實現。一致...