图数据库与Neo4j

Neo4j入门(二):ACID vs BASE

2020-03-16  本文已影响0人  数据大鱼

【翻译自:https://neo4j.com/blog/acid-vs-base-consistency-models-explained/
【由Neo4j APAC授权编译发布】

        谈到NoSQL数据库,其数据一致性模型有时与关系数据库使用的模型有着显著的不同(存储上不同NoSQL之间也有很大的不同)。
        我们熟知的数据一致性模型有ACID和BASE。虽然他们相互竞争、努力想证明自己比对方优越,但这两种一致性模型各有优缺点,适用不同场景。    
        让我们仔细分析下两种数据库一致性模型。

图数据库入门

        在图数据库入门系列文章中,假设您对图数据库了解很少,我将带您了解图技术的基础知识。在过去的几周里,我们讨论了为什么图技术是未来、为什么连接数据很重要、数据建模的基础(和陷阱)、为什么数据库查询语言很重要、命令式和声明式查询语言之间的差异、基于图论的预测建模、图搜索算法的基础,以及为什么我们需要NoSQL数据库。
        本周,我们将更详细地了解ACID和BASE数据库一致性模型之间的主要区别,以及在数据事务处理方面的差异。

        1、ACID一致性模型

        许多开发者在使用关系数据库时熟悉ACID事务处理,而ACID一致性模型也已经成为规范。
        ACID特性提供了一个安全的环境,可以对您的数据进行操作。ACID的缩写表示:
        1)原子性(Atomic)
        事务中的所有操作要么都成功,要么回滚到事务开始前的状态。
        2)一致性(Consistent)
        事务完成后,数据库系统处于有效状态。
        3)隔离性(Isolated)
        并发环境中,事务有各自的完整数据空间,当不同事务同时操纵相同的数据时,由数据库控制事务按顺序运行。
        4)持久性(Durable)
        执行事务的结果必须永久保存,即使在出现故障时也是如此。
        ACID特性意味着一旦事务执行完毕,它的数据必须一致(写一致性),并且写入磁盘,这可能涉及多个不同的内存地址。
        对于应用程序开发者来说,写一致性是非常好的特性,但是它需要复杂的锁,对于大多数用例来说,这通常是一个重量级的模式。
        谈到NoSQL技术,Neo4j图数据库使用ACID一致性模型来确保数据的安全性和一致性存储。

2、BASE一致性模型

        对于大多数领域和用例,相比实际需要的,ACID事务处理过于保守(即它们更担心数据安全)。
        在NoSQL数据库领域,有观点认为ACID事务处理不再适用,数据库系统通过牺牲某一时刻数据强一致性、实时性和准确性,可以显著提升系统的伸缩性。
        (值得一提的是,基于.NET的RavenDB在支持ACID事务方面逆势而上。)
        下面是BASE的缩写表示:
        1)基本可用(Basically Available)
        数据库系统大部分时间都可用。
        2)软状态(Soft state)
        存储不必写一致,不同的数据副本也不必一直保持一致。
        3)最终一致性(Eventually Consistent)
        数据副本在经过一段时间的同步后,最终能够达到一致性状态(例如,在读取时延迟)。
        BASE特性比ACID要弱的多,但在两个一致性模型之间没有直接的一对一映射。
        BASE模型数据存储更重视系统可用性(系统的可伸缩性非常重要),但它不能保证数据副本的写一致性。总的来说,BASE一致性模型提供了比ACID更弱的特性:数据在某个时刻将保持一致,无论是在读取时(如Riak),还是始终保持一致,但仅限于某些已处理的过去快照(如Datomic)。
        BASE一致性模型主要用于聚合存储,包括列、键值和文档存储。

3、ACID vs BASE

        对于您的应用是否需要ACID和BASE一致性模型,我们没有正确的答案。开发者和数据架构师应该根据具体情况对数据一致性进行取舍,而不仅仅是基于发展趋势或以前使用的模型。
        考虑到BASE的弱一致性,如果开发者为其应用选择BASE存储,那么他们需要对数据一致性更加了解,熟悉所选聚合存储的BASE特性,并在这些约束下工作。
        另一方面,与ACID简单的事务特性相比,受限于BASE特性进行规划有时会是一个主要缺点。对于数据可靠性和一致性要求很高的用例(例如银行),ACID数据库非常适合。
        在接下来的几周里,当涉及到聚合存储和其他图技术时,我们将深入研究更多的ACID/BASE特性。

更多技术咨询:

Email:yusonglin@we-yun.com

上一篇 下一篇

猜你喜欢

热点阅读