内容概览
- 事务的基本概念(ACID)
- 分布式事务的基本概念和理论
A.事务的基本概念
- 原子性(Atomic):指在一个事务中的所有操作要么全部成功,要么全部失败,不存在其他情况。
- 一致性(Consistency):指数据在事务执行前后,要保持一致。
- 隔离性(Isolation):指并发执行的事务之间是相互隔离的。(msyql通过锁和mvcc机制来保持隔离性)
- 持久性(Durability):指事务提交后,此事务对数据的操作会被持久化到数据库中。
原子性,隔离性和持久性是数据库的属性,而一致性(在ACID意义上)是应⽤用程序的属性。应⽤用可能依赖数据库的原⼦子性和隔离属性来实现⼀一致性,但这并不不仅取决于数据库。因此,字⺟母C不不属于ACID。
B.分布式事务基础
一. CAP理论
- 一致性(Consistency):指用户对数据的操作(增删改),要么在所有数据副本都执行成功,要么所有数据副本都执行失败。
- 可用性(Availability):指用户访问数据的时候,能得到快速的响应。
- 分区容忍性(Partition Tolerance):分布式的存储系统会有很多的节点,这些节点都是通过网络进行通信。而网络是不可靠的,当节点和节点之间的通信出现了问题,此时,就出现了分区(分区并不一定是由网络故障引起的,也可能是因为机器故障),但是此时系统仍能对外提供服务。
CAP有时以这种⾯⽬出现:一致性,可⽤性和分区容忍性:三者只能择其二。这种说法很有误导性,因为网络分区是一种错误,所以它并不是一个选项:不管你喜不喜欢它都会发生。 在实际场景中,大部分会采用AP方式(最终一致性)
二.BASE理论
它是基本可用(Basically Available),软状态(Soft State),最终一致性(Eventually Consistent)的缩写。
base理论是对CAP理论中AP的一个扩展,通过舍弃C[强一致性]来保证可用性和分区容忍性。
当系统出现故障时,BASE理论允许部分数据不可用,但是会保证核心功能可用,允许数据在一段时间之内不一致,但是一段时间后数据最终是一致的。