《数据库管理及应用》课程电子教案(PPT课件)5.06 Examination dead lock 死锁的检测

5.06 Examination dead lock 死锁检测
1 5.06 Examination dead lock 死锁检测

●一个事务申请锁而未获准,则进入等待,等 待其他事务释锁,以获得必须的数据资源 这就形成了事务间的等待关系。 。并发事务间出现循环等待时,如不加干预, 则会一直等待下去,叫死锁
2 ⚫ 一个事务申请锁而未获准,则进入等待,等 待其他事务释锁,以获得必须的数据资源. 这就形成了事务间的等待关系。 ⚫ 并发事务间出现循环等待时,如不加干预, 则会一直等待下去,叫死锁

。例: Tl T2 xlock(D1); 时 xlock(D2); 间 xlock(D2)月 等待 xlock(D1); 等待
3 ⚫ 例: 时间 T1 T2 . . . xlock(D1); . . . . . . . . . xlock(D2); 等待 . . . . . . . . . xlock(D2); . . . . . . . . . xlock(D1); 等待

。处理死锁方法有两种: 「检测死锁,发现后处理 防止死锁发生 -Examination of dead lock 死锁检测方法有两种: 1.超时法: 一个事务等待时间超过某一时限,则认为 它发生了死锁
4 ⚫ 处理死锁方法有两种: 检测死锁,发现后处理. 防止死锁发生. 一.Examination of dead lock 死锁检测方法有两种: 1.超时法: 一个事务等待时间超过某一时限,则认为 它发生了死锁

。优点:简单, ●问题: 1)死锁发生后, 需等待一定时间。 2)因通信受阻,系统负荷重等,等待超时的 事务,均被当死锁事务处理。 。注意:判定死锁发生的时限规定的太大,发现死 锁时间滞后太多;规定太短,则误判率太高,一 般须经过当前系统运行实验,才能确定
5 ⚫ 优点:简单. ⚫ 问题: 1)死锁发生后, 需等待一定时间。 2)因通信受阻,系统负荷重等,等待超时的 事务,均被当死锁事务处理。 ⚫ 注意:判定死锁发生的时限规定的太大,发现死 锁时间滞后太多;规定太短,则误判率太高,一 般须经过当前系统运行实验,才能确定

2.wait-for graph 等待图法 ·等待图是一个有向图 G=(W,V),其中: W:顶点集合: (Ti T1是数据库系统中当前运行的事务1,2,,n} V:边集合:{(Ti,Tj)/Tj等待Ti,且i<◇j} DBMS根据申请和加锁情况动态维护一个等待图 。当且仅当图中出现有向图回路时,死锁发生
6 2.wait-for graph 等待图法 ⚫ 等待图是一个有向图 G=(W,V),其中: W:顶点集合: {Ti Ti是数据库系统中当前运行的事务1,2,...,n} V:边集合:{(Ti,Tj)/Tj等待Ti,且i<>j} ⚫ DBMS根据申请和加锁情况动态维护一个等待图. ⚫ 当且仅当图中出现有向图回路时,死锁发生

。可以及时检测出死锁。 每发生一次等待事件,均要维修一次等待图, 检测一次死锁,花费大,影响系统性能。 ·较合理的办法是周期性检测死锁 。根据:等待事件在一般系统中不是频繁出现 的,因循环等待而死锁,则更是小概率事件! 不必频繁检测
7 ⚫ 可以及时检测出死锁。 ⚫ 每发生一次等待事件,均要维修一次等待图, 检测一次死锁,花费大,影响系统性能。 ⚫ 较合理的办法是周期性检测死锁, ⚫ 根据:等待事件在一般系统中不是频繁出现 的,因循环等待而死锁,则更是小概率事件, 不必频繁检测

死锁检测周期愈长,检测代价 。} 愈小;但因死锁不被及时发现 而致的损失却越大,可用实验方 法针对特定系统确定个最佳值。 代价 ↑检测代价 因死锁不被及时发现而致的损失 检测周期 最佳检测周期
8 ⚫ 死锁检测周期愈长,检测代价 愈小;但因死锁不被及时发现, 而致的损失却越大,可用实验方 法针对特定系统确定个最佳值。 代价 检测代价 因死锁不被及时发现而致的损失 检测周期 最佳检测周期

死锁发现后,DBMS一般处理方式如下: 1).在循环等待事务中选一个作为牺牲者 (victim) 2).卷回栖牲的事务,释放其获得的所有锁 及其他资源. 3).将释放的锁分配给等待它的事务
9 死锁发现后,DBMS 一般处理方式如下: 1).在循环等待事务中选一个作为牺牲者 (victim); 2).卷回牺牲的事务,释放其获得的所有锁 及其他资源. 3).将释放的锁分配给等待它的事务

Restart transaction (重启动事务) 对牺牲事务处理方式有二种: 。发消息给相关用户: 事务因死锁被撤消,用户向系统再交付该事务。 由DBMS重启动该事务。 但应注意,被牺牲者,要等待一段时间再重启 动,以防止重新死锁。甚至陷入:交付->死锁;再 交付->再死锁的恶性循环中. 10
10 Restart transaction (重启动事务) 对牺牲事务处理方式有二种: ⚫ 发消息给相关用户: 事务因死锁被撤消,用户向系统再交付该事务。 ⚫ 由DBMS重启动该事务。 但应注意,被牺牲者,要等待一段时间再重启 动,以防止重新死锁。甚至陷入:交付->死锁;再 交付->再死锁的恶性循环中
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据库管理及应用》课程电子教案(PPT课件)5.05 Locking Protocol 加锁协议.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.04 Concurrent Control Introduction 并发控制引论.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.03 Execution and Recovery of Update Transaction 更新事务的执行与恢复.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.01 Transaction Management 事务管理.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)4.05 DBMS 数据库管理系统.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)4.04 DBMS 数据库管理系统.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)4.03 Logical structures of Database 数据库的逻辑结构.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)4.02 Access_path Based Query Optimization 基于存取路径的查询优化.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)4.01 Optimitation of Query 查询优化.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.07 QBE Language QBE数据库语言.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.06 Dynamic SQL 动态SQL.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.05 Embedded SQL 嵌入式SQL.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.04 QL and DML in SQL SQL中的查询语言和现代语言.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.03 DDL 数据定义语言.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.02 SQL Introduction & DDL SQL 查询语言入门和 DDL)(SQL:结构化查询语言,DDL:数据定义语言.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)3.01 Data Manipulation languages 数据操纵语言.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)2.03 Tuple&Domain Relation Calculus 元组和域关系演算.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)2.02 Relation Calculus 关系运算.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)2.01 data Model of Database 数据库的数据模型.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)1.02 Data Description of real world 真实世界的数据描述.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.07 concurrent control Based time stamp 基于时间标记的并发控制技术.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.08 Multiple Granularity Locking 多粒度封锁.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)5.09 Concurrent Control Based Time Stamp 基于时间标记的并发控制技术.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)6.01 Dependency of Data 数据库相关性.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)6.02 Armstrong 公理体系.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)6.03 Introduction to Normal Form of relation 关系规范化导论.ppt
- 《数据库管理及应用》课程电子教案(PPT课件)6.04 Normal Form of Relation 关系规范化.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第一章 绪论(主讲人:徐沛娟).ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第七章 图.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第三章 线性表.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第八章 排序.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第二章 面向对象程序设计与C++语言.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第五章 数组、字符串、集合类.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第六章 树.ppt
- 吉林大学:《数据结构》课程电子教案(PPT课件)第四章 栈和队列.ppt
- 吉林大学:《Windows程序设计》课程电子教案(PPT课件)Windows程序设计教学课件(1/2,主讲人:翟慧杰).ppt
- 吉林大学:《Windows程序设计》课程电子教案(PPT课件)Windows程序设计教学课件(2/2,主讲人:翟慧杰).ppt
- 吉林大学:《计算机图形学》课程电子教案(PPT课件)第一章 计算机图形学简介 第一节 计算机图形学 第二节 计算机图形学的起源.ppt
- 吉林大学:《计算机图形学》课程电子教案(PPT课件)第三章 图形变换 第一节 变换的数学基础 第二节 二维图形变换 第三节 二维视见变换.ppt
- 吉林大学:《计算机图形学》课程电子教案(PPT课件)第二章 图形基元的显示 第一节 直线扫描转换算法.ppt