Open at7211 opened 2 years ago
我有讀到另外的說法是說 Sequential consistency 本身是 存在 total order 的,只是他的 total order 是不確定性的(arbitrary total order),只有維持操作合理性。而 Linearizability 本身不僅維持操作合理性,更追求時間上的全序(real-time order)。用影片例子表示:
—W(1 )——————————>
————W(2)———————>
—————————-R?——>
Sequential Consistency : R 有兩種可能: 1 or 2
—W(1)———W(2)———-R?——>
—W(2)———W(1)———-R?——>
Linearizability 只有一種可能: 2
—W(1)———W(2)———-R?——>
這樣子再回來看這篇文章所提到的:
总结一下,可以这么理解 ZooKeeper:从整体(read 操作 +write 操作)上来说是 sequential consistency,写操作实现了 Linearizability。
從整體操作上 ZooKeeper 在併發的狀況因為讀寫是 Sequential Consistency 所以 user 密集讀可能讀取到 1, 2,但是因為寫是 Linearizability,所以最終一定都是讀到 2,感覺算是最終一致的意思。
refs: http://www.bailis.org/blog/linearizability-versus-serializability/ https://www.youtube.com/watch?v=YmhmsHE7be4&t=130s
讚啦,懂哩
因為一開始讀 ddia 的第九章節看不太懂,又去看了其他資源,先推薦這篇:https://segmentfault.com/a/1190000022248118
基本上內容概括了這次的章節,但用不同的方式解說。
這次章節有提到的 causal consistency 屬於弱一制性,Linearizability 則屬於強一制性 強弱一制性的差別在於
而根據我的理解,皆是屬於強一制性的
但裡面提到
這邊我就有點不太懂,原來 sequential consistency 或 Linearizability consistency 可以分讀寫來看,這邊有人可以求解釋嗎?