分布式数据库事务与一致性算法详解
1. 数据库事务特性
数据库事务具备 ACID 特性,分别为原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 一致性(Consistency) :事务会使数据库处于一致状态。例如,在线购物成功后,所购商品的库存数量会相应减少。这一特性由事务执行的具体业务逻辑决定。
- 隔离性(Isolation) :事务进行过程中,其修改的数据对其他并发事务不可见。竞争资源的事务相互隔离,直到事务完成,其结果才对其他并发事务可见。数据库通过对事务访问的数据对象加锁,并在事务完成时释放锁来实现这一点。
- 持久性(Durability) :若事务提交,其更改是永久的,并且在系统故障时可恢复。
ACID 中的隔离性要求事务执行如同被序列化一样。可串行化保证并发事务看起来按某种顺序执行。
2. 一致性模型
数据库和分布式系统领域对一致性的研究已超过四十年,各自发展出多种一致性模型,语义和保证略有不同,导致定义和术语较为复杂。这里主要关注最强的一致性模型,它也被称为严格一致性、严格可串行化或外部一致性,是数据库和分布式系统领域定义的两种最严格一致性模型的结合,即可串行化和线性化。
- 可串行化(Serializability) :通常指事务一致性,即 ACID 中的 “C”。事务对多个数据对象进行一次或多次读写操作。可串行化保证一组并发事务对多个数据项的执行等同于这些事务的某种顺序执行。
超级会员免费看
订阅专栏 解锁全文
1458

被折叠的 条评论
为什么被折叠?



