正在翻頁。
正在呈現下一章……
此閱讀內容目前僅有英語版。界面使用你選擇的語言。
閱讀英語原文 →Eventual consistency is a consistency model used in distributed computing to achieve high availability. An eventually consistent system ensures that if no new updates are made to a given data item, eventually all read accesses to that item will return the last updated value. Eventual consistency, also called optimistic replication, is widely deployed in distributed systems and has origins in early mobile computing projects. A system that has achieved eventual consistency is said to have converged, or achieved replica convergence.
Eventual consistency is a weak guarantee – most stronger models, like linearizability, are trivially eventually consistent.
Eventual consistency faces criticism for adding complexity to distributed software applications. This complexity arises because eventual consistency provides only a liveness guarantee (ensuring reads eventually return the same value) without safety guarantees—allowing any intermediate value before convergence. Application developers find this challenging because it differs from single-threaded programming, where variables reliably return their assigned values immediately.
With weak consistency guarantees, developers must carefully consider these limitations, as incorrect assumptions about consistency levels can lead to subtle bugs that only surface during network failures or high concurrency.
The most appropriate approach to reconciliation depends on the application. A widespread approach is "last writer wins". Another is to invoke a user-specified conflict handler. Timestamps and vector clocks are often used to detect concurrency between updates. Some people use "first writer wins" in situations where "last writer wins" is unacceptable.
Whereas eventual consistency is only a liveness guarantee (updates will be observed eventually), strong eventual consistency (SEC) adds the safety guarantee that any two nodes that have received the same (unordered) set of updates will be in the same state. A common approach to ensure SEC is conflict-free replicated data types.
選編并重新排版自 Eventual consistency,由其貢獻者編寫,采用 CC BY-SA 4.0. 修訂版 1374379428。 章節和格式經過精簡;連結中的修訂版提供完整背景與貢獻歷史。此參考文本繼續遵循原許可證。其附加引用連結來自該修訂版,尚未在此獨立核查。