《从Paxos到ZooKeeper》读书笔记之第一章(二)

这是《从Paxos到ZooKeeper》第一章的读书笔记,介绍了从ACID到CAP/BASE的内容,着重讲述ACID及4个事务隔离级别。通常数据库系统优先设为授权读取,并发问题可由应用程序用悲观锁和乐观锁控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《从Paxos到ZooKeeper》读书笔记之第一章(二)

1.2从ACID到CAP/BASE

这一节由三小节,从大家数值的数据库事务的四个特性,引出来分布式事务的概念。通过对ACID模型的讨论,提出如何构建一个兼顾可用性和一致性的分布式系统方案,于是出现了诸如CAP和BASE这样的分布式经典系统理论

1.2.1 ACID

事务:
	1.多个程序并发访问数据库时,事务提供了一种进程间的隔离方法,防止互相干扰
	2.未数据库操作序列提供了一个从失败中回复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持数据一致性的方法
四个特性:
	1.原子性(Atomicity):要么全部成功执行,要么全部不执行
	2.一致性(Consistency):事务执行前后,数据库都必须处于一致性状态
	3.隔离性(Isolation):一个事务的执行不被其他事务干扰。即:不同的事务并发操作相同的数据时,每个事务都有各自完整的数据空间。
	4.持久性(Durability):一旦某个事务成功结束,那么它对数据库所做的更新必须被永久保存下来。

附:4个事务隔离级别

1.未授权读取:也被称为读未提交。即:事务B可能读取到事务A操作过程中的所有中间值。
2.授权读取:也被称为读已提交。只允许获取已经被提交的数据。即:只能看到最终值而不能看到中间值。授权读取允许不可重复读取。
3.可重复读取:保证在事务处理过程中,多次读取同一个数据时,其值都和事务开始时刻是一致的。因此该事务级别禁止了不可重复读取和脏读取,但可能出现幻读
4.串行化:最严格的事务隔离级别,所有事务都被串行执行。

通常优先考虑将数据库系统的隔离级别设置为授权读取。至于不可重复读,幻读,第二类丢失更新等并发问题,可以由应用程序主动采用悲观锁和乐观锁来进行事务控制。

隔离级别对别

隔离级别脏读可重复读幻读
未授权读取存在不可以存在
授权读取不存在不可以存在
可重复读取不存在可以存在
串行化不存在可以不存在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值