BASE是替换ACID事务更易扩展的模型么?

日期: 2010-06-23 作者:Daniel Rubio翻译:杨晓明 来源:TechTarget中国 英文

我一直听到有关ACID和BASE之间的比较,BASE是什么?真的存在一种扩展性更好的方式替换ACID事务模型吗?   在这方面,我和Phil Bernstein为我们上个月面市的关于TP方面的书《事物处理原则》(第二版)(Principles of Transaction Processing)做过大量的研究。简单的回答是:没有。   BASE代表Basically Available(基本可用), Soft state(柔性状态), Eventually consistent(最终一致)的缩写形式。虽然BASE背后的概念被提了好几年,但这个名词大概是一年前由Dan Pritchett在一篇关……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

我一直听到有关ACID和BASE之间的比较,BASE是什么?真的存在一种扩展性更好的方式替换ACID事务模型吗?

  在这方面,我和Phil Bernstein为我们上个月面市的关于TP方面的书《事物处理原则》(第二版)(Principles of Transaction Processing)做过大量的研究。简单的回答是:没有。

  BASE代表Basically Available(基本可用), Soft state(柔性状态), Eventually consistent(最终一致)的缩写形式。虽然BASE背后的概念被提了好几年,但这个名词大概是一年前由Dan Pritchett在一篇关于ACMqueue的文章中正式引入的。

  ACID是Atomicity(原子性), Consistency(一致性), Isolation(隔离性), and Durability(持久性)的缩写。ACID这个词的含义在数据库中是用来概括事务基本属性的,不是 “业务” 逻辑上的事务。另一方面,ACID作为实现多数商业数据库产品的严格阐释,许多大规模Web网站没有采用,而是采用BASE这种能够概括宽松的或者降低的ACID的模式。

  如果你仔细读这篇文章,会发现Dan实际上没有建议使用BASE这种大体上可替换ACID的(尽管题目看起来有点这个味道)模式。恰恰相反,Dan建议是ACID明确用在两阶段提交协议,维护复制的数据集一致性的地方,BASE可以作为替换模式。一些大型网站,像eBay(Dan为其工作),通常使用很多复制的数据(在缓存中)来提高性能,特别是在为减少用户交互的延迟时。而且,任何用过的人都知道,eBay在快速回复方面也很惊人。

  尽管多数Web网站使用的是定制代码和像GigaSpaces,Oracle Coherence,IBM ExtremeScale这些刚刚被采用的产品,很值得为这种类型的应用仔细考虑一下BASE。这些产品都提供面向BASE的系统的某些特性来管理内存中复制的数据集,并且在内存中的变化被冲到磁盘上时提供更好的应用层面的控制。

  尽管许多大型网站目前所作的事情不同,但Dan称它们本质上都是在做BASE,是它们打破了长期的假定,这个假定对数据库管理系统中业务的第一阶很明确地部分持久化数据更新或根本不持久化。通常的,直到全部完成或撤销控制才返回给应用(如果在崩溃的时候完成了一部分,也就是ACID)。对应用的好处是在失败事件中(计算机,作为一种敏感又复杂电子设备,总是在出错的时候才失败),应用不需要担心部分的变化,并且当系统恢复的时候知道在哪里重启。

  然而,这个假定,转移到相对奢侈的磁盘操作,奢侈,也是相对内存操作而言。当多个数据库或数据库复制品被加入并且交换两阶段提交的信息和为新增日志执行额外磁盘操作时,这个代价将变得特别昂贵。

  洞悉这个BASE风格系统背后的关键是更新内存,尤其是可重写内存;更快,并且允许对用户回馈的反应更快。然而,当更新时既然数据不再立刻写到磁盘,特别对复制的数据集而言,会引起潜在的不一致性。但由于在达到良好的用户体验方面,大型网站设置了更高的优先级,他们更愿意改变经典的假设。对大多数的用户而言,为少部分用户新增的磁盘带来的好处是值得的。

  然而,和以前一样,当数据被写到磁盘上时,通常还是用ACID。和过去一样,所以即使当BASE风格系统已经在被使用,尽管不是立刻,也不是为跨数据集的两段提交,ACID还是有它的用武之地。

  最终,需要指出的是我们在这讨论的是几个企业应用缩略语,可能有些不太确切,还让我们对其背景做了一些的研究,并在这个讨论中得出对其明确的看法。

相关推荐