分布式事务

1、分布式事务:

局部事务:仅访问和更新一个数据库中数据的事务。

全局事务:访问、更新多个数据库中数据的事务,也称为分布式事务。通常由一个主事务和在不同站点上执行的子事务(局部事务)构成。

平面事务、嵌套事务

基于消息传递的一致性算法,主要解决分布式环境的一致性问题

1、数据库领域:强调系统中所有的数据的状态一致

2、NoSql领域:强调读写一致,能读到到最后写入的数据

3、状态机:强调在初始状态一致的状态机上执行相同的序列操作后,每个状态机的状态必须保持一致,即顺序一致性

采用多副本(高容错)进行可更改数据的存储

多个副本必须执行相同的更新操作序列

2、事务的基本概念:

指作为单个逻辑工作单元执行的一系列操作。

一个逻辑工作单元要成为事务,必须满足ACID:

原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)

3、并发对事务的影响:

事务ACID性质可能遭到破坏的因素有:

多个事务并发运行时,不同事务的操作交叉执行

事务在运行过程中被强行终止

并发操作带来的数据不一致性包括:

丢失数据

不可重复读

读“脏”数据

4、并发控制:

为保持多事务并发时事务的隔离性,系统必须提供一系列的机制来控制并发事务的相互作用。

任务:

保证事务的隔离性和一致性

并发操作进行正确的调度

机制:

封锁协议:两阶段封锁

时间戳排序

有效性检查

多版本控制

5、事务故障

分类:

逻辑错误、系统错误

事务故障恢复应该由系统自动完成,对用户透明

恢复步骤:

反向扫描日志,查找该事务的更新操作

对事务的更新操作执行逆操作

继续反向扫描日志,查找该事务的其他更新操作,并做同样处理,直至独到该事务的开始标记

相关推荐