由数据库事务, 到分布式事务

105 阅读1分钟

基本概念ACID

  • Atomic: 原子性
  • Consistency: 一致性
  • Isolation: 隔离性
  • Durability: 持久性

上面四个概念的阐述全网都是, 就不再赘述了. 这里想探讨一个观点, 个人认为其中AD是根本目标, 而在保证根本目标的基础上, 会引发问题, 而CI则是解决这些问题后匹配到的相应的性质;

举个例子说明, 还是转账,

上面例子, AD两个根本目标是必须被保证的, 那么T1时刻T2时刻, 小黄去查询小蓝的账户余额具体能查到什么值, 是受影响的; 具体受影响的因素就是C/I分别的强度, 如果将这个与事务隔离级分别对应一下:

  • Read Uncommited: C一致性弱, I隔离性弱, 事务B会读到事务A未提交的值
  • Read Commited: C一致性较弱, I隔离性较弱, 事务B会读到事务A提交后的值
  • Read Repeatable: C一致性得到保证, I隔离性得到保证, 不论事务A是否提交, 事务B可重复读到事务B最开始读到的值
  • Serializable: C一致性绝对一致, I隔离性最强