CAP定理与BASE(NoSQL)
嗨,我正在尝试写一篇有关NoSQL的论文,并将CAP定理描述为(如果不是全部的话)大多数NoSQL数据库都遵守。稍后,我阅读了一篇有关NoSQL与RDBMS之间差异的论文,该论文指出NoSQL数据库使用ACID对应的BASE。
我知道BASE,ACID和CAP的属性,但是我很难确定CAP定理和BASE之间有什么关系。据我了解,CAP定理导致BASE的首字母缩写,但这是正确的结论吗?还是用两种不同的方法“构建”一个共享相似属性的数据库?
在此博客文章(http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/)中,作者写道:
与苛刻的ACID世界相比,在容错的BASE世界中开发软件更加困难,但是Brewer的CAP定理指出,如果要扩展,则别无选择。但是,正如Brewer在本演示文稿中指出的那样,ACID和BASE之间存在连续性。您可以根据自己的优先级来决定与连续体一端或另一端相距多远。
作者在另一篇文章中写道:
最重要的是,许多NOSQL数据库已经放宽了对一致性的要求,以实现更好的可用性和分区。这导致系统被称为BASE(基本可用,软状态,最终一致)。这些没有经典意义上的事务,并且在数据模型上引入了约束,以实现更好的分区方案(例如Dynamo系统等)。简介中提供了有关CAP,ACID和BASE的更全面的讨论。
这清楚地表明CAP会导致 BASE。
我希望有人可以向我澄清这一点,消除我的困惑。
谢谢
-Mestika