概念
什么领域?解决什么问题or涉及什么问题?
一个服务是一致的完整操作或完全不操作(A service that is consistent operates fully or not at all,精确起见列出原文,也有人将其简称为数据一致性,我的理解这条是强调一个动作要么遵照约束完美的完成要么就什么也不做)。Gilbert 和Lynch在他们的证明中使用“atomic”而不是consistent,技术上来讲更准确,因为严格来说,当用在数据库事务的属性中时,consistent是指ACID中的C,其含义是如果数据违反了某些预设的约束(preset constraints)就不能被持久化(persisted)。
但可以这样来理解,
将其认为是分布式系统中的一个预设约束:不允许同一数据有不同的值,那么我认为这个抽象概念的漏洞就被堵住了。all nodes see the same data at the same time
在前面购书的例子中,你将书加入购物车或无法加入。支付成功或不成功。你无法部分加入或部分支付一本书。库存中只有一本书,当天只有一个人能得到它。如果2个客户都可以完成订单流程(如完成支付),那么仓库中的和系统中的不一致性就会导致问题。有时候这种不一致性可能问题不大,但如果将其扩大到数千个不一致性,并且涉及到金钱(例如:金融交易中关于买卖的东西和交易记录的内容不一致)就会是个大问题。
也许我们可以利用数据库来解决一致性问题。在(购书的)订单流程中的某个点减少《战争与和平》的库存记录。当其他的客户到达这个点的时候,书架空了,订单流程将会通知客户,而不会进行到支付环节(相比这是一个比较关键的环节)。这样第一个操作顺利完成,第二个操作则不会完成。数据库非常适合这种情况,因为数据库关注ACID属性,并且通过隔离性(Isolation)来保证一致性,这样当第一个客户会使得库存记录减1,同时购物车的记录加1,任何中间状态同第二个客户都是隔离的,当然第二个客户必须等待几百毫秒以便数据存储达到一致状态。
可用性只是意味着服务是可用的(a guarantee that every request receives a response about whether it was successful or failed)。当你购书时期望得到反馈,而不是浏览器报告网站无法连接的信息。Gilbert 和Lynch在其CAP定理的证明中很好地指出了,可用性通常在你最需要的时刻背弃你。网站通常在业务最繁忙的时刻挂掉,因为网站压力最大。一个他人无法访问的服务对任何人都没有价值。
如果你的应用和数据库运行在一个机器上(忽略规模的问题并假定你的代码都没问题),你的服务器是作为一种原子处理单元(atomic processor):要么工作要么不工作(例如:如果down机就不可用,但也不会造成数据不一致问题)。
the system continues to operate despite arbitrary message loss。
一旦开始将数据和逻辑分布在不同的节点上,就有形成partition的风险。假定网线被切断,partition就形成了,节点A无法和节点B通讯。由于Web提供的这种分布式能力,临时的partition是一个常见的情况,如之前说所的,在全球化的有多个数据中心的公司中这并不罕见。
Gilbert 和Lynch是这样定义partition tolerance的
除了整个网络的故障外,其他的故障(集)都不能导致整个系统无法正确响应。(No set of failures less than total network failure is allowed to cause the system to respond incorrectly)
请注意Brewer的注释,单节点partition就等同于服务器crash,因为如果无法连接它,那它就和不存在一样。
参考及扩展阅读
1. http://pt.alibaba-inc.com/wp/dev_related_728/brewers-cap-theorem.html
分享到:
相关推荐
Over the years, the CAP theorem and has been constantly developed and slight adjustments have been made, most prominently by Brewer himself who amended in a later paper that some of the conclusions, ...
布鲁尔的CAP定理最早由麻省理工学院教授埃里克·布鲁尔(Eric Brewer)于2000年提出的,并在同年ACM分布式计算原理研讨会上进行了阐述。这一理论指出,在分布式系统中,无法同时满足以下三个条件: 1. **一致性**...
This trade-off, which has become known as the CAP Theorem, has been widely discussed ever since. In this paper, we review the CAP Theorem and situate it within the broader context of distributed ...
CAP定理指在设计分布式系统时,一致性(Consistent)、可用性(Availability)、Partition Tolerance(分区容忍性)三个属性不可能同时满足,该定理也叫做布鲁尔定理。CAP定理明确了分布式系统所能实现系统的局限性...
CAP定理是分布式系统设计的基础理论,由Eric Brewer在2000年提出。它指出,在分布式系统中,无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。当网络分区发生时,...
标题中的“Eric Brewer:CAP Twelve Years Later——How the 'Rules' Have Changed”指的是计算机科学家Eric Brewer在2012年提出的一个主题,讨论了CAP定理在十二年后的发展和变化。CAP定理是分布式系统设计中的一个...
CAP定理,全称为Consistency、Availability、Partition Tolerance,是分布式系统设计中的一个基础理论,由Eric Brewer在2000年提出。它指出,在分布式系统中,不能同时保证一致性(Consistency)、可用性...
CAP 定理,全称为 Consistency, Availability, Partition Tolerance 定理,由 Eric Brewer 在2000年提出,它揭示了分布式系统设计中的一个基本权衡:在任何网络环境不可靠的情况下,无法同时保证一致性、可用性和...
CAP定理,又称布鲁尔定理(Brewer's Theorem),由加州大学伯克利分校的计算机科学家Eric Brewer提出,它指出在分布式计算系统中,Consistency(一致性)、Availability(可用性)和Partition tolerance(分区容错性...
是由Eric Brewer在2000年的ACM分布式计算原则研讨会上首次提出的一种理论,后来由Seth Gilbert和Nancy Lynch在理论上证实其正确性,从而形成了著名的Brewer(CAP)定理。 ### 1. Consistency(一致性) 一致性是指...
### 分布式系统CAP理论模型 #### 一、引言 在分布式系统设计与实现的过程中,CAP理论模型作为一项核心理论被广泛讨论和应用。CAP理论由Eric A. Brewer教授于2000年首次提出,并在PODC会议上进行了详细介绍。这一...
更新:Brewer的Edge现在已经在其网站上进行了此内置功能,因此不再需要扩展名。 此扩展将一行添加到Brewer的朋友配方上的跳概要表,显示配方中使用的跳跃总量,类似于网站已使用谷物的内容。 更新1.2.3:您现在可以...
这个理论由Eric Brewer在2000年提出,对后来的分布式数据库设计产生了深远的影响。 **1. 一致性(Consistency)** 一致性是指当一个节点写入数据后,所有节点都能读取到最新的、一致的数据。在分布式系统中,一致性...
Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services.pdf直接与CAP定理的起源相关,可能深入分析了Brewer教授的原始猜想,并讨论了在构建Web服务时如何在CAP三要素...
CAP理论是分布式系统设计中的核心概念之一,由加州大学伯克利分校的Eric Brewer教授于2000年的PODC会议上提出,并在2003年由MIT的研究员Seth Gilbert和Nancy Lynch正式证明。该理论指出,在分布式系统中,一致性...
CAP理论,也称为Brewer的猜想,是由加州大学伯克利分校教授Eric Brewer在2000年的PODC会议上提出的,它描述了分布式计算系统中三个基本保证:一致性(Consistency)、可用性(Availability)和分区容错性(Partition...
在IT行业中,CAP定理是分布式系统设计中的一个基础理论,由计算机科学家Eric Brewer提出。这个理论在2012年被再次讨论,探讨了在技术发展的十二年后,“规则”如何变化。CAP定理,全称是Consistency、Availability、...
CAP定理,全称为一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance),是分布式计算领域中的一个关键概念,由Eric Brewer于2000年首次提出,并在2002年由Seth Gilbert和Nancy Lynch在理论...
CAP 定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: * 一致性(Consistency):所有节点在同一时间具有相同的数据 * 可用性...