最終一致性是一種編程模型,在這個模型中,程序員假設在一段足夠長的時間內,在不改變系統的情況下,特定程序的當前版本將最終分發,直到程序的每個副本都一致為止。最終一致性的概念用于編程方法,如樂觀復制、分布式共享內存和...
最終一致性是一種編程模型,在這個模型中,程序員假設在一段足夠長的時間內,在不改變系統的情況下,特定程序的當前版本將最終分發,直到程序的每個副本都一致為止。最終一致性的概念用于編程方法,如樂觀復制、分布式共享內存和分布式事務,最終的一致性是通過三個步驟來實現的。首先,分布式信息在系統上可用;然后是軟狀態,在這種狀態下,不同的用戶可能仍然在處理不同版本的數據;最后,一致性得到了實現,所有的計算機都可以訪問相同的數據與計算機的倒立應用最終一致性的最明顯的方式之一與在線分發的軟件更新有關。在更新發布后的最初幾秒鐘內,沒有人會擁有它;沒有足夠的時間讓軟件用戶下載和安裝更新。這是“可用”狀態;該更新已經存在,但尚未分發。隨著時間的推移,隨著用戶下載更新,有些人會擁有,有些人則不會。不過,經過足夠的時間后,每個使用該軟件的人都將更新到最新版本。這是最終一致性狀態背后的前提:如果有足夠的時間,任何更新都將在整個系統中完全傳播。隨著系統朝著最終一致性的方向努力,沖突是不可避免的。當程序版本或計算機上當前的信息與程序的“模型版本”不匹配時,就會發生沖突。程序的設置通常是為了識別和管理這些沖突當特定計算機上的文件比軟件或數據的最新模型版本舊時,系統通常會提示用戶啟動更新以解決差異。有三種可能的方法可以實現這些解決方案:寫入修復、讀取修復和異步修復。這些方法都會帶來與一致性模型一致的程序或數據的版本。它們之間的關鍵區別在于系統對修復操作進行計時的方式。所有這些操作都有優點和缺點。在寫修復中,對計算機上存儲的代碼的更改是在寫操作過程中進行的,當計算機已經在向系統的硬盤驅動器寫入數據時,這將修復不一致性,使程序或數據與模型保持一致,但也會暫時減慢原始寫入操作的速度。對于讀取修復,更正操作發生在從硬盤驅動器的讀取周期中。這反過來,減慢讀取操作。在異步修復中,修復發生在讀或寫操作都不發生時,這會導致CPU上的空閑周期消耗
-
發表于 2020-08-07 10:09
- 閱讀 ( 1699 )
- 分類:電腦網絡