ACID、CAP、BASE

ACID

ACID是事务的四个特征:

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

原子性

事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许全部执行或者全部不执行。任何一项操作失败将导致整个事务失败,同时其他已经被执行的操作将被撤销并回滚,只有全部的操作成功事务才能算成功。

一致性

事务的一致性是指事务的执行不能破坏数据库的完整性和一致性,一个事务在执行前和执行后,数据库必须处于一致性状态。也就是说事务的执行结果必须使数据库从一个一致性状态转移到另外一个一致性状态。如果数据库系统在运行过程中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库的修改有一部分已经写入物理数据库,这时数据库就处于不一致的状态。

隔离性

事务的隔离性是指在并发的环境中并发的事务是相互隔离的,一个事务的执行不能被其他事务干扰。也就是说不同的事务并发操作相同的数据时,每个事务都有各自完整的数据空间,即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
标准SQL定义了4中隔离级别:未授权读,授权读,可重复读,串行化。对于隔离级别的详解介绍请看 InnoDB如何用锁实现事务的隔离

持久性

事务的持久性是指一个事务提交它对数据库的修改

CAP定理

一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)、分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项

一致性

在分布式环境下,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。

可用性

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

分区容错性

分布式系统在遇到任何网络分区故障的时候,仍然能够保持对外提供满足一致性和可用性的服务。网络分区是指在分布式系统中,不同的节点分布在不同的子网络中,由于一些特殊的原因导致这些子网络之间出现网络不连通的情况,但各个子网络的内部网络是正常的,从而导致整个系统的网络被切分成若干个孤立的区域。
一般情况下分布式系统都满足可用性和分区容错性,用最终一致性满足一致性的需求。

BASE理论

BASE是 Basically Available(基本可用)、Soft State(软状态)和Eventually consistent(最终一致性)的缩写。其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点。采用适当的方式使系统达到最终一致性。

猜你喜欢

转载自blog.csdn.net/qqqq0199181/article/details/80827700