[发明专利]一种分布式锁管理方法和装置有效
申请号: | 201910707932.2 | 申请日: | 2019-08-01 |
公开(公告)号: | CN110430258B | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 赵志强 | 申请(专利权)人: | 赵志强 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 刘强 |
地址: | 150000 黑龙江省哈尔*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 管理 方法 装置 | ||
1.一种分布式锁管理方法,所述方法包括:
在接收到事务的加锁请求后,通过查询局部知识配置表判断所述事务的访问数据是否位于本计算机集群中;其中,所述局部知识配置表记录有本计算机集群中的数据的信息;
在所述事务的访问数据位于本计算机集群的情况下,根据该事务的预估处理时间或者该事务来源的网络带宽,将所述事务的加锁请求放入与之对应的待处理请求队列中,并为所述事务分配唯一锁申请码;
在所述事务的加锁请求位于队列头部时,根据为所述事务分配的唯一锁申请码判断是否满足锁授权条件,并在满足锁授权条件时为所述事务授予锁;
其特征在于,所述唯一锁申请码包括:ticket.nx、ticket.ns、ticket.maxx和ticket.maxs;
其中,ticket.nx表示在为所述事务分配唯一锁申请码时已处理独占锁的事务数、ticket.ns表示在为所述事务分配唯一锁申请码时已处理共享锁的事务数、ticket.maxx表示在为所述事务分配唯一锁申请码时申请独占锁的最大事务序号、ticket.maxs表示在为所述事务分配唯一锁申请码时申请共享锁的最大事务序号;
所述方法还包括:
在执行所述为所述事务分配唯一锁申请码的步骤之前,通过对所述事务的访问数据所对应的锁计数器执行获取-添加的原子操作,生成所述唯一锁申请码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述事务的访问数据不位于本计算机集群的情况下,将所述事务的加锁请求发送至访问数据所在的计算机集群,以由所述访问数据所在的计算机集群对所述事务的加锁请求进行处理。
3.根据权利要求1所述的方法,其特征在于,所述根据为所述事务分配的唯一锁申请码判断是否满足锁授权条件,并在满足锁授权条件时为所述事务授予锁的步骤包括:
在所述事务的加锁请求为加独占锁请求的情况下,判断当前所述事务的访问数据所对应的锁计数器中的第一计数值是否等于ticket.maxx、且当前所述事务访问的数据所对应的锁计数器中的第二计数值是否等于ticket.maxs;在第一计数值等于ticket.maxx、且第二计数值等于ticket.maxs的情况下,为所述事务授予独占锁;其中,第一计数值为已处理独占锁的事务数;第二计数值为已处理共享锁的事务数。
4.根据权利要求1所述的方法,其特征在于,所述根据为所述事务分配的唯一锁申请码判断是否满足锁授权条件,并在满足锁授权条件时为所述事务授予锁的步骤包括:
在所述事务的加锁请求为加共享锁请求的情况下,判断当前所述事务的访问数据所对应的锁计数器中的第一计数值是否等于ticket.maxx;在第一计数值等于ticket.maxx的情况下,为所述事务授予共享锁;其中,第一计数值为已处理独占锁的事务数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述事务执行完毕后,释放所述事务的锁、并更新所述事务的访问数据所对应的锁计数器中的第一计数值或第二计数值;和/或,
在所述事务执行过程中,将所述事务执行时间与预设阈值进行比较,并且在根据比较结果确认出现死锁的情况下,释放该事务的访问对象上的所有锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于赵志强,未经赵志强许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910707932.2/1.html,转载请声明来源钻瓜专利网。