副本一致性思考的角度
副本一致性思考的角度
A. 強一致性和弱一致性的本質區別是,當進程訪問系統時是否允許副本之間存在不一致
B. 觀察分佈式系統一致性可以從這三個方面的組合來看:
多個線程還是一個線程,同一時刻還是不同時刻,同一副本還是不同副本。
組合的結果共有6種:
一個線程,同一時刻,訪問同一副本, 無效的。
一個線程,同一時刻,訪問不同部分, 無效
一個線程,不同時刻,訪問同一副本, 單機模式
一個線程,不同時刻,訪問不同副本, 單用戶多終端模式
多個線程,同一時刻,訪問同一副本, 併發訪問
多個線程,同一時刻,訪問不同副本, 要看線程數與副本數的比例,以及具體的訪問模式,既可以是1對1,也可以是N對1
多個線程,不同時刻,訪問同一副本, 隊列,串行化
多個線程,不同時刻,訪問不同副本, 也要具體分析
C. 單調讀、單調寫、讀寫一致性、寫讀一致性,這四類是否組成了最終一致性的全部?
我認爲不是。這四種一致性,都基於同一個假設:
在副本應用其它節點更新這個過程中,用戶不對同一一致性單元進行更新。
同步系統在用戶再次訪問同一一致性單元前,完成對他的更新,用戶訪問的是不同副本節點。
最終一致性的定義,沒有約束,節點的一致狀態同步要在用戶下一次訪問前完成。所以我認爲,這四種
類型並不是最終一致性的全部。只要在用戶不再進行更新後,節點最終能獲得一致性,即是最終一致性。
同步的過程中,用戶最終將看到節點的一致狀態,沒有特定的時間約束。
比如,使用Wiz在家編輯了文件,並同步到了雲端。但來到學校後,因爲網絡中斷,我看到將仍是舊版本的數據,
這就不符合讀寫一致性。
這個四種一致性,是一種參考,如果你開發的同步系統想提供某種一致性,就需要對用戶的訪問有所限制。
比如,在某個一致性單元完成同步前,不允許用戶訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.