分布式系统中连贯性coherence和一致性consistency的区别?

微信扫一扫,分享到朋友圈

分布式系统中连贯性coherence和一致性consistency的区别?

连贯性coherence
确保可以按顺序看到写入内容(带有业务语义); 一致性consistency
确保可以在不同位置按有意义的顺序查看写入的内容(无关乎上下文或语义)。

分布式算法CRDT不保证连贯性coherence,而是保证一致性。

当CRDT用于文档编辑时,如果这些编辑是普通的人工编辑,则结果在句子级别上通常可能是连贯的,但在整个文档级别上却往往不是。

举一个简单的例子,如果一个人在整个文档中更改了一个常用术语,而另一个人在编写新内容时在同样的地方却还是使用了旧的术语,那么即使所有用户在语义上进行了一致的更改,该文档在语义上也是不连贯的。现在看到的是相同的最终一致的文档。

看这个例子:请看短语:“张三的墙壁上有一只吉他”。A将其改写为“张三的墙壁上有一只吉他,这是他去年夏天钓鱼时获得的奖杯”,而B则单独修改为“张三很喜欢音乐,把他最喜欢的吉他挂在了墙上”。CRDT忠实地应用了这两种编辑,并将冲突解决为:“张三很喜欢音乐,把他最喜欢的吉他挂在了墙上,这是他去年夏天钓鱼时获得的奖杯。”

在几乎任何系统中, 语义数据都不能由任何可用的数据模型完全表示
。任何自动解决冲突的模型,无论多么智能,都可能导致语义上无意义的合并。

CRDT非常非常酷。但是,人们常常认为他们可以代替手动审核和解决冲突。其实不是。

Kubernetes Pod垂直自动伸缩(VPA)

上一篇

基于keepalived的lvs的DR模型高可用搭建

下一篇

你也可能喜欢

分布式系统中连贯性coherence和一致性consistency的区别?

长按储存图像,分享给朋友