[发明专利]一种分布式锁服务方法、获取方法及相应装置有效
| 申请号: | 201510783915.9 | 申请日: | 2015-11-16 |
| 公开(公告)号: | CN106708608B | 公开(公告)日: | 2020-08-11 |
| 发明(设计)人: | 任奕琳;张卓;陶阳宇;李超;陆一峰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/46 |
| 代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 服务 方法 获取 相应 装置 | ||
1.一种分布式锁服务方法,其特征在于,所述方法包括:
分布式系统中待获取分布式锁的节点进程或当前已持有分布式锁的节点进程,实时接收包含与本节点进程待获取的或已持有的所述分布式锁相对应的最新锁版本的数据;所述锁版本的高低用于标识各所述节点进程向同一个分布式锁发起获取请求的优先级的高低;
根据所述节点进程实时接收的包含所述最新锁版本的数据,以及预先生成的所述节点进程的专有锁版本,所述节点进程判断所述最新锁版本是否高于所述专有锁版本;
所述节点进程根据本节点进程当前对所述分布式锁的获取状态,以及所述是否高于的判断结果,进行释放、获取或等待所述分布式锁的相应处理。
2.根据权利要求1所述的分布式锁服务方法,其特征在于,所述的所述节点进程根据本节点进程当前对所述分布式锁的获取状态,以及所述是否高于的判断结果,进行释放、获取或等待所述分布式锁的相应处理,具体包括:
若所述节点进程当前对所述分布式锁的获取状态为已持有所述分布式锁,则执行以下步骤:
若所述是否高于的判断结果为是,则所述节点进程释放其持有的所述分布式锁,
若所述是否高于的判断结果为否,则所述节点进程继续持有所述分布式锁,并以所述节点进程的所述专有锁版本为依据更新所述最新锁版本数据;
若所述节点进程当前对所述分布式锁的获取状态为待获取所述分布式锁,则执行以下步骤:
若所述是否高于的判断结果为是,则所述节点进程在等锁队列中等待,
若所述是否高于的判断结果为否,则所述节点进程进行获取所述分布式锁的相应处理,并以所述节点进程的所述专有锁版本为依据更新所述最新锁版本数据。
3.根据权利要求2所述的分布式锁服务方法,其特征在于,在所述的所述节点进程根据本节点进程当前对所述分布式锁的获取状态,以及所述是否高于的判断结果,进行释放、获取或等待所述分布式锁的相应处理的具体步骤中,对于其中的所述若所述是否高于的判断结果为否,则所述节点进程继续持有所述分布式锁,并以所述节点进程的所述专有锁版本为依据更新所述最新锁版本数据来说,若所述节点进程持有所述分布式锁,且继续持有所述分布式锁直至所述节点进程完成该节点进程被分配的所有服务后,包括:
所述分布式系统删除与所述分布式锁相对应的所述最新锁版本数据。
4.根据权利要求2所述的分布式锁服务方法,其特征在于,所述预先生成的所述节点进程的专有锁版本,具体包括:
分布式系统在生成所述节点进程的同时,根据所述节点进程待提供的服务所需资源对应的分布式锁的全局状态变量,生成所述节点进程专有的用于标识各节点进程向同一个分布式锁发起获取请求的优先级的锁版本;所述全局状态变量用于记录所述分布式锁的最新锁版本的值;和/或,
分布式系统在已持有分布式锁的所述节点进程重启时,保留所述节点进程重启前所专有的用于标识各节点进程向同一个分布式锁发起获取请求的优先级的锁版本。
5.根据权利要求4所述的分布式锁服务方法,其特征在于,所述分布式系统在生成所述节点进程的同时,根据所述节点进程待提供的服务所需资源对应的分布式锁的全局状态变量,生成所述节点进程专有的用于标识各节点进程向同一个分布式锁发起获取请求的优先级的锁版本,包括:
分布式系统在生成所述节点进程的同时,或在已持有分布式锁的所述节点进程重启的同时,读取所述节点进程待提供的服务所需资源对应的分布式锁的全局状态变量;
判断所述分布式锁的全局状态变量是否存在;
若所述全局状态变量不存在,则生成和初始化所述全局状态变量,并进入下一步,若所述全局状态变量存在,则将所述全局状态变量的值自增1,并进入下一步;
以所述全局状态变量的值为锁版本的值,生成所述节点进程专有的用于标识各节点进程向同一个分布式锁发起获取请求的优先级的锁版本。
6.根据权利要求5所述的分布式锁服务方法,其特征在于,所述生成和初始化所述全局状态变量,具体包括:
生成所述全局状态变量;
以所述分布式系统的当前时间戳作为初始值,初始化所述全局状态变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510783915.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:缓存数据的管理方法及装置
- 下一篇:站内搜索词的显示方法及装置





