[发明专利]分布式锁实现方法和设备有效
| 申请号: | 201710117678.1 | 申请日: | 2017-03-01 |
| 公开(公告)号: | CN107145396B | 公开(公告)日: | 2021-03-09 |
| 发明(设计)人: | 安凯歌;吴结生;卢毅军;吴锦波;周文翠;陶云峰;吝倩 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 陈贞健;邵栋 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 实现 方法 设备 | ||
本申请提供了一种分布式锁实现方法及设备,其中,所述方法包括:请求客户锁管理设备进行抢锁创建操作;当所述客户锁管理设备抢锁创建操作成功,利用所持有的分布式锁进行互斥操作,包括:在每次互斥操作之前,判断所述分布式锁是否已过期,若已过期则放弃互斥操作进行相应的丢锁处理,若未过期则进行当次互斥操作,在每次互斥操作之后,判断所述分布式锁是否已过期,若已过期则进行相应的丢锁处理,并撤销当次互斥操作的相关数据。所述的分布式锁实现方法和设备,客户执行设备不依赖事件通知,而是根据分布式锁是否超时判断当前是否丢锁,从而避免了在多核环境下事件通知因CPU限制到导致分布式锁无法正常工作的问题。
技术领域
本申请涉及计算机领域,尤其涉及一种分布式锁实现的技术。
背景技术
分布式锁是分布式系统中控制不同设备之间同步访问共享资源的一种方式。在云计算环境下,分布式锁有着非常广泛的使用场景,其最主要的应用场景是,在分布式系统中,不同设备对一个共享资源进行访问的时候,系统往往需要分布式锁来支持对共享资源访问的互斥性以保证一致性。
同时,应对庞大的数据处理,在云计算环境中,为了提高系统处理效率,异步处理机制被普遍使用。作为云计算中重要组成部分,为保证高效,一致性协调部分,尤其是分布式锁服务广泛使用基于异步回调(callback)的方式实现。在该种机制下,分布式锁实现依赖于回调(callback)机制。即在分布式环境中,当多个客户执行设备需要互斥操作,如更新同一个资源时,每个客户执行设备(Client)都会尝试持有同一把分布式锁,由于分布式锁服务设备(Server)可以保证最多只能有一个客户执行设备拥有这把分布式锁,这样在抢锁过程中一定可以保证资源操作的互斥性。
具体地,客户端(Client)包括客户锁管理设备和客户执行设备,其中,当客户锁管理设备抢锁成功后,会维持与分布式服务设备之间的心跳连接,当心跳连接失效时,客户锁管理设备会等待一个宽限期时间(Grace Period)。而当超过宽限期后,则客户锁管理设备则会向客户执行设备(应用层)发送连接异常事件通知,客户执行设备则做相应丢锁处理。然而,在当今多核计算时代,进程、线程级别的并发在云计算中属于常态,不同功能的执行例程常常在不同的核上被执行。由于多核的存在,如果事件通知线程和接受事件通知的线程在不同的核上被调度,当客户锁管理设备由于所在核的CPU占用率过高导致未能及时通知到客户执行设备,客户执行设备就会误以为其持有锁,并对相应资源进行操作,从而引发锁的正确性问题。
图1(a)和图1(b)示出现有技术中利用分布式锁,多核情况下,客户端A(Client A)和客户端B(Client B)同时对一个资源R进行更新。,则它们需要通过分布式锁来进行协调。起初客户端A的客户锁管理设备A1在t1时刻抢锁成功,客户端A的客户执行设备A2拥有分布式锁,并对资源R进行更新。客户端B的客户锁管理设备B1在t2时刻(其中,t1t2)尝试持有分布式锁,由于分布式锁已经被客户端A持有,所以客户端B加锁失败。在t3时刻客户端A由于CPU利用率(或称负载)过高,导致网络中断,并且客户锁管理设备A1的连接中断事件由于迟迟抢占不到CPU而不能通知到客户执行设备A2的工作线程。在t4时刻(其中,t3t4),分布式锁已被客户锁管理设备B1抢占到,此时客户锁管理设备A2的工作线程却尚未收到丢锁事件通知。于是,此时客户执行设备A2的工作线程和客户执行设备B2的工作线程同时认为自己拥有着分布式锁,都可以对资源R进行更新。此时,互斥性就不能被保证。
因此,在分布式并发环境中,由于网络环境较为复杂,机器资源占用率(如CPU)难以控制,如何保证在这种复杂系统环境下分布式锁的正确性和效率成为一个亟待解决的问题。
发明内容
本申请要解决的技术问题是如何提供一种在多核环境下,分布式锁能够可以正常工作的实现方法及设备。
为解决上述技术问题,根据本申请一方面提供了一种在客户执行设备端的分布式锁实现方法,其中,所述方法包括:
请求客户锁管理设备进行抢锁创建操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710117678.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种系统进程监控方法及计算设备
- 下一篇:一种异常信息获取方法和装置





