分布式中的一致性模型

2021-07-13 19:02:35 字數 1502 閱讀 6173

分布式中的一致性模型

進行資料複製主要出於兩個目的:可靠性和效能。資料一旦被複製,就會帶來一致性的問題。

以資料為中心的一致性模型

1.嚴格一致性(strict consistency)

對於資料項x的任何讀操作將返回最近一次對x進行寫操作的結果所對應的值。

嚴格一致性是限制性最強的模型,但是在分布式系統中實現這種模型代價太大,所以在實際系統中運用有限。

2.順序一致性

任何執行結果都是相同的,就好像所有程序對資料儲存的讀、寫操作是按某種序列順序執行的,並且每個程序的操作按照程式所制定的順序出現在這個序列中。

也就是說,任何讀、寫操作的交叉都是可接受的,但是所有程序都看到相同的操作交叉。順序一致性由lamport(1979)在解決多處理器系統的共享儲存器時首次提出的。

3.因果一致性

所有程序必須以相同的順序看到具有潛在因果關係的寫操作。不同機器上的程序可以以不同的順序看到併發的寫操作(hutto和ahamad 1990)。

假設p1和p2是有因果關係的兩個程序,例如p2的寫操作信賴於p1的寫操作,那麼p1和p2對x的修改順序,在p3和p4看來一定是一樣的。但如果p1和p2沒有關係,那麼p1和p2對x的修改順序,在p3和p4看來可以是不一樣的。

下表列出一些一致性模型,以限制性逐漸降低的順序排列。

一致性 描述

嚴格所有共享訪問按絕對時間排序

線性化所有程序以相同的順序看到所有的共享訪問。而且,訪問是根據(非唯一的)全域性時間戮排序的 順序

所有程序以相同順序看到所有的共享訪問。訪問不是按時間排序的 因果

所有的程序以相同的順序看到困果相關的共享訪問

fifo

所有程序以不同的程序提出寫操作的順序相互看到寫操作。來自不同的程序的寫操作可以不必總是以同樣的順序出現

另一種不同的方式是引入顯式的同步變數,下表是這樣的一致性模型的總結。

一致性 描述

弱只有在執行一次同步後,共享資料才被認為是一致的 釋放

退出臨界區時,使共享資料成為一致 入口

進入臨界區時,使屬於乙個臨界區的共享資料成為一致

以客戶為中心的一致性模型

1.最終一致性

最終一致性指的是在一段時間內沒有資料更新操作的話,那麼所有的副本將逐漸成為一致的。例如openstack swift就是採用這種模型。以一次寫多次讀的情況下,這種模型可以工作得比較好。

2.單調讀

如果乙個程序讀取資料項x的值,那麼該程序對x執行的任何後續讀操作將總是得到第一次讀取的那個值或更新的值

3.單調寫

乙個程序對資料x執行的寫操作必須在該程序對x執行任何後續寫操作之前完成。

4.寫後讀

乙個程序對資料x執行一次寫操作的結果總是會被該程序對x執行的後續讀操作看見。

5.讀後寫

同乙個程序對資料項x執行的讀操作之後的寫操作,保證發生在與x讀取值相同或比之更新的值上。

分布式一致性

分布式一致性是指在分布式環境中對某個副本資料進行更新操作時,必須確保其他副本也會更新,避免不同副本資料不一致。分布式系統乙個重要的問題時解決資料複製,一是為了增加系統的可用性防止單點故障,二是提高系統可用性,通過負載聚恆,使分布在不同位置的資料副本能夠提供服務。理想狀態下,當然希望分布式系統能夠實現...

分布式一致性

分布式系統的乙個重要問題是資料的複製。對資料的複製一般有兩個原因 資料複製的主要難題是保持各個副本的一致性。即在更新乙個副本時,必須確保同時更新其他的副本,否則資料的各個副本將不再相同。一致性模型實質上是程序和資料儲存之間的乙個約定。正常情況下,乙個資料項上執行讀操作時,它期待該操作返回的是該資料在...

分布式系統 一致性模型

分布式系統中乙個重要的問題就是資料複製,資料複製一般是為了增強系統的可用性或提高效能。而實現資料複製的乙個主要難題就是保持各個副本的一致性。本文首先討論資料複製的場景中一致性模型如此重要的原因,然後討論一致性模型的含義,最後分析常用的一致性模型。資料複製主要的目的有兩個 可用性和效能。首先資料複製可...