[发明专利]数据库事务锁机制的死锁检测方法及装置有效
申请号: | 200910143961.7 | 申请日: | 2009-06-04 |
公开(公告)号: | CN101576830A | 公开(公告)日: | 2009-11-11 |
发明(设计)人: | 陈河堆;常二鹏;卢勤元 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/30 |
代理公司: | 信息产业部电子专利中心 | 代理人: | 吴永亮 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 事务 机制 死锁 检测 方法 装置 | ||
1.一种数据库事务锁机制的死锁检测方法,其特征在于,预定义一个用于 存放线程间等待关系信息的邻接矩阵,则所述方法包括:
步骤A:加锁线程将加锁过程中生成的线程间等待关系信息记录在所述邻 接矩阵中;
步骤B:解锁线程在解锁过程中根据需要更新所述邻接矩阵中的相应等待关 系信息;所述步骤B具体包括:步骤B1:在相关线程进行解锁过程中,进行解锁 的线程称为解锁线程;解锁线程对于所述邻接矩阵中记录的要申请解锁线程正 在释放的这把锁的每个线程,判断它所要申请的锁类型是否与该解锁线程拥有 的锁类型相容,若不相容,执行步骤B2;若相容,则执行步骤B3;步骤B2: 保持等待关系信息不变;步骤B3:判断是否与至少一个其他线程拥有的锁类型 不相容,如果是,则进行锁等待关系迁移,更新所述邻接矩阵中的相应等待关 系信息,否则仅清除原来的线程间等待关系信息;
步骤C:死锁检测线程利用所述邻接矩阵及图论原理对所述线程进行检测计 算,从而判断是否存在死锁;所述步骤C具体包括:步骤C1:死锁检测线程拷 贝所述邻接矩阵的一个备份;步骤C2:利用备份的邻接矩阵中的线程间等待关 系信息及图论原理中的拓扑排序方法对所述线程进行检测计算,检测线程间是 否存在死锁回路,如果存在,则根据预定策略在所述死锁回路中选择一个线程 作为牺牲线程,让其失败返回,从而破除死锁状态。
2.根据权利要求1所述的方法,其特征在于,所述步骤A具体包括:
在对某锁对象进行加锁的过程中,当加锁线程要申请的锁类型与该锁对象 已授予其他线程的锁类型不相容时,将加锁线程等待其他线程的等待关系信息 记录在所述邻接矩阵中;
加锁线程挂起等待相关线程进行解锁。
3.根据权利要求1所述的方法,其特征在于,所述步骤C2中的具体包括:
步骤C21:计算所述邻接矩阵的入度数组和出度数组,并判断入度数组是否 等于出度数组,如果是,执行步骤C22,否则执行步骤C23;
步骤C22:入度数组是否是0向量,如果是,则计算结束;否则根据预定策 略在所述死锁回路中选择一个线程作为牺牲线程,让其失败返回;
步骤C23:清除所有出度不为且0入度为0的元素,并转到步骤C21。
4.一种数据库事务锁机制的死锁检测装置,其特征在于,所述装置包括: 信息存储模块、死锁检测模块、每个线程中包含的信息记录模块和信息更新模 块,其中,
所述信息存储模块,用于预定义一个用于存放线程间等待关系信息的邻接 矩阵;
所述信息记录模块,用于将加锁过程中生成的线程间等待关系信息记录到 所述邻接矩阵中;
所述信息更新模块,用于在解锁过程中根据需要更新所述邻接矩阵中的相 应等待关系信息;所述信息更新模块具体用于,在相关线程进行解锁过程中, 对于所述邻接矩阵中记录的要申请解锁线程正在释放的这把锁的每个线程,判 断它所要申请的锁类型是否与该解锁线程拥有的锁类型相容,若不相容,保持 等待关系信息不变;若不相容,判断是否与至少一个其他线程拥有的锁类型不 相容,如果是,则进行锁等待关系迁移,更新所述邻接矩阵中的相应等待关系 信息,否则仅清除原来的线程间等待关系信息;
所述死锁检测模块,用于利用所述邻接矩阵及图论原理对所述线程进行检 测计算,从而判断是否存在死锁;所述死锁检测模块具体用于,拷贝所述矩阵 的一个备份,利用备份的邻接矩阵中的线程间等待关系信息及图论原理中的拓 扑排序方法对所述线程进行检测计算,检测线程间是否存在死锁回路,如果存 在,则根据预定策略在所述死锁回路中选择一个线程作为牺牲线程,让其失败 返回,从而破除死锁状态。
5.根据权利要求4所述的装置,其特征在于,所述信息记录模块具体用于, 在加锁过程中,当加锁线程要申请的锁类型与该锁对象已授予其他线程的锁类 型不相容时,所述信息记录模块将加锁线程等待其他线程的等待关系信息记录 在所述信息存储模块中,然后挂起等待相关线程进行解锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910143961.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:使用多个网络相机的方法与使用该方法的计算机装置
- 下一篇:截煤机减速器斜齿轮