簡單說一說數據存儲的一致性
數據存儲的一致性模型是存儲系統和數據使用者之間的約定。一致性有不同程度,大致如下:
1. 強一致性:更新完成后,任何后續訪問都將返回更新過的值。
2. 弱一致性:系統不保證后續訪問將返回更新過的值,在那之前要先滿足若干條件。通常條件就是經過一段時間,也就是不一致窗口。
3. 最終一致性:存儲系統保證如果對象沒有新的更新,最終所有訪問都將返回最后更新的值。
最終一致性的各種實體:
1. 因果一致性:如果進程A通知進程B它已更新了一個數據項,那么進程B的后續訪問將返回更新后的值,且一次寫入將保證取代前一次寫入。與進程A無因果關系的進程C的訪問遵守一般的最終一致性規則。
2.讀己之所寫一致性:這是一個重要的模型。當進程A自己更新一個數據項之后,它總是訪問到更新過的值,絕不會看到舊值。這是因果一致性模型的一個特例。
3.會話一致性:這是上一個模型的實用版本,它把訪問存儲系統的進程放到會話的上下文中。只要會話還存在,系統就保證“讀己之所寫”一致性。如果由于某些失敗情形令會話終止,就要建立新的會話,而且系統的保證不會延續到新的會話。
4.單調讀一致性:如果進程已經看到過數據對象的某個值,那么任何后續訪問都不會返回在那個值之前的值。
5.單調寫一致性:系統保證來自同一個進程的寫操作順序執行。要是系統不能保證這種程度的一致性,就非常難以編程了。
關于數據存儲的一致性模型就介紹這么多,希望本文的理論知識能對各位在以后的數據庫開發道路上有所幫助吧,謝謝各位了!
【編輯推薦】