[发明专利]一种基于Etcd的分布锁实现方法、系统及设备有效
申请号: | 201911416714.X | 申请日: | 2019-12-31 |
公开(公告)号: | CN111241042B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 方浩 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/176 | 分类号: | G06F16/176;G06F16/182 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 李舜江 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 etcd 分布 实现 方法 系统 设备 | ||
本发明提出的一种基于Etcd的分布锁实现方法、系统及设备,根据DLM锁语义及锁兼容性设计,使用字符串来代替相应的锁资源。通过在Etcd中设计锁管理初始化、锁资源竞争处理、无锁竞争加锁处理及已存在锁的加锁处理的完整锁方案,为Etcd锁方案提供了丰富的锁语义,更方便Etcd管理数据存储;同时在用户态可以开放DLM完整的锁语义接口,不必在内核态调用DLM实现,方案更加简单有效,复杂度低。本发明可以利用到集群管理、存储资源管理、分布式锁管理等多种场景,在云计算及存储方向有极大收益。
技术领域
本发明涉及计算机技术领域,更具体的说是涉及一种基于Etcd的分布锁实现方法、系统及设备。
背景技术
Etcd(一种分布式高可用键值数据库)是CoreOS团队于2013年6月发起的开源项目,该项目主要为实现一个高可用的分布式键值(key-value)数据库。Etcd核心是基于raft协议作为一致性算法,在容器调度,集群管理及服务发现等场景下有较广的应用。
DLM(分布式锁管理器)是VMS操作系统提供,首次出现于1982年VMS版本3中,在2006年Linux2.6.12内核中正式集成了与VMS DLM接口几乎一致的DLM。DLM锁一般需要基于一个集群管理服务如Corosync搭配使用。DLM可以为整个集群中提供一个统一的、共享的锁资源管理机制。在每个运行DLM锁服务器节点运行一个锁管理管理进程,进程间相互通信,维护一个集群范围内的锁资源管理。DLM锁具有丰富的锁工作模式,定义了6种锁语义分别为NL、CR、CW、PR、PW和EX,用以管理共享资源。
Etcd目前作为一个新兴的键值数据库管理开源组件目前在锁管理机制极为欠缺,仅能提供锁租约,通过定时更新锁租约来达到资源锁管理,锁的模式仅支持独占(EX)锁。在Linux版本中实现的DLM本身依赖于集群系统同步相关锁资源信息,同时在内核中实现,具有极为复杂的逻辑控制。如何基于Etcd的成熟的集群管理及键值数据库功能,根据DLM锁语义设计,利用相关技术丰富其锁管理机制,满足不同的资源管理需求,是我们亟待解决的问题。
发明内容
针对以上问题,本发明的目的在于提供一种基于分布式高可用键值数据库的分布锁实现方法及系统,能够利用到集群管理、存储资源管理、分布式锁管理等多种场景,在云计算及存储方向有极大收益。
本发明为实现上述目的,通过以下技术方案实现:一种基于Etcd的分布锁实现方法,包括:
对锁资源进行管理初始化;
当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理;
当预设锁资源目录下不存在锁资源时,进行无锁资源竞争管理;
对已经存在锁资源进行管理。
进一步,所述对锁资源进行管理初始化包括如下步骤:
S11:在Etcd创建完成后,创建以lock为名称的key和对应的类似目录,在lock的下一层级创建子key,类似目录下创建新目录以及相应的锁资源;
S12:当Etcd创建某个key时,默认在lock下一级创建一个key。
进一步,所述当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理包括如下步骤:
S21:以主机名称及进程ID号做为资源竞争者标识;
S22:资源竞争者对同一个key加锁时,首先向Etcd的master节点发送请求,master节点对所有的竞争者使用Hash算法,通过取Hash后的最小值获得锁资源;
S23:通过Etcd master节点将host_name:pid:lock信息写入到lock目录下对应的同名key的value中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911416714.X/2.html,转载请声明来源钻瓜专利网。