




已阅读5页,还剩79页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
事务与并发控制,Transaction and parallel control,Contents,1,2,3,4,事务的概念,并发控制概述,死锁的产生与处理,事务调度的可串行性,知识回顾及场景分析,数据库系统的首要目的:,保证数据的正确性,“任何情况下”,正常运行还是产生故障,单个用户运行还是多用户并发,DB,1,1,一次转账:从 A 账户转1000到 B 账户,1) 读 A 的余额,2) A-1000A,3) 读 B 的额度,4) B+1000B,问题:若在第三步的时候出现故障?,知识回顾及场景分析,2,什么是事务,事务是对数据库的一个操作序列,事务的定义方式,显式定义,Begin Transaction;Commit;,Begin Transaction;Rollback;,隐式定义,按照某种规则自动划分,事务是对数据库的一个操作序列,事务的定义方式,2,什么是事务,Begin Transaction; Read(A); A=A-1000; IF A0 THEN 输出“金额不足”; Rollback; ELSE Write(A); Read(B); B=B+1000; Write(B);Commit;,定义事务,2,什么是事务,3,事务的特性,1、原子性 (Atomicity),逻辑单元要么全做或全不做,Begin Transaction; Read(A); A=A-1000; IF A0 THEN 输出“金额不足”; Rollback; ELSE Write(A); Read(B); B=B+1000; Write(B);Commit;,3,事务的特性,2、一致性 (Consistency),数据正确性不被破坏,Begin Transaction; Read(A); A=A-1000; IF A0 THEN 输出“金额不足”; Rollback; ELSE Write(A); Read(B); B=B+100; Write(B);Commit;,3,事务的特性,Begin Transaction; Read(A); A=A-1000; IF A0 THEN 输出“金额不足”;Rollback; ELSE Write(A); Read(B); B=B+100; Write(B);Commit;,原子性与一致性与的对比,原子性由系统保障,一致性由用户和程序员保障,3,事务的特性,3、永久性 (Durability),事务一旦提交,对数据库的改变永久地留在数据库中,发生了故障也不会丢失,除非其它事务改变它,1,知识回顾及场景分析,“任何情况下”,正常运行还是产生故障,单个用户运行还是多用户并发,问题探讨,保障了原子性和一致性,能保障数据的正确性吗?,T1 T2 R(A)=16 R(B)=17 求和=33 R(A)=16 A*2A W(A) R(A)=32 R(B)=17 求和=49,不可重复读,问题探讨,保障了原子性和一致性,能保障数据的正确性吗?,T1 T2 R(A)=16 A*2A W(A)=32 R(A)=32 ROLLBACK A恢复为16,读脏数据,问题探讨,保障了原子性和一致性,能保障数据的正确性吗?,T1 T2 R(A)=16 R(A)=16 A-1A W(A) A-1A W(A),丢失更新错误,3,事务的特性,4、隔离性(Isolation),一个事务的执行不能被其它干扰,如何保障事务的隔离性呢?,T1 T2 R(A)=16 R(A)=16 A-1A W(A) A-1A W(A),隔离性的实现,3,事务的特性,4、隔离性(Isolation),封锁机制,采用合适的调度方案,3,事务的特性,4、隔离性(Isolation),封锁机制,T1 T2 R(A)=16 R(B)=17 求和=33 R(A)=16 A*2A W(A) R(A)=32 R(B)=17 求和=49,T1 T2 Lock(A),Lock(B) R(A)=16 R(B)=17 求和=33 : R(A) R(A)=16 等待 R(B)=17 等待 求和=33 等待 Ulock(A) 等待 Ulock(B) 等待 A*2A W(A)=32,不可重复读,3,事务的特性,4、隔离性(Isolation),T1 T2 R(A)=16 R(A)=16 A-1A W(A) A-1A W(A),封锁机制,T1 T2 Lock(A) R(A)=16 R(A) 等待 A-1A 等待 W(A) 等待 ULOCK(A) 等待 R(A)=15 A-1A W(A),丢失更新,3,事务的特性,4、隔离性(Isolation),封锁机制,T1 T2 Lock(A),Lock(B) R(A)=16 R(B)=17 求和=33 : R(A) R(A)=16 等待 R(B)=17 等待 求和=33 等待 Ulock(A) 等待 Ulock(B) 等待 A*2A W(A)=32,问题:,封锁时机?,带来的问题?,3,事务的特性,4、隔离性(Isolation),封锁机制,T1 T2 Lock(A),Lock(B) R(A)=16 R(B)=17 求和=33 : R(A) R(A)=16 等待 R(B)=17 等待 求和=33 等待 Ulock(A) 等待 Ulock(B) 等待 A*2A W(A)=32,问题:,封锁时机?,带来的问题?,并发度问题,3,事务的特性,4、隔离性(Isolation),封锁机制,T1 T2 Lock(A),Lock(B) R(A)=16 R(B)=17 求和=33 : R(A) R(A)=16 等待 R(B)=17 等待 求和=33 等待 Ulock(A) 等待 Ulock(B) 等待 A*2A W(A)=32,问题:,封锁时机?,带来的问题?,并发度问题,死锁问题,3,事务的特性,4、隔离性(Isolation),封锁机制,问题:,封锁时机?,带来的问题?,并发度问题,死锁问题,T1 T2 Lock(A), : : Lock(B) : : Lock(B) : 等待 Lock(A) 等待 等待 等待 等待 等待 等待,思考,采用什么封锁策略,来尽可能 地提高并发度,系统的对事务的隐式划分采用什么原则?,思考,并发控制概述,1,2,3,4,并发故障分析,封锁,三级封锁协议,思考,丢失更新读脏数据不可重复读,1,故障产生的原因分析,赋予事务一定的独占权限,封 锁,破坏了事务的隔离性:,锁的概念及作用,使用数据前,对数据进行封锁,使用数据结束后,释放锁,封锁期间,不允许其它事务更新数据,2,封锁,T1 T2 R(A)=16 R(A)=16 A-1A W(A) A-1A W(A),T1 T2 Lock(A) R(A)=16 R(A) 等待 A-1A 等待 W(A) 等待 ULOCK(A) 等待 R(A)=15 A-1A W(A),丢失更新,锁的概念及作用,2,封锁,封锁带来的问题分析,独占性共享度降低,对封锁进行分类,对封锁的时长进行控制,2,封锁,2,封锁,锁的分类,读锁(共享锁):S,写锁(排它锁):X,2,封锁,锁的相容矩阵,3,封锁协议,何时申请封锁,何时释放锁(持锁时间),3,封锁协议,一级封锁协议:,事务T在修改数据A之前,先对其加X锁,直到事务结束才释放,T1 T2 X(A) R(A)=16 X(A) 等待 等待 A-1A 等待 W(A) 等待 ULOCK(A) 等待 R(A)=15 A-1A W(A) ULOCK(A),3,封锁协议,T1 T2 Xlock(A) R(A)=16 A*2A W(A)=32 R(A)=32 ROLLBACK A恢复为16 ULOCK(A),二级封锁协议:,事务T在读数据A之前,先对其加S锁,读完后释放,3,封锁协议,T1 T2 XLock(A) R(A)=16 A*2A W(A)=32 SLock(A) R(A) 等待 ROLLBACK 等待 A恢复为16 等待 ULOCK(A) 等待 R(A),二级封锁协议:,事务T在读数据A之前,先对其加S锁,读完后释放,T1 T2 SLock(A, B) R(A)=16 R(B)=17 求和=33 ULOCK(A,B) R(A)=16 A*2A W(A) SLock(A,B) R(A)=32 R(B)=17 求和=49 Ulock(A, B),3,封锁协议,三级封锁协议:,事务T在读数据A之前,先对其加S锁,直到事务结束后释放,T1 T2 SLock(A, B) R(A)=16 R(B)=17 求和=33 x(A) 等待 等待 等待 S(A,B) 等待 R(A)=16 等待 R(B)=17 等待 求和=33 等待,3,封锁协议,三级封锁协议:,事务T在读数据A之前,先对其加S锁,直到事务结束后释放,3,封锁协议,问题:为什么要对封锁协议进行分级处理呢?,总结与思考,总 结,思 考: 1. 只要遵守三级封锁协议就一定能保证事务的调度结果是正确的吗?可串行化问题 2. 封锁会带来什么样的负面问题呢? 死锁,死锁的产生与处理,1,2,3,4,5,分析,Contents,死锁的概念,死锁的预防,死锁的诊断与解除,思考,1,回顾与分析,封锁机制,A,LOCK(A),LOCK(A),T1,T2,一次购票案例分析,1,回顾与分析,2,死锁的概念及产生,死锁的概念,如何解决死锁问题呢?,预防死锁,诊断死锁,解除死锁,多个事务因竞争资源而出现的互相等待现象,3,死锁预防,方案一:推迟T2的访问时间,LOCK(A),LOCK(B),T1,T2,LOCK(B),方案二:提早T1的封锁时间,LOCK(A),LOCK(B),LOCK(B),LOCK(A),T1,T2,一次封锁法,3,死锁预防,一次封锁法分析,LOCK(A1),T1,T2,LOCK(A2),LOCK(A100),: :,功能上分析,性能上分析,预防策略不可行,3,死锁预防,4,死锁诊断与解除,1、超时法,时长的设置,时间长,时间短,性能问题,功能问题,2、事务等待图法,4,死锁诊断与解除,判断有向环,T1,T2,T3,T4,4,死锁诊断与解除,消除有向环,如何判断有向图中存在环?如何撤销合适的事务来解除死锁?,总结与思考,思考,并发调度的可串行性,1,分析,2,并发调度的正确准则,3,2PL封锁协议,2PL与可串行化,4,5,总结与思考,Contents,1,回顾与引入,调度的正确性判断准则,问题: 采用封锁机制就一定能保证一个调度是正确 的吗?,事务的执行方式,1.串行执行,2.交叉并发,2,并发调度的准确性判断,T1 T2 R(A)=16 R(A)=16 A-1A W(A)=15 A-1A W(A)=15,一次购票的案例分析:,T1,T2,2,并发调度的准确性判断,T1 T2 R(A)=16 R(A)=16 A-1A W(A)=15 A-1A W(A)=15,T1,T2,与某一次串行执行结果相同,一次购票的案例分析:,2,并发调度的准确性判断,2,并发调度的准确性判断,T1 T2 Lock(A) R(A)=16 lock(A) 等待 A-1A 等待 W(A)=15 等待 Ulock(A) 等待 R(A)=15 A-1A W(A)=14 Ulock(A),T1 T2 R(A)=16 R(A)=16 A-1A W(A)=15 A-1A W(A)=15,T1,T2,与某一次串行执行结果相同,2,并发调度的正确性准则,T1:R(B),A=B+1,W(A),A=B=2,T2:R(A),B=A+1,W(B),T1 T2 Slock(B)Y=R(B)=2Ulock(B)Xlock(A)A=Y+1=3W(A)=3Ulock(A) Slock(A) Y=R(A)=3 Ulock(A) Xlock(B) B=Y+1=4 W(B)=4 Ulock(B),A=3, B=4,2,并发调度的正确性准则,T1:R(B),A=B+1,W(A),A=B=2,T2:R(A),B=A+1,W(B),T1 T2 Slock(A) Y=R(A)=2 Ulock(A) Xlock(B) B=Y+1=3 W(B)=3 Ulock(B)Slock(B)Y=R(B)=3Ulock(B)Xlock(A)A=Y+1=4W(A)=4Ulock(A),A=4, B=3,2,并发调度的正确性准则,T1:R(B),A=B+1,W(A),A=B=2,T2:R(A),B=A+1,W(B),T1 T2 Slock(B)Y=R(B)=2 Slock(A) X=R(A)=2Ulock(B) Ulock(A)Xlock(A)A=Y+1=3W(A)=3 Xlock(B) B=X+1=3 W(B)=3 Ulock(A) Ulock(B),A=3, B=3,如何来保证一个调度是正确的呢?,封锁协议,封锁机制,封锁策略,3,两段锁封锁协议(2PL),在对任何数据进行读、写操作前,首先申请并获得对该数据的封锁,一个事务在释放一个封锁后,就不允许再申请任何封锁,3,两段锁封锁协议(2PL),遵守2PL:,不遵守2PL:,Slock(A) Slock(B) ulock(A) lock(C) ulock(C) ulock(B),4,2PL封锁协议与可串行化,定理: 若并发的事务都遵守2PL, 则这些事务的 任何并发调度都是可串行化的,遵守2PL,调度可串行化,4,“2PL” 与 “一次封锁法”,一次封锁法必定是 遵守2PL的,2PL封锁协议与可串行化,3,一次封锁法可以避免死锁的发生,遵守2PL是可能发生死锁的,事务T1 事务T2Lock(B) R(B) Lock(A) R(A) Lock(A) 等待 等待 Lock(B)等待 等待等待 等待,2PL封锁协议与可串行化,“2PL”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诗歌课件教学课件
- 诗歌精美课件
- 快递物流公司配送方案
- 投资合作协议书格式
- 爱乐祺学课件
- 7月混凝土搅拌工高级模拟练习题与参考答案
- 2025年医学影像学测试题(含参考答案)
- 2025及未来5年中国USB吸塑套装市场调查、数据监测研究报告
- 2025年中国四鲜烤麸市场调查研究报告
- 2025及未来5年中国数控步冲压力机市场调查、数据监测研究报告
- 2025年放射诊疗培训试题及答案
- 2025年平安网格测试题库及答案
- 2025成人高考专升本《艺术概论》试题及答案
- 重症胰腺炎课件教学
- 3.2营造清朗空间教学设计 2025-2026学年统编版道德与法治八年级上册
- 烫伤急救课件
- 教科版物理八年级上册《2.光的反射定律》听评课记录2
- 2025广东食品安全考试题库及答案
- (2025年标准)学生癫痫免责协议书
- 电商企业客服流失的问题及解决对策研究
- 2025-2026学年高一上学期《新高一政策解读及学科差异化》主题班会课件
评论
0/150
提交评论