[发明专利]一种锁请求处理方法及装置有效
申请号: | 201410714580.0 | 申请日: | 2014-11-28 |
公开(公告)号: | CN104461707B | 公开(公告)日: | 2018-09-28 |
发明(设计)人: | 范颂颂;冯锐 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 冯艳莲 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 请求 处理 方法 装置 | ||
本发明公开了一种锁请求处理方法及装置,用于解决现有技术中等待队列中的锁请求容易发生阻塞,导致共享资源的访问效率低下的技术问题。该方法包括:接收加锁请求,判断所述加锁请求请求的锁权限与已授权的锁权限是否存在冲突;如果不存在冲突,则返回所述加锁请求的锁权限,并将所述加锁请求放入已授权队列。
技术领域
本发明涉及计算机领域,特别涉及一种锁请求处理方法及装置。
背景技术
锁是计算机系统中的一个核心概念。在单机系统中,锁用于保证多个线程对同一共享资源的互斥访问。简单的锁模型包括共享锁和排它锁,一种共享资源在某一时刻只能分派多个共享锁或者一个排它锁。在计算机集群环境中,借助于分布式锁可以保证分布在各成员节点(即计算机集群系统中的每一个物理设备)上的进程对集群中同一共享资源的互斥访问。
单机系统中的线程或集群系统中的节点要访问共享资源时,需要向锁管理器发出对该共享资源进行加锁的请求,只有在加锁请求被授权时才可以访问共享资源。锁管理器将锁请求分为两个队列,分别为授权队列和等待队列,其中,授权队列中的是已经获得授权的锁请求,等待队列中的是正在等待被授权的锁请求。当等待队列中的锁请求与授权队列中的锁请求存在权限冲突时,等待队列中的锁请求将不能获得授权,该锁请求将被挂在等待队列中,等待与其冲突的已授权锁请求被释放后,才能被授权。
现有技术中,锁管理器在处理加锁请求时,严格遵守先入先出队列(First InputFirst Output,FIFO)的原则。即,当一个节点或线程对共享资源请求加锁时,如果有其他锁请求在等待队列中等待,则将新的锁请求放到等待队列的最后,只有在位于该锁请求前面的请求均获得授权时,锁管理器才会处理该锁请求。因此,如果先到的锁请求因与已授权锁请求存在权限冲突而不能授权,将阻塞整个等待队列,严重降低了共享资源的访问效率。
发明内容
本发明实施例提供一种锁请求处理方法及装置,用于解决现有技术中等待队列中的锁请求容易发生阻塞,导致共享资源的访问效率低下的技术问题。
第一方面,本发明实施例提供了一种锁请求处理方法,包括:接收加锁请求,判断所述加锁请求请求的锁权限与已授权的锁权限是否存在冲突;如果不存在冲突,则返回所述加锁请求的锁权限,并将所述加锁请求放入已授权队列。
结合第一方面,在第一方面的第一种可能的实现方式中,判断所述加锁请求请求的锁权限与已授权锁的锁权限是否存在冲突之前,所述方法还包括:
将所述加锁请求放入第一等待队列,所述第一等待队列为用于存储等待处理的请求读权限的加锁请求的队列或者为用于存储等待处理的请求写权限的加锁请求的队列;判断所述第一等待队列当前的第一处理配额是否大于0,所述第一处理配额为所述第一等待队列中当前允许被处理的加锁请求的数量;如果所述第一处理配额大于0,则执行判断所述加锁请求请求的锁权限与所述已授权的锁权限是否存在冲突的步骤。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述返回所述加锁请求的锁权限之后,所述方法还包括:将所述第一处理配额减1。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在判断所述加锁请求请求的锁权限与已授权的锁权限是否存在冲突之后,所述方法还包括:如果所述加锁请求请求的锁权限与所述已授权的锁权限存在冲突,则判断所述第一等待队列中位于所述加锁请求之后的第二加锁请求请求的锁权限与所述已授权的锁权限是否存在冲突;如果不存在冲突,则返回所述第二加锁请求的锁权限,并将所述第二加锁请求放入所述已授权队列。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第三种可能的实现方式中的任意一种,在第一方面的第四种可能的实现方式中,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410714580.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:控制应用进程启动的方法及装置
- 下一篇:一种仿真结果保存方法