[发明专利]分布式锁的分配方法及设备有效
| 申请号: | 201710476716.2 | 申请日: | 2017-06-21 |
| 公开(公告)号: | CN109101341B | 公开(公告)日: | 2022-02-22 |
| 发明(设计)人: | 朱云锋;杨皓然;卢毅军 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F11/07 |
| 代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 陈贞健;王路丰 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 分配 方法 设备 | ||
本申请的目的是提供一种分布式锁的分配方法及设备,在确保分布式锁正确性的前提下,每个分布式应用服务进程引入一个全局唯一的服务进程标识,并利用该进程标识直接管理分布式锁所有权,通过由所述服务替换进程,在所述锁文件的生命周期结束前,向所述服务端发送所述分布式锁的所有权的继承请求,所述继承请求包括所述服务替换进程的进程标识,从而支持在服务进程在故障切换场景下服务替换进程零等待地、主动地快速地继承原分布式锁所有权,避免现有技术中存在的不可服务的时间窗口问题,显著提升Failover场景下业务服务的连续性。
技术领域
本申请涉及计算机领域,尤其涉及一种分布式锁的分配方法及设备。
背景技术
大规模云计算场景中,为了保障数据的分布式一致性,数量众多的计算节点往往依赖分布式锁服务来同步各自对某共享资源的访问,或者是协调各计算节点之间的行为动作。目前业界知名的支持分布式锁服务的产品有Google的Chubby,Yahoo的Zookeeper,以及CoreOS的Etcd等等。
分布式锁服务在大规模云计算场景中被广泛使用,分布在不同计算节点上的客户端进程通常依赖分布式锁来访问服务端的共享资源,保证数据分布式一致性。典型的分布式锁服务是基于分布式一致性系统提供的Ephemeral文件(锁文件)操作接口实现的。具体来看,分布式锁的抢锁是基于创建Ephemeral文件操作接口设计的,而分布式锁释放锁则是基于删除Ephemeral文件操作接口实现的。
Quorum是分布式一致性系统服务端Servers集合。每个Quorum Server均维护着分布式一致性系统的内存数据库,以及持久化存储的事务日志与快照数据。分布式一致性系统中的Ephemeral文件有所有权(Owner)概念,这确保了分布式锁的互斥性。Quorum Server端会记录创建Ephemeral文件的Client进程对应的Session信息,其它Client进程尝试创建已存在Ephemeral文件,Quorum Server通过检查该Ephemeral文件归属的Session与尝试创建的Client进程对应的Session不匹配,则告知Client创建文件失败,即争抢分布式锁失败。
Session是分布式一致性系统中Client(客户端)在Server(服务端)注册的全局唯一的会话,依赖Client与Server定期心跳来分别更新在Client以及Server两端生命期。分布式一致性系统中的Ephemeral File(锁文件)还有生命期概念,这确保了分布式锁的最终可用性。Ephemeral File(锁文件)是分布式一致性系统中的临时文件。该类型文件有明确归属Session,仅可被归属Session操作。一旦对应归属Session在Server端过期,该类型文件在Server端会被自动删除。Ephemeral文件生命期,即其归属Session的生命期,依赖Client进程与Quorum Server定期心跳来更新:Client进程在Client端认定的Session超时时间内没有收到任何来自Quorum Server的心跳包回复,则判定Session超时,确认丢锁;然后,Quorum Server在Quorum Server端认定的Session超时时间内没有接收到任何来自Client进程心跳包,则判定Session超时,主动删除锁文件,释放该分布式锁所有权。
当前基于Session实现的分布式锁所有权管理机制,因为Session本身与Client进程与Quorum Server之间建立的连接是耦合的,因此当占据分布式锁所有权的业务服务进程发生Failover时,重新被拉起的Client进程会与Quorum Server建立新的连接,并在该连接上创建新的Session,Client进程即基于该新的Session重新争抢分布式锁所有权。事实上,基于Session实现的分布式锁生命期管理机制,为了确保分布式锁正确性,当Client进程挂掉之后,其占据的分布式锁在Quorum Server端还会继续保留一段时间,这个也就导致了重新拉起的服务进程会在这段时间内无法争抢到分布式锁所有权。从业务角度来看,在Failover场景下,会因此产生一个由于分布式锁一段时间不可用而导致的业务不可服务时间窗口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710476716.2/2.html,转载请声明来源钻瓜专利网。





