ACID、BASE、CAP 含义

文章目录

ACID

数据库管理系统事务(transaction)的四个特征:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

  1. 原子性

原子性是指事务是一个不可再分割的工作单元,事务中的操作要么全部成功,要么全部失败。

  1. 一致性

一致性是指在事务开始之前和事务结束以后,数据的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑的一致性。

  1. 隔离性

多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其他事务运行结果。

  1. 持久性

持久性,意味着在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

BASE

BASE 理论是指:Basically Available(基本可用)、Soft-State(软状态/柔性事务)、Eventual Consistency(最终一致性)。是基于 CAP 定理演化而来,是对 CAP 中一致性和可用性权衡的结果。

核心思想:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。

  1. 基本可用

指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。

  1. 软状态

软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。

  1. 最终一致性

系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。

CAP

在分布式环境下设计和部署系统时,有三个黑心的系统需求:Consistency(一致性)、Availability(可用性)和 Partition Tolerance(分区容忍性),但三者无法在分布式系统中同时被满足,并且最多只能满足其中两个,该理论简称为 CAP。

CAP 理论最终是 2000 年由 Eric Brewer 教授在 PODC 的研讨会上提出猜想,后来 Lynch 等人进行了证明。该理论被认为是分布式系统领域的重要理论之一,有着广泛的知名度,很多工程师将其作为衡量系统设计的准则。

  1. 一致性(Consistency)

指数据在多个副本之间是否能够保持一致的特性。

当执行数据更新操作后,仍然可以保证系统数据处于一致的状态。如果系统对一个写操作返回成功,那么之后的读请求必须读到这个新数据;如果返回失败,那么所有操作都不能读到这个数据,对调用者而言数据具有强一致性(Strong Consistency)(又叫原子性 Atomic、线性一致性 Linearizable Consistency)。

  1. 可用性(Availability)

系统提供的服务必须一直处于可用的状态。对于用户的每一个操作请求总是能够在“有限的时间内”返回结果。

这个有限时间是系统设计之初就指定好的系统运行指标。返回的结果指的是系统返回用户的一个正常响应结果,而不是“out of memory error”之类的系统错误信息。用户的每个请求都能接受到一个响应,无论响应是成功或失败,即服务在任何时刻都是可用的,这就要求系统当汇总不应该有单点的存储(如果服务是单节点部署,一旦节点宕机,服务便不可用来),通常可用性都是通过冗余的方式来实现的。

  1. 分区容忍性(Partition Tolerance)

关于分区容忍性,Brewer 给出的定义是:“No set of failures less than total network failure is allowed to cause the system to respond incorrently”,即除了整个网络出现故障外,其他的故障都不能导致整个系统无法正确响应。

分区容忍比较抽象,在此特别说明一下。

分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,触发是整个网络环境都发生了故障。组成分布式系统的每个节点的加入与退出都可以看成是一个特殊的网络分区。

参考文章:你真的了解ACID,BASE,CAP这些名词吗?

猜你喜欢

转载自blog.csdn.net/qq_32828933/article/details/106100440