数据库并发控制 --- Database Concurrency Control
数据库并发控制 --- Database Concurrency Control加锁 -- LockingTwo-Phase Locking死锁 -- Deadlocks加锁 – LockingTwo-Phase Locking死锁 – Deadlocks
·
数据库并发控制 --- Database Concurrency Control
并发控制
- 在数据库中, 并发控制机制主要依靠加锁解决
Two-Phase Locking
Conservative Two-Phase Locking
- 事务开始时,即一次性申请所有的锁,之后不会再申请任何锁,如果其中某个锁不可用,则整个申请就不成功,事务就不会执行,需要等待得到所有锁之后执行事务
- 在事务尾端,一次性释放所有的锁
- 一次性锁协议不会产生死锁的问题,但事务的并发度不高, 所以不常用
Strict Two-Phase Locking
整个事务分为两个阶段,前一个阶段为加锁,后一个阶段为解锁。
- 加锁阶段: 事务只能加锁,也可以操作数据,但不能解锁
- 解锁阶段: 当事务释放第一个锁时进入解锁阶段,此过程中事务只能解锁,也可以操作数据,不能再加锁。
- 不足是没有解决死锁的问题,因为它在加锁阶段没有顺序要求。如两个事务分别申请了A, B锁,接着又申请对方的锁,此时进入死锁状态。
利用Two-Phase Locking解决冲突
WR — “dirty reads”
RW — “Nonrepeatable reads” — 会产生死锁
WW — “Lost updates”
死锁 – Deadlocks
- Deadlock: Cycle of transactions waiting for locks to be released by each other
Deadlock Detection
Deadlock Prevention
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐







所有评论(0)