首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解CAP定理的“可用性”?

如何理解CAP定理的“可用性”?
EN

Stack Overflow用户
提问于 2012-04-09 05:10:38
回答 4查看 6.6K关注 0票数 20

我不知道这是不是个合适的问题。

我们知道,在CAP定理中,"A“的意思是”可用性“。在维基百科上,对“可用性”的解释是:

代码语言:javascript
复制
Availability: a guarantee that every request receives a response about whether it was successful or failed

然而,从工程的角度来看,没有绝对的可用性。我们只能说一个系统的可用性是5'9'(99.999%),甚至8'9',但我们不能说一个系统的可用性是100%,100%的可用系统实际上是不存在的,即使系统有数以百万计的重复节点,对吗?

CAP定理证明,没有一个系统能同时满足这三个要求。我的问题是,如果一个系统声称同时满足"A“和"P",那么这个"A”的确切含义是什么? 6'9‘,甚至更高?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-09 06:40:15

我建议您避免使用维基百科,而是阅读吉尔伯特和林奇提供的证据中提供的定义。

“系统中一个永不失败的节点接收到的每一个请求都必须得到响应”

以及回答你问题的相关脚注

布鲁尔最初只要求几乎所有的请求都能收到响应。由于允许概率可用性不会改变发生任意故障时的结果,为了简单起见,我们要求100%的可用性

因此,如果几乎所有请求都收到响应,或者我们允许出现任意故障,则可以认为系统具有高可用性。

票数 22
EN

Stack Overflow用户

发布于 2013-01-26 16:05:45

CAP中的可用性意味着“所有(永不失败的)节点都可用于查询”。这与维基百科的链接无关,它是关于“高可用性”的。

例如,PAXOS算法是CP (无可用性属性),因为少数节点在分区期间“关闭”。但是如果您需要一致性,那么PAXOS就被认为是“高可用性”。

相反,单节点MySQL数据库服务器是CA (具有CAP可用性属性)。它可以重新启动(当它执行BIOS检查、FileSystem检查、DB修复等操作时,可以关闭几个小时)。当它完成引导时,它再次开始响应查询。这是完美的可用性(根据CAP定理),但对于“高可用性”来说却是可怕的可用性。

票数 8
EN

Stack Overflow用户

发布于 2014-01-07 08:51:01

我同意马克·伯吉斯的观点:CAP定理不是定理。Brewer猜想中CAP性质的定义不够精确,不能提供严格的数学证明。因此,可用性之所以难以“理解”,可能是因为在这种情况下定义得不够清楚。

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

https://stackoverflow.com/questions/10069147

复制
相关文章

相似问题

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