一种资源锁管理方法、装置、电子设备及存储介质与流程

文档序号:35018009发布日期:2023-08-04 08:47阅读:35来源:国知局
一种资源锁管理方法、装置、电子设备及存储介质与流程

本发明涉及计算机,尤其涉及一种资源锁管理方法、装置、电子设备及存储介质。


背景技术:

1、资源锁是计算机协调多个线程并发执行的机制,相关技术中的资源锁包括数据库中的全局锁和表级锁,全局锁可以对整个数据库实例加锁,而表级锁则可以对整张表加锁。相关技术的缺点是锁粒度过大,发生锁冲突的概率大,导致系统的并发度低。


技术实现思路

1、为了解决上述问题,本发明实施例提供了一种资源锁管理方法、装置、电子设备及存储介质,以至少解决相关技术锁粒度过大,系统的并发度低的问题。

2、本发明的技术方案是这样实现的:

3、第一方面,本发明实施例提供了一种资源锁管理方法,该方法包括:

4、确定待锁定资源的唯一标识对应的哈希值;

5、确定预设哈希表中所述哈希值对应的第一哈希桶;其中,所述预设哈希表包括多个哈希桶,所述多个哈希桶对应同一条双向链表,每个哈希桶对应所述双向链表的一段链表区间;所述双向链表上的每个锁节点表征一个待锁定资源的资源锁;

6、基于所述第一哈希桶对应的链表区间,确定所述待锁定资源的锁节点;

7、从所述待锁定资源的锁节点中获取所述待锁定资源的资源锁。

8、在上述方案中,所述基于所述第一哈希桶对应的链表区间,确定所述待锁定资源的锁节点,包括:

9、确定所述第一哈希桶对应的链表区间是否包括所述待锁定资源的锁节点;

10、若所述第一哈希桶对应的链表区间不包括所述待锁定资源的锁节点,则创建所述待锁定资源的锁节点;

11、将新建的所述待锁定资源的锁节点插入到所述双向链表中;

12、若所述第一哈希桶对应的链表区间包括所述待锁定资源的锁节点,则从所述第一哈希桶对应的链表区间中确定所述待锁定资源的锁节点。

13、在上述方案中,在所述从所述第一哈希桶对应的链表区间中确定所述待锁定资源的锁节点之后,所述方法还包括:

14、获取内存中的所述待锁定资源的资源锁的当前引用计数;

15、若所述当前引用计数与预期原值相同,则将所述内存中的待锁定资源的资源锁的当前引用计数加1。

16、在上述方案中,所述将新建的所述待锁定资源的锁节点插入到所述双向链表中,包括:

17、获取新建的所述待锁定资源的锁节点;

18、确定所述待锁定资源的锁节点的插入位置;

19、将所述待锁定资源的锁节点插入所述插入位置;

20、更新所述待锁定资源的锁节点对应的哈希桶的索引;每个哈希桶的索引指向对应的链表区间的头节点;每个哈希桶对应的链表区间中的锁节点按照哈希值的大小递增排序。

21、在上述方案中,所述确定所述待锁定资源的锁节点的插入位置,包括:

22、确定所述待锁定资源的锁节点的哈希值对应的第二哈希桶;

23、从所述第二哈希桶对应的链表区间的头节点开始遍历所述链表区间;

24、确定遍历的当前节点的哈希值是否大于或等于所述待锁定资源的锁节点的哈希值,且第一运算结果是否等于第二运算结果;所述第一运算结果表征对所述待锁定资源的哈希值进行右移运算的运算结果;所述第二运算结果表征对所述当前节点的哈希值进行右移运算的运算结果;

25、若所述第一运算结果等于所述第二运算结果,且所述当前节点的哈希值大于或等于所述待锁定资源的锁节点的哈希值,确定所述插入位置为所述当前节点的前一个节点和所述当前节点之间。

26、第二方面,本发明实施例提供了一种资源锁管理装置,该装置包括:

27、第一确定模块,用于确定待锁定资源的唯一标识对应的哈希值;

28、第二确定模块,用于确定预设哈希表中所述哈希值对应的第一哈希桶;其中,所述预设哈希表包括多个哈希桶,所述多个哈希桶对应同一条双向链表,每个哈希桶对应所述双向链表的一段链表区间;所述双向链表上的每个锁节点表征一个待锁定资源的资源锁;

29、第三确定模块,用于基于所述第一哈希桶对应的链表区间,确定所述待锁定资源的锁节点;

30、获取模块,用于从所述待锁定资源的锁节点中获取所述待锁定资源的资源锁。

31、第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本发明实施例第一方面提供的资源锁管理方法的步骤。

32、第四方面,本发明实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序。所述计算机程序被处理器执行时实现如本发明实施例第一方面提供的资源锁管理方法的步骤。

33、本实施例通过确定待锁定资源的唯一标识对应的哈希值,确定预设哈希表中该哈希值对应的第一哈希桶。基于第一哈希桶对应的链表区间,确定待锁定资源的锁节点,从待锁定资源的锁节点中获取待锁定资源的资源锁。其中,预设哈希表包括多个哈希桶,多个哈希桶对应同一条双向链表,每个哈希桶对应双向链表的一段链表区间,双向链表上的每个锁节点表征一个待锁定资源的资源锁。本实施例在访问待锁定资源时,根据待锁定资源的唯一标识对应的哈希值,从双向链表中获取对应的锁节点,从锁节点中获得待锁定资源的资源锁。本实施例基于哈希表和双向链表来管理资源锁,每个资源锁都对应双向链表中的一个节点,每个待锁定资源都可以拥有自己的专用锁,资源锁的粒度最小,可以降低并发场景下发生锁冲突的概率,提高系统并发度。



技术特征:

1.一种资源锁管理方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述基于所述第一哈希桶对应的链表区间,确定所述待锁定资源的锁节点,包括:

3.如权利要求2所述的方法,其特征在于,在所述从所述第一哈希桶对应的链表区间中确定所述待锁定资源的锁节点之后,所述方法还包括:

4.如权利要求2所述的方法,其特征在于,所述将新建的所述待锁定资源的锁节点插入到所述双向链表中,包括:

5.如权利要求4所述的方法,其特征在于,所述确定所述待锁定资源的锁节点的插入位置,包括:

6.如权利要求5所述的方法,其特征在于,所述确定所述待锁定资源的锁节点的哈希值对应的第二哈希桶,包括:

7.如权利要求5所述的方法,其特征在于,所述方法还包括:

8.如权利要求7所述的方法,其特征在于,所述方法还包括:

9.如权利要求4所述的方法,其特征在于,在所述将所述待锁定资源的锁节点插入所述插入位置之后,所述方法还包括:

10.如权利要求4所述的方法,其特征在于,所述更新所述待锁定资源的锁节点对应的哈希桶的索引,包括:

11.如权利要求10所述的方法,其特征在于,所述方法还包括:

12.如权利要求2所述的方法,其特征在于,所述确定所述第一哈希桶对应的链表区间是否包括所述待锁定资源的锁节点,包括:

13.如权利要求1所述的方法,其特征在于,在使用完所述待锁定资源的资源锁之后,所述方法还包括:

14.一种资源锁管理装置,其特征在于,包括:

15.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至13任一项所述的资源锁管理方法。

16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至13任一项所述的资源锁管理方法。


技术总结
本发明实施例适用于计算机技术领域,提供了一种资源锁管理方法、装置、电子设备及存储介质,其中,资源锁管理方法包括:确定待锁定资源的唯一标识对应的哈希值;确定预设哈希表中哈希值对应的第一哈希桶;其中,预设哈希表包括多个哈希桶,多个哈希桶对应同一条双向链表,每个哈希桶对应双向链表的一段链表区间;双向链表上的每个锁节点表征一个待锁定资源的资源锁;基于第一哈希桶对应的链表区间,确定待锁定资源的锁节点;从待锁定资源的锁节点中获取待锁定资源的资源锁。

技术研发人员:程康,杨旭荣
受保护的技术使用者:深信服科技股份有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1