首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您将如何向没有分布式存储系统背景的受众解释数据的一致性?

您将如何向没有分布式存储系统背景的受众解释数据的一致性?
EN

Stack Overflow用户
提问于 2014-06-10 14:41:44
回答 1查看 184关注 0票数 1

数据一致性是分布式存储系统中的一个重要问题,如亚马逊DynamoDB卡桑德拉里克窗口天青等。它附带了用于提供高性能、容错和可伸缩性的复制技术.

数据一致性模型是描述数据一致性问题的一种形式化方法。然而,向没有分布式存储系统背景的受众解释常常过于正式,更不用说最终一致性、因果一致性、顺序一致性等概念了。

因此,非正式的解释会更好。此外,有保留的解释最好包括以下三个要点:

  1. 简单的例子,漂亮的数字和简明的帐户,以说明数据(在)一致性问题。
  2. 传达这样的观点,即有弱一致性,也有强一致性。
  3. 显示数据一致性对用户或应用程序程序员的影响。
EN

回答 1

Stack Overflow用户

发布于 2014-07-30 15:06:15

回答我自己的问题:

一致性模型过于正式和严谨,无法向一般受众解释。幸运的是(或者不幸的是),大多数人都有数据不一致的经验。数据不一致对用户来说通常意味着奇怪的行为。基本上,一致性模型指定哪些行为是允许的,哪些是不允许的。这里的关键点是有不同层次的各种一致性模型。一致性模型越强,用户得到的惊喜就越少。用户和开发人员都需要很强的一致性:用户对他们的数据感觉更好,开发人员发现编程更容易。

典型的一致性条件包括(但不限于)最终一致性、因果一致性、顺序一致性和原子性,从弱到强。

最终的一致性在今天的分布式存储系统中很普遍,以Amazon的Dynamo为代表。最终的一致性很弱(理论上),因为它几乎没有什么承诺。考虑以下场景(如图所示):

数据-不一致-最终-博客http://i1.tietuku.com/48f5bfa9d6d925e0s.png

你刚刚写完你的博客,等不及要发表了。你按下“发布”按钮,立即刷新页面,只会发现你的博客不存在!当您将博客发布到副本节点并刷新另一个节点时,就会发生这种情况。别紧张。刷新,并且它最终会出现。

因果一致性比最终一致性强,因为它保证了所有用户都能按因果顺序观察到两个因果相关的事件。考虑一下在社交网站(如图所示)上的以下虚构对话,摘录自一篇论文

  1. 母亲找不到儿子,于是给朋友发了个帖子:“我想儿子不见了!”
  2. 儿子回答他的母亲,让她知道他只是在玩。
  3. 一位朋友观察到这段小对话,并发表了一篇评论:“真幸运!”

如果不尊重因果关系,则第三用户可以在其原因之前感知其影响。如图中所示,她可能认为朋友听到儿子失踪的消息很高兴!

关键任务应用程序通常需要更强的数据一致性,例如事务。

将继续

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24143891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档