ACID和CAP定理的一致性,是否相同?


18

据我了解,ACID的一致性可确保数据完整性。

但是,CAP的一致性意味着数据可以在分布式系统中快速显示。

这是否意味着:它们不是同一概念?

Answers:


18

由于数据的范围,它们实际上并不相同

  • 一致性(所有节点通过最终一致性具有相同的数据)
  • 可用性
  • 分区容限:尽管任意消息丢失或系统部分出现故障,系统仍可继续运行

概要

  • ACID解决了单个节点的数据一致性
  • CAP解决了集群范围内的数据一致性

1
最终。最终,罗兰多应该以粗体显示。这是破坏性交易:)新年快乐!
Philᵀᴹ

3

CAP定理:指定分布式系统可以提供两种服务(例如,可用性和分区容限),但不能提供三种服务。例如,如果服务提供可用性和分区,则它永远无法确保一致性(不是立即提供),因此将使用最终一致性,这将允许基础结构在不一致和一致性之间进行转换,但是在某一点上,基础设施迟早会变得一致,导致最终的一致性。云服务以这种方式工作,而Amazon的Simple DB使用最终的一致性。

ACID功能通常应用于关系数据库。如果要以分布式方式(分布式DB)应用ACID,则ACID使用2PC(两阶段提交)来强制跨分区保持一致性。但是,由于ACID提供了一致性和分区性,因此将CAP定理应用于(分布式环境)这将意味着可用性受到损害。

因此,使用了BASE(基本可用,软状态,最终一致),它可以提供ACID无法获得的可伸缩性级别。

希望这可以帮助。


-1

关于CAP定理中的一致性,朱利安·布朗(Julian Brown)在他的文章(http://www.julianbrowne.com/article/brewers-cap-theorem)中写道:

一致的服务将完全运行或根本不运行。Gilbert和Lynch在其证明中使用“原子”一词代替了“一致”一词,这在技术上更有意义,因为严格来说,一致的是ACID中的C应用于数据库事务的理想属性,并且意味着数据将永不持久。打破某些预设约束。但是,如果您认为它是分布式系统的预设约束,即不允许同一数据段有多个值,那么我认为抽象漏洞已被塞满(此外,如果Brewer使用了atomic一词,则将其称为AAP定理,每当我们尝试发音时,我们都会住院。

因此,CAP中的C对应于ACID中的A。

他在Gilbert和Lynch的文章中提到“ Seth Gilbert和Nancy Lynch:Brewer的猜想以及一致的,可用的,耐分区的Web服务的可行性”


1
CAP一致性适用于分布式系统,而ACID则从该系统体系结构级别进行抽象。CAP一致性对于实现ACID原子性可能是必需的,但这不是一回事。
mustaccio

由于布鲁尔(Brewer)自己将CAP定理与ACID有关(people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf第2&3页),我认为深入研究两者之间的相关性是完全正确的。都。
white_gecko
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.