ACID #
In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee validity even in the event of errors, power failures, etc. In the context of databases, a sequence of database operations that satisfies the ACID properties (and these can be perceived as a single logical operation on the data) is called a transaction.
ACID
是追求 CAP
(Consistency
, Availability
, Partition tolerance
) 的一致性
(C
)
ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:
- 原子性(Atomicity 又称不可分割性)
- 一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即事务不可分割。
- 一致性(Consistency)
- 隔离性(
Isolation
,又称独立性)- 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括未提交读(Read uncommitted)、已提交读(read committed)、可重复读(repeatable read)和可串行化(Serializable)。
- 可串行化(Serializable): 不会发生幻读
- 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括未提交读(Read uncommitted)、已提交读(read committed)、可重复读(repeatable read)和可串行化(Serializable)。
- 持久性(Durability)
- 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。这就意味着 DB 必须在数据写入磁盘成功后才能返回提交成功。常见策略就是事务提交前先确保 WAL(
write ahead log
)预写日志成功,再定期把磁盘的 btree 中的脏页数据写入磁盘 btree pag
- 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。这就意味着 DB 必须在数据写入磁盘成功后才能返回提交成功。常见策略就是事务提交前先确保 WAL(
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。