我不知道这是不是个合适的问题。
我们知道,在CAP定理中,"A“的意思是”可用性“。在维基百科上,对“可用性”的解释是:
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‘,甚至更高?
发布于 2012-04-09 06:40:15
我建议您避免使用维基百科,而是阅读吉尔伯特和林奇提供的证据中提供的定义。
“系统中一个永不失败的节点接收到的每一个请求都必须得到响应”
以及回答你问题的相关脚注
布鲁尔最初只要求几乎所有的请求都能收到响应。由于允许概率可用性不会改变发生任意故障时的结果,为了简单起见,我们要求100%的可用性
因此,如果几乎所有请求都收到响应,或者我们允许出现任意故障,则可以认为系统具有高可用性。
发布于 2013-01-26 16:05:45
CAP中的可用性意味着“所有(永不失败的)节点都可用于查询”。这与维基百科的链接无关,它是关于“高可用性”的。
例如,PAXOS算法是CP (无可用性属性),因为少数节点在分区期间“关闭”。但是如果您需要一致性,那么PAXOS就被认为是“高可用性”。
相反,单节点MySQL数据库服务器是CA (具有CAP可用性属性)。它可以重新启动(当它执行BIOS检查、FileSystem检查、DB修复等操作时,可以关闭几个小时)。当它完成引导时,它再次开始响应查询。这是完美的可用性(根据CAP定理),但对于“高可用性”来说却是可怕的可用性。
发布于 2014-01-07 08:51:01
我同意马克·伯吉斯的观点:CAP定理不是定理。Brewer猜想中CAP性质的定义不够精确,不能提供严格的数学证明。因此,可用性之所以难以“理解”,可能是因为在这种情况下定义得不够清楚。
https://stackoverflow.com/questions/10069147
复制相似问题