分散式系統中連貫性coherence和一致性consistency的區別?
連貫性coherence確保可以按順序看到寫入內容(帶有業務語義);一致性consistency確保可以在不同位置按有意義的順序檢視寫入的內容(無關乎上下文或語義)。
分散式演算法CRDT不保證連貫性coherence,而是保證一致性。
當CRDT用於文件編輯時,如果這些編輯是普通的人工編輯,則結果在句子級別上通常可能是連貫的,但在整個文件級別上卻往往不是。
舉一個簡單的例子,如果一個人在整個文件中更改了一個常用術語,而另一個人在編寫新內容時在同樣的地方卻還是使用了舊的術語,那麼即使所有使用者在語義上進行了一致的更改,該文件在語義上也是不連貫的。現在看到的是相同的最終一致的文件。
看這個例子:請看短語:“張三的牆壁上有一隻吉他”。A將其改寫為“張三的牆壁上有一隻吉他,這是他去年夏天釣魚時獲得的獎盃”,而B則單獨修改為“張三很喜歡音樂,把他最喜歡的吉他掛在了牆上”。CRDT忠實地應用了這兩種編輯,並將衝突解決為:“張三很喜歡音樂,把他最喜歡的吉他掛在了牆上,這是他去年夏天釣魚時獲得的獎盃。”
在幾乎任何系統中,語義資料都不能由任何可用的資料模型完全表示。任何自動解決衝突的模型,無論多麼智慧,都可能導致語義上無意義的合併。
CRDT非常非常酷。但是,人們常常認為他們可以代替手動稽核和解決衝突。其實不是。
相關文章
- 分散式系統:一致性模型分散式模型
- 一致性雜湊演算法及其在分散式系統中的應用演算法分散式
- 張大胖和CAP定理(分散式系統、可用性、一致性、分割槽容錯性)分散式
- Zookeeper 如何保證分散式系統資料一致性分散式
- 分散式系統中一致性雜湊演算法分散式演算法
- 分散式服務化系統一致性的“最佳實幹”薦分散式
- 分散式事務中的一致性和隔離性你真的懂了嗎分散式
- 如何理解Linux系統中的資料一致性和IO型別?Linux型別
- 分散式應用中的一致性協議分散式協議
- 流式dma和一致性dma的區別
- 分散式系統2:分散式系統中的時鐘分散式
- 深入理解分散式系統:分割槽、複製、分散式事務以及系統一致性與共識分散式
- 架構文摘:分散式系統Session一致性問題解析架構分散式Session
- 帶你瞭解分散式系統的資料一致性問題分散式
- 叢集和分散式區別分散式
- 什麼是分散式系統中的冪等性分散式
- 你真的懂嗎?分散式系統的基本問題:可用性與一致性分散式
- 分散式系列第一彈:分散式一致性!分散式
- 分散式系統:常見陷阱和複雜性分散式
- 分散式系統的資料一致性問題,你是如何解決的分散式
- 分散式鎖的區別分散式
- 高併發架構系列:詳解分散式一致性ACID、CAP、BASE及區別架構分散式
- 本地事務和分散式事務的區別分散式
- 分散式系統中ID的需求分散式
- 分散式系統面試連環炮分散式面試
- 彈性分散式深度學習系統分散式深度學習
- paxos分散式一致性演算法分散式演算法
- Paxos——分散式一致性演算法分散式演算法
- 深入剖析分散式事務一致性分散式
- HDFS分散式儲存中NameNode 和DataNode 有什麼區別?分散式
- 分散式系統關注點(18)——「快取穿透」和「快取雪崩」到底啥區別?分散式快取穿透
- 分散式架構和微服務架構的區別分散式架構微服務
- 分散式 - 分散式系統的特點分散式
- 分散式系統中的分散式鏈路追蹤與分散式呼叫鏈路分散式
- 分散式儲存系統可靠性:系統量化估算分散式
- linux和windows系統的區別LinuxWindows
- 分散式資料快取中的一致性雜湊演算法分散式快取演算法
- 分散式事務方案 - 最終一致性分散式