[发明专利]基于自适应乐观锁的文件锁定方法、系统及存储介质在审
申请号: | 202110294190.2 | 申请日: | 2021-03-19 |
公开(公告)号: | CN112988687A | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | 朱黎;刘远;郭镔 | 申请(专利权)人: | 北京明略昭辉科技有限公司 |
主分类号: | G06F16/176 | 分类号: | G06F16/176;G06F9/50;G06F9/54 |
代理公司: | 青岛清泰联信知识产权代理有限公司 37256 | 代理人: | 赵燕 |
地址: | 100089 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 自适应 乐观 文件 锁定 方法 系统 存储 介质 | ||
本申请涉及一种基于自适应乐观锁的文件锁定方法、系统、电子设备及存储介质,其中,该方法包括:访问请求获取步骤,用于接收客户端的文件访问请求并通过等待队列缓存访问请求对应的锁请求;锁冲突判断步骤,用于当已分配锁发生资源释放时,获取等待队列中队首锁请求,判断队首锁请求是否与队首锁请求对应的文件中已有锁请求的范围存在冲突;请求处理步骤,用于当队首锁请求与文件中已存在的锁请求无冲突时,赋予所述队首锁请求对应的资源;反之,根据队首锁请求与已有锁请求的冲突范围是否属于扩展范围获取释放资源。通过本申请,解决了解决乐观锁机制面临多个进程交错访问文件的不同范围时锁请求效率降低的问题,提高请求处理效率。
技术领域
本申请涉及计算机技术领域,特别是涉及基于自适应乐观锁的文件锁定方法、系统、电子设备及计算机可读存储介质。
背景技术
当多个进程对同一文件进行访问时,为了避免并发操作引起的数据混乱,通常会对需要操作的文件进行加锁。但如果不同进程访问的是该文件的不同区间数据,那么对整个文件加锁的开销就相对较高,这种情况下需要使用字节范围锁来减少冲突。范围锁锁定的是文件当中的某个区域,对同一文件可以允许多个范围锁,从而提高多进程同时访问的并发度。但是在单个进程多次访问同一文件的不同区域的情况下,字节范围锁的效率就不如文件锁。
目前采用乐观锁机制来解决范围锁在单个进程多次访问同一文件不同区域时效率较低的问题。乐观锁机制的主要思想如图1所示:在收到对文件某个区域的访问请求时,根据已经分配的锁范围,给予该请求进程包括请求区域在内的最大范围锁。也就是说请求进程得到的不是请求锁的准确范围,而是在不与当前已有的其他范围锁发生冲突的前提下,覆盖请求锁范围,同时扩展了与请求范围连续的最大范围。
现有技术对单个进程多次访问某一文件的不同范围时非常有效,但如果有多个进程需要交错访问文件的不同范围时,这种乐观锁机制又很容易造成冲突,从而需要大量的释放锁操作,这样会导致锁请求的效率大大降低,并且会造成网络负载增多以及操作延迟。
发明内容
本申请实施例提供了一种基于自适应乐观锁的文件锁定方法、系统、电子设备及计算机可读存储介质,以至少解决乐观锁机制面临多个进程交错访问文件的不同范围时锁请求效率降低的问题。
第一方面,本申请实施例提供了一种基于自适应乐观锁的文件锁定方法,包括:
访问请求获取步骤,用于接收一客户端的文件访问请求并通过一等待队列缓存所述访问请求对应的锁请求;
锁冲突判断步骤,用于当已分配锁发生资源释放时,获取所述等待队列中队首锁请求,判断所述队首锁请求是否与所述队首锁请求对应的文件中已有锁请求的范围存在冲突;
请求处理步骤,用于当所述队首锁请求与所述文件中已存在的锁请求无冲突时,赋予所述队首锁请求对应的资源;反之,根据所述队首锁请求与所述已有锁请求的冲突范围是否属于扩展范围获取释放资源。
基于上述步骤,本申请实施例对所有的锁请求均通过所述等待队列进行缓存,并取所述等待队列队首锁请求判断其是否与已有锁请求冲突,解决了在多个进程交错访问文件的情况下大量释放锁操作导致的锁请求处理效率低下的问题,降低操作延迟,提高请求处理效率。
在其中一些实施例中,所述请求处理步骤进一步包括:
请求资源赋予步骤,用于当所述队首锁请求与所述文件中已有锁请求无冲突时,赋予所述队首锁请求对应的资源;
扩展范围判断步骤,用于判断所述队首锁请求与所述已有锁请求的冲突范围是否属于扩展范围;
资源释放步骤,用于若所述冲突范围属于拓展范围,则当所述已有锁请求所属客户端释放所述扩展范围资源时,即为对所述扩展范围的资源进行解锁时,根据所述队首锁请求对所述扩展范围进行加锁,并将所述队首锁请求移出所述等待队列;否则,所述队首锁请求等待所述已有锁请求释放资源并执行所述锁冲突判断步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明略昭辉科技有限公司,未经北京明略昭辉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110294190.2/2.html,转载请声明来源钻瓜专利网。