关于分布式系统的一些基本概念
- 事务
- ACID
- CAP
- BASE理论
事务
事务(Transaction)是由一系列对系统中数据进行访问与更新的操作组成的一个程序执行逻辑单元,狭义上的事务特指数据库事务,事务具有四个特征,分别是原子性,一致性,隔离性和持久性,简称为事务的ACID特性。
ACID
原子性
指事务必须是一个原子的操作序列单元,这里不是指事务只包含一个操作,而是说在整个事务的一次执行过程中,要么全部执行成功,要么全部不执行。一致性
事务的执行不能破坏数据库数据的完整性和一致性,事务执行的结果必须是使数据库从一个一致性状态转移到另一个一致性状态。隔离性
并发的事务是相互隔离的,一个事务的执行不能被其他事务干扰。在SQL标准中,定义了四种不同的事务隔离级别:未授权读取,授权读取,可重复读取和串行化
举个例子,如果有两个事务A和B,分别是把数据库中某个源数据1自增到10,从10自增到20,那么对于这四种不同的隔离级别,分别会有如下不同的结果:
隔离级别 | 结果 |
---|---|
未授权读取 | 可读取到1~20中任意一个值 |
授权读取 | 只可能读取到1,10和20 |
可重复读取 | 只能读取到1 |
串行话 | 不可访问 |
4. 持久性
一个事务一旦提交,它对数据库中对应数据的状态变更就应该是永久性的
CAP
CAP 理论:一个分布式系统不可能同时满足一致性,可用性和分区容错性这三个基本需求,最多只能同时满足其中的两项
BASE理论
BASE是指Basically Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)。
基本可用
典型例子是响应时间上的损失和功能上的损失弱状态
允许系统中的数据存在中间状态,并认为该状态不会影响系统的整体可用性,即允许不同节点的数据副本同步之间出现延迟最终一致性
指经过一定的时间后,系统中所有节点的数据副本必须达到一个一致的状态
[1]: 《从Paxos到Zookeeper 分布式一致性原理与实践》 倪超著