分布式事务总结
要理解分布式事务首先要明白事务是什么,从单机事务的理解迁移到分布式事务,下面从两个角度总结单机和分布式事务
- 单机事务 vs 分布式事务
- 如何通过并发控制保证单机分布式事务的隔离性
单机/分布式事务
事务作为数据库系统读写操作的高层抽象,代表了数据库的基本操作。一个正常提供服务的数据库系统,其事务必须满足ACID四个性质,其中CI两个性质相互关联,是事务性质研究的重点。
- Atomic(原子性):每个事务被看作一个不可分割的单元,要么完全成功要么完全失败,不存在两者的中间状态。数据库系统必须保证任意时刻下事务的原子性
- Consistency(一致性):一致性是指数据库满足某种预先定义的约束,任何数据库的操作都必须满足一致性,即从一个满足一致性的状态转移到另一个满足一致性的状态(例如:转账事务要满足转出和转入账户总金额不变)
- Isolation(隔离性):一系列并发进程的执行导致数据库的状态改变和按照某种线性顺序执行的状态改变相同(实际上这是serializability的定义)
- Durable(持久性):事务一旦提交,其对数据状态的改变不会因为意外事件的发生而丢失
分布式事务可以看作事务+分布式环境,即一个执行范围跨越多个通过网络连接的不同主机的事务,分布式事务既然是事务,同样要满足ACID性质,但是由于分布式环境的复杂性,原有的事务性质保证手段在分布式环境下需要进行调整和新的设计。