ACID和CAP&BASE

1、数据库事务正确执行的四个基本要素: ACID(传统数据库)

这是传统数据库的四个要素,缺一不可

原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

  • 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
  • 隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。
  • 持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

2、CAP原理(NoSQL数据库)

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

因此,根据CAP原理将 NOSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:

  • CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP-满足一致性,分区容忍必的系统,通常性能不是特别高。
  • AP-满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的

所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

C-->强一致性 A-->高可用性 P-->分布式容忍性

  • CA:传统 Oracle数据库
  • AP:大多数网站架构的选择
  • CP:Redis、 Monodb

3、BASE:

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。

BASE其实是下面三个术语的缩写

  • 基本可用( Basically Available)
  • 软状态( Soft state)
  • 最终一致( Eventually consistent)

猜你喜欢

转载自blog.csdn.net/S_Running_snail/article/details/84555033