一种基于Etcd的分布锁实现方法、系统及设备技术方案

技术编号:24409625 阅读:55 留言:0更新日期:2020-06-06 08:36
本发明专利技术提出的一种基于Etcd的分布锁实现方法、系统及设备,根据DLM锁语义及锁兼容性设计,使用字符串来代替相应的锁资源。通过在Etcd中设计锁管理初始化、锁资源竞争处理、无锁竞争加锁处理及已存在锁的加锁处理的完整锁方案,为Etcd锁方案提供了丰富的锁语义,更方便Etcd管理数据存储;同时在用户态可以开放DLM完整的锁语义接口,不必在内核态调用DLM实现,方案更加简单有效,复杂度低。本发明专利技术可以利用到集群管理、存储资源管理、分布式锁管理等多种场景,在云计算及存储方向有极大收益。

Implementation method, system and equipment of distributed lock based on etcd

【技术实现步骤摘要】
一种基于Etcd的分布锁实现方法、系统及设备
本专利技术涉及计算机
,更具体的说是涉及一种基于Etcd的分布锁实现方法、系统及设备。
技术介绍
Etcd(一种分布式高可用键值数据库)是CoreOS团队于2013年6月发起的开源项目,该项目主要为实现一个高可用的分布式键值(key-value)数据库。Etcd核心是基于raft协议作为一致性算法,在容器调度,集群管理及服务发现等场景下有较广的应用。DLM(分布式锁管理器)是VMS操作系统提供,首次出现于1982年VMS版本3中,在2006年Linux2.6.12内核中正式集成了与VMSDLM接口几乎一致的DLM。DLM锁一般需要基于一个集群管理服务如Corosync搭配使用。DLM可以为整个集群中提供一个统一的、共享的锁资源管理机制。在每个运行DLM锁服务器节点运行一个锁管理管理进程,进程间相互通信,维护一个集群范围内的锁资源管理。DLM锁具有丰富的锁工作模式,定义了6种锁语义分别为NL、CR、CW、PR、PW和EX,用以管理共享资源。Etcd目前作为一个新兴的键值数据库管理本文档来自技高网...

【技术保护点】
1.一种基于Etcd的分布锁实现方法,其特征在于,包括:/n对锁资源进行管理初始化;/n当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理;/n当预设锁资源目录下不存在锁资源时,进行无锁资源竞争管理;/n对已经存在锁资源进行管理。/n

【技术特征摘要】
1.一种基于Etcd的分布锁实现方法,其特征在于,包括:
对锁资源进行管理初始化;
当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理;
当预设锁资源目录下不存在锁资源时,进行无锁资源竞争管理;
对已经存在锁资源进行管理。


2.根据权利要求1所述的基于Etcd的分布锁实现方法,其特征在于,所述对锁资源进行管理初始化包括如下步骤:
S11:在Etcd创建完成后,创建以lock为名称的key和对应的类似目录,在lock的下一层级创建子key,类似目录下创建新目录以及相应的锁资源;
S12:当Etcd创建某个key时,默认在lock下一级创建一个key。


3.根据权利要求1所述的基于Etcd的分布锁实现方法,其特征在于,所述当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理包括如下步骤:
S21:以主机名称及进程ID号做为资源竞争者标识;
S22:资源竞争者对同一个key加锁时,首先向Etcd的master节点发送请求,master节点对所有的竞争者使用Hash算法,通过取Hash后的最小值获得锁资源;
S23:通过Etcdmaster节点将host_name:pid:lock信息写入到lock目录下对应的同名key的value中;
S24:资源竞争者利用Etcd提供的compareandwrite接口,校验lock目录下对应的同名key的value内容,若和需要加锁资源一致,则加锁成功,若不一致,则加锁失败。


4.根据权利要求2所述的基于Etcd的...

【专利技术属性】
技术研发人员:方浩
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1