首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >newsql如何支持ACID属性?

newsql如何支持ACID属性?
EN

Stack Overflow用户
提问于 2015-08-04 11:49:32
回答 2查看 425关注 0票数 0

Nosql具有分布式结构,为什么它不支持到ACID属性?newsql也有分布式结构,那么newsql如何保证ACID的支持呢

EN

回答 2

Stack Overflow用户

发布于 2015-08-05 04:59:02

正如您所指出的,NoSQL和NewSQL数据库通常都具有分布式体系结构。分布式并不排除提供ACID保证,也不排除使用或不使用SQL语言,因为事实上存在一些ACID NoSQL数据库。它们是两个不同的东西。

然而,在NoSQL的早期,人们经常争辩说,为了提供web应用程序所需的规模,不仅需要使用分布式体系结构,而且还需要摆脱SQL、关系表和ACID保证。NewSQL在许多方面驳斥了这一论点,表明通过使用专门的体系结构,通常是分布式体系结构,数据库可以是分布式的和可伸缩的,而不会放弃这些东西。

每个数据库都是不同的,即使在“ACID兼容”的数据库中,它们提供的实际保证也有许多变化,因此阅读细节通常很重要。

例如,一些ACID数据库将事务的范围限制为单个操作,例如插入或更新单个记录。其他人放宽了隔离的定义,这样就有可能得到不正确的结果。另一些则放松了持久性,因此存在一些“提交的”事务可能无法在中断中幸存的可能性。许多数据库声称是酸兼容的,但这并不意味着你可以用它们来做一些事情,比如保证只有一个人在飞机上预定一个座位,或者订单永远不会超过库存,或者购买永远不会超过客户的可用余额。

可以遵循非常严格的ACID定义,支持复杂的事务,同时仍然是分布式的和可伸缩的。VoltDB就是一个例子。VoltDB在这里详细描述了它是如何处理事务的:http://voltdb.com/sites/default/files/tn-transactions.pdf

票数 2
EN

Stack Overflow用户

发布于 2015-08-14 23:57:20

如果您正在寻找纯ACID属性(原子性、一致性、隔离性、持久性),NoSQL可能不是准确的解决方案。

如果您正在寻找三个CAP (一致性、可用性和分区)中的两个属性,NoSQL是正确的解决方案。

但是像MongoDB这样的一些NoSQs可以接近实现ACID属性(除了在持久性方面的一些折衷)

请参阅下面的文章,了解MongoDB如何实现ACI (而不是完全D) How ACID is MongoDB

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31800356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档