分布式事务-柔&刚性事务

概述

本文简单简单介绍刚性/柔性事务,还有实现方式,后面的文章将会详细介绍几种事务模型。

事务分类

刚性事务:遵循ACID原则,强一致性。
柔性事务:遵循BASE理论,最终一致性;与刚性事务不同,柔性事务允许一定时间内,不同节点的数据不一致,但要求最终一致。

刚性事务

ACID 是什么?
A : 原子性(Atomicity)
C : 一致性(Consistency)
I : 隔离性(Isolation)
D : 持久性(Durability)
这里就不多解释 ACID ,可以结合数据库(例如 MySQL)进行学习

柔性事务

BASE 是什么?
基本可用(Basically Available): 基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性
软状态(Soft state): 存在中间状态
最终一致性(Eventually consistent): 最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

如何实现

刚性事务

以MySQL为例,MySQL 使用 WAL (Write ahead logging)--redo log 实现 和 快照--undo log 实现来保证刚性事务 。

柔性事务实现

柔性事务的实现方式有 :

  • TCC(Try/Confirm/Cancel)型事务
  • 异步确保性
  • 最大努力性

总结

参考资料

上一篇:【MySQL】搞懂ACID原则和事务隔离级别


下一篇:Windows 上安装 MySQL(8.0.11)