事务的ACID特性

事务的ACID特性,分为:

  • 原子性(atomicity)

一个事务要么全部提交成功,要么全部失败回滚,不存在中间状态。

  • 一致性(consistency)

事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态。如果数据库系统在运行过程中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库所作的修改有一部分已写入物理数据库,这是数据库就处于一种不正确的状态,也就是不一致的状态。

  • 隔离性(isolation)

并发执行的各个事务之间不能相互干扰,各自拥有隔离的数据空间。

  • 持久性(durability)

一旦事务提交,那么它对数据库中的对应数据的状态的变更就会永久保存到数据库中。即使发生系统崩溃或机器宕机等故障,只要数据库能够重新启动,那么一定能够将其恢复到事务成功结束的状态

在分布式环境中,事务或者说ACID特性的实现比较困难,目前常用的分布式事务协议如下。

https://www.cnblogs.com/monkeyblog/p/10449363.html

两阶段提交2PC协议

三阶段提交3PC协议