CN106991008A - 一种资源锁管理方法、相关设备及系统 - Google Patents
一种资源锁管理方法、相关设备及系统 Download PDFInfo
- Publication number
- CN106991008A CN106991008A CN201610037013.5A CN201610037013A CN106991008A CN 106991008 A CN106991008 A CN 106991008A CN 201610037013 A CN201610037013 A CN 201610037013A CN 106991008 A CN106991008 A CN 106991008A
- Authority
- CN
- China
- Prior art keywords
- lock
- target resource
- website
- resource
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
Abstract
本发明实施例公开一种资源锁管理方法、相关设备及系统。所述方法包括:在多站点集群系统中,锁代理节点接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;响应所述锁申请,所述锁代理节点确定出所述锁代理节点当前所处的站点;所述锁代理节点根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;所述锁代理节点向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。本发明方案可减少站点间的通信,提高加锁效率。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种资源锁管理方法、相关设备及系统。
背景技术
分布式锁管理(Distributed Lock Management,DLM)可以为集群系统中的相互操作的进程提供同步访问共享资源的机制。共享资源可以是集群中的任何实体,例如文件、数据结构、磁盘设备、可执行程序等。
集群的分布式锁管理系统主要可包括:锁代理节点和锁管理节点。锁管理节点是共享资源的资源锁的管理者。锁代理节点是锁管理节点的代理,用于接收应用发送的针对共享资源的资源锁申请,并向锁管理节点请求持有所述共享资源的资源锁。
在现有的多站点集群系统的分布式锁管理技术中,所述集群系统的全部共享资源的锁由所述集群系统的全部站点所包含的锁管理节点共同管理。当接收到应用发送的针对某共享资源的锁申请时,锁代理节点需要在整个所述集群系统中查找该共享资源的锁管理节点,并向该共享资源的锁管理节点请求持有该共享资源的资源锁。
实际应用中,所述锁管理节点与所述锁代理节点很可能分布在不同的站点中,例如,站点A中的锁代理节点接收到应用层提交的针对共享资源B的资源锁申请,而管理共享资源B的资源锁的锁管理节点处于站点C中。这样会导致大量的站点间通信,降低了加锁效率。尤其在高并发业务场景下,时延和可靠性都会受集群间的链路带宽限制,处理性能会有所下降。
发明内容
本发明实施例提供了一种资源锁管理方法、相关设备及系统,可减少站点间的通信,提高加锁效率。
第一方面,提供了一种资源锁管理方法,包括:在多站点集群系统中,锁代理节点接收到针对目标资源的锁申请,并响应所述锁申请,确定出所述锁代理节点当前所处的站点,之后,所述锁代理节点可以根据所述锁申请中包含的所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;最后,所述锁代理节点可以向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
具体的,所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源。
通过实施第一方面描述的方法,可实现处理所述目标资源的锁申请的锁代理节点与锁管理节点处于同一站点中,将二者之间的通信限制在站点内,可提高加锁操作的效率和可靠性。
本发明实施例中,所述多站点集群系统的各个站点可以各自对应一个用于管理所述多站点集群系统的全部共享资源的哈希表,所述全部共享资源的每一个资源结构在所述哈希表中对应的哈希值用于表征所述资源结构的锁管理节点。
具体实现方式中,所述锁代理节点可以根据所述目标资源的标识信息,计算出所述目标资源对应的哈希值,并在所述当前所处的站点对应的哈希表中,根据所述哈希值定位出所述目标资源的锁管理节点。
本发明实施例中,所述各个站点各自对应的哈希表可以是一致性哈希环。
具体实现方式中,所述锁代理节点可以在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。
具体的,所述锁代理节点在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点,可包括:所述锁代理节点根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置,并在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点,最后将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
第二方面,提供了一种网络设备,所述网络设备包括用于执行第一方面描述的资源锁管理方法的单元。
第三方面,提供了一种服务器,用于执行第一方面描述的资源锁管理方法。所述服务器包括存储器以及与所述存储器耦合的处理器、接收器和发射器,其中:所述接收器用于向外部设备发送数据,所述发射器用于从外部设备接收数据。所述存储器用于存储第一方面描述的资源锁管理方法的实现代码,所述处理器用于执行所述存储器中存储的程序代码,即执行第一方面描述的资源锁管理方法。
第四方面,提供了一种资源锁管理系统,包括:锁代理节点和锁管理节点,其中:
所述锁代理节点用于:接收到针对目标资源的锁申请;响应所述锁申请,确定出所述锁代理节点当前所处的站点;根据所述锁申请中包含的目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁;其中,所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
所述锁管理节点用于响应所述请求,分配所述目标资源的锁给所述锁代理节点。
具体实现中,所述锁代理节点可以是第二方面描述的网络设备,也可以是第三方面描述的服务器。
第五方面,提供了一种计算机可读存储介质,所述可读存储介质上存储有实现第一方面描述的资源锁管理方法的程序代码,该程序代码包含运行第一方面描述的资源锁管理方法的执行指令。
实施本发明实施例,多站点集群系统中的各个站点均均单独用于管理所述集群系统的全部共享资源的锁;当锁代理节点接收到客户端发送的针对目标资源(属于所述全部共享资源)的锁权限申请时,所述锁代理节点会在所述锁代理节点当前所处的站点内查找所述目标资源的锁管理节点,并向查找到的锁管理节点请求持有所述目标资源的锁。上述方案可实现将锁代理节点与锁管理节点之间的通信局限在同一个站点内,大大减少站点间的通信,提高了加锁效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明实施例涉及的双站点集群系统中现有的分布式锁管理的系统架构;
图2是本发明方案在双站点集群系统中的应用示例图;
图3是本发明实施例提供的资源锁管理方法的流程示意图;
图4是多站点集群系统中的共享资源的管理示意图;
图5是利用一致性哈希算法定位出共享资源的锁管理节点的示意图;
图6是本发明实施例提供的一种网络设备的结构示意图;
图7是本发明实施例提供的一种服务器的结构示意图;
图8是本发明实施例提供的一种资源锁管理系统的结构示意图。
具体实施方式
本发明的实施方式部分使用的专业术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
为了便于了解本发明实施例,首先,结合图1说明双站点集群系统的现有的分布式锁管理技术。
参见图1,图1示出了双站点集群系统中现有的分布式锁管理的系统架构。图1所示的双站点集群系统又称为可称为双活集群系统,是指两个站点都处于运行状态,可以同时承担相同业务,提高双活集群系统的整体服务能力和系统资源利用率。并且,该两个站点互为备份,当其中一个站点出现故障时,业务能自动切换到另一个站点,实现业务不中断。
本发明实施例中,站点(site)是指在物理上具有较好的线路连接的能实现较快通信速率的计算机的集合(一般是指一个局域网)。站点之间一般是通过慢速连接来实现信息通信(一般是指广域网)。站点是对网上计算机的实际物理分布的一种客观反映。
如图1所示,该双站点集群系统包括:站点1和站点2,其中,各个站点均包括1个锁代理节点和3个锁管理节点。锁代理节点和锁管理节点分布在双活集群系统中的各个物理节点上,它们可以通过PCIE链路或者以太网专线业务(Ethernet Private Line,EPL)链路等进行通信。
现有技术中,在图1所示的双站点集群系统中,站点1和站点2所包含的全部锁管理节点共同管理双站点集群系统中的共享资源的资源锁。假设,共享资源包括:共享资源A、B、…、K、L,则一个锁管理节点对应管理部分共享资源的锁,如表1所示:
共享资源名称 | 对应的锁管理节点 |
共享资源A、B | 锁管理节点1 |
共享资源C、D | 锁管理节点2 |
共享资源E、F | 锁管理节点3 |
… | … |
… | … |
共享资源K、L | 锁管理节点6 |
表1
具体实现中,如图1所示,站点1的锁管理节点和站点2的锁管理节点可以共同构成一个一致性哈希环。当锁代理节点2接收到客户端发送的针对目标资源,例如共享资源A,的锁申请时,锁代理节点2可以根据一致性哈希算法分析出所述目标资源(即共享资源A)的锁管理节点是:锁管理节点1。之后,锁代理节点2向锁管理节点1发送针对所述目标资源的加锁请求,请求持有所述目标资源的锁。
可以理解的,由于锁代理节点2与锁管理节点1分别处于不同的站点中,因此,所述目标资源的锁申请可能会引发站点1与站点2间的通信,加锁效率较低。
与图1所示的双站点集群系统相同,现有技术中,多站点集群系统的各个站点所包含的全部锁管理节点共同管理多站点集群系统中的共享资源的资源锁。这样会导致大量的站点间通信,尤其在高并发业务场景下的加锁时延和可靠性会受站点间的链路带宽限制,存在风险。
为了解决现有技术的问题,本发明实施例提供了一种资源锁管理方法、相关设备及系统。在所述方法中,多站点集群系统中的各个站点均均单独用于管理所述集群系统的全部共享资源的锁;当锁代理节点接收到客户端发送的针对目标资源(属于所述全部共享资源)的锁权限申请时,所述锁代理节点会在所述锁代理节点当前所处的站点内查找所述目标资源的锁管理节点,并向查找到的锁管理节点请求持有所述目标资源的锁。上述方案可实现处理同一锁申请的锁代理节点和锁管理节点位于同一个站点内,大大减少站点间的通信,提高加锁效率。下面将结合附图进行详细说明。
参见图2,图2是本发明方案在双站点集群系统中的应用示例。
如图2所示,站点1的锁管理节点和站点2的锁管理节点均单独用于管理所述双站点集群系统的全部共享资源的锁。假设,所述全部共享资源包括:共享资源A、B、…、K、L,则站点1的锁管理节点可用于管理所述全部共享资源的锁,如表2所示:
共享资源名称 | 对应的锁管理节点 |
共享资源A、B、C、D | 锁管理节点1 |
共享资源E、F、G、H | 锁管理节点2 |
共享资源I、J、K、L | 锁管理节点3 |
表2
则站点2的锁管理节点可用于管理所述全部共享资源的锁,如表3所示:
共享资源名称 | 对应的锁管理节点 |
共享资源A、B、C、D | 锁管理节点4 |
共享资源E、F、G、H | 锁管理节点5 |
共享资源I、J、K、L | 锁管理节点6 |
表3
需要说明的,表2、表3仅仅是本发明实施例的一种实现方式,实际应用中可以不同,不应构成限定。
本发明实施例中,如图2所示,站点1的锁管理节点和站点2的锁管理节点分别可以构成一致性哈希环。
举例来说,当锁代理节点2接收到客户端发送的针对目标资源,例如共享资源A,的锁申请时,锁代理节点2可以在站点2内,根据一致性哈希算法分析出所述目标资源(即共享资源A)的锁管理节点是:锁管理节点4。之后,锁代理节点2可以向锁管理节点4发送针对所述目标资源的加锁请求,请求持有所述目标资源的锁。
可以理解的,由于锁代理节点2与锁管理节点4处于同一站点(即站点2)中,因此,二者之间的相互通信是属于站点2内的通信,可提高加锁操作的效率和可靠性。
与本发明方案在双站点集群系统中的应用类似,本发明方案在多站点集群系统中的应用:所述多站点集群系统的各个站点的锁管理节点分别用于管理共享资源的资源锁;当代理节点接收到客户端发送的针对目标资源(属于多站点集群系统的全部共享资源)的锁申请时,所述锁代理节点会在所述锁代理节点当前所处的站点内查找所述目标资源的锁管理节点,并向查找到的锁管理节点请求持有所述目标资源的锁。实施本发明方案,上述方案可实现将锁代理节点与锁管理节点之间的通信局限在同一个站点内,大大减少站点间的通信,提高了加锁效率。
参见图3,图3是本发明实施例提供的资源锁管理方法的流程示意图。如图3所示,所述方法包括:
S101,在多站点集群系统中,代理节点接收到针对目标资源的锁申请。具体的,所述锁申请可包含所述目标资源的标识信息。
本发明实施例中,所述多站点集群系统的各个站点的锁管理节点均可单独用于管理所述多站点集群系统的全部共享资源的锁,其中,所述全部共享资源包括所述目标资源。
本发明实施例中,所述目标资源的标识信息可以是所述目标资源的资源名称,也可以是其他能够用于唯一标识所述目标资源的信息,这里不作限制。
S103,响应所述锁申请,所述锁代理节点确定出所述锁代理节点当前所处的站点。
S105,所述锁代理节点根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点。
S107,所述锁代理节点向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
如图4所示,所述全部共享资源可以是一个资源池,其基本单位是资源结构,每一个资源结构的主要信息可包括:资源结构名称(如“TM-1234-0”)、所有者地址、等待者地址和转换者。
本发明实施例中,各个站点可以各自对应一个用于管理所述全部共享资源的哈希表。所述全部共享资源的每一个资源结构在哈希表中对应的哈希值可用于表征该资源结构对应的锁管理节点。例如,资源结构<TM-1234-0>对应的哈希值为:2,则表示资源结构<TM-1234-0>的锁管理节点是:节点2。
具体实现中,在确定出所述锁代理节点当前所处的站点之后,所述锁代理节点可以根据所述目标资源的标识信息,例如资源名称,计算出所述目标资源对应的哈希值,在所述锁代理节点当前所处的站点对应的哈希表中,根据所述哈希值定位出所述目标资源的锁管理节点。
例如,如图4所示,所述目标资源是资源结构<TM-1234-0>,其资源名称是“TM-1234-0”,那么,所述锁代理节点可以计算出资源结构<TM-1234-0>对应的哈希值为:2,然后根据该哈希值确定出资源结构<TM-1234-0>的锁管理节点是:节点2。
为了适应动态的分布式网络结构和便于所述多站点集群系统的共享资源的管理,所述各个站点各自对应的哈希表可以是一致性哈希环。例如,如图2所示的双站点集群系统中,站点1和站点2各自对应一个用于管理所述全部共享资源的一致性哈希环。
具体实现中,所述锁代理节点可以在所述目标站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。具体的,所述锁代理节点可以根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置,然后在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点;最后将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
举例说明,假设所述目标资源是资源结构<TM-1234-0>,其资源名称是“TM-1234-0”,所述锁代理节点当前所处站点对应的一致性哈希环如图5所示。那么,如图5所示,所述锁代理节点可以根据资源名称“TM-1234-0”计算出资源结构<TM-1234-0>对应的哈希值为:2,根据该哈希值确定出资源结构<TM-1234-0>在该哈希环上的位置为:位置a,然后从位置a开始沿顺时针方向寻找,可将遇到的第一个锁管理节点确定为资源结构<TM-1234-0>的锁管理节点。
需要说明的,示例仅仅用于对本发明实施例进行解释,不应构成限定。
本发明实施例中,可以通过以下几种可能的方式确定出所述锁代理节点当前所处的站点:方式一,所述锁代理节点当前所处的站点可以是由锁用户利用客户端选择的;方式二,所述锁代理节点可以利用定位装置获取到所述锁代理节点的地理位置,然后将与该地理位置一致的站点确定为所述锁代理节点当前所处的站点;例如,如果所述锁代理节点的地理位置在纽约,则所述锁代理节点当前所处的站点可以是纽约境内的站点;方式三,所述锁代理节点可以根据所述锁代理节点的网络标识信息分析出所述锁代理节点所处的局域网,进而根据该局域网确定出所述锁代理节点所处的站点。需要说明的,实际应用中,还可以通过其他方式确定出所述锁代理节点所处的站点,这里不作限制。
在具体实施本发明方案时,为了便于管理所述多站点集群系统中的锁操作,可以引入锁管理域(DLM Zone)这一概念,所述各个站点各自对应一个锁管理域,分别用于限定各个站点内的锁操作。所述各个站点各自对应锁管理域包括所述各个站点的锁管理节点。
例如,在图2所示的双站点集群系统中,站点1可以对应锁管理域1,站点2可以对应锁管理域2,其中,锁管理域1包括站点1内的锁管理节点,锁管理域2包括站点2内的锁管理节点。实际应用中,站点1的锁用户可以选择在锁管理域1中申请所述目标资源的锁,站点2的锁用户可以选择在锁管理域2中申请所述目标资源的锁。具体的,如图2所示,各个锁管理域可各自对应一个包含锁管理节点的一致性哈希环。
具体实现中,可以通过以下步骤申请所述目标资源的锁:
步骤一,锁用户可以根据自己所在的站点,利用客户端选择合适的锁管理域,并向该站点内的锁代理节点申请所述目标资源的锁,例如,站点1的锁用户选择在锁管理域1中申请所述目标资源的锁;
步骤二,锁代理节点可以在用户选择的锁管理域内查找所述目标资源的锁管理节点;具体的,锁代理节点可以在该锁管理域对应的一致性哈希上定位出所述目标资源的锁管理节点;
步骤三,锁代理节点向所述目标资源的锁管理节点请求持有所述目标资源的锁。
可以理解的,由于处理所述锁申请的锁管理域已经被锁用户指定,因此,处理所述锁申请的锁代理节点和锁管理节点之间的通信被限制在了同一站点(即锁用户选择的锁管理域对应的站点)内,提高了加锁效率。
本发明方案中,多站点集群系统中的各个站点均均单独用于管理所述集群系统的全部共享资源的锁;当锁代理节点接收到客户端发送的针对目标资源(属于所述全部共享资源)的锁权限申请时,所述锁代理节点会在所述锁代理节点当前所处的站点内查找所述目标资源的锁管理节点,并向查找到的锁管理节点请求持有所述目标资源的锁。上述方案可实现处理同一锁申请的锁代理节点和锁管理节点位于同一个站点内,大大减少站点间的通信,提高加锁效率。
参见图6,图6是本发明实施例提供的网络设备的结构示意图。如图6所示,网络设备60可包括:接收单元601、确定单元603、查找单元605和发送单元607,其中:
接收单元601,用于接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;
确定单元603,用于响应所述锁申请,确定出所述锁代理节点当前所处的站点;
查找单元605,用于根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;
发送单元607,用于向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
本发明实施例中,所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁,其中,所述全部共享资源包括所述目标资源。
本发明实施例中,所述目标资源的标识信息可以是所述目标资源的资源名称,也可以是其他能够用于唯一标识所述目标资源的信息,这里不作限制。
本发明实施例中,各个站点可以各自对应一个用于管理所述全部共享资源的哈希表。所述全部共享资源的每一个资源结构在哈希表中对应的哈希值可用于表征该资源结构对应的锁管理节点。
具体实现中,在确定单元603确定出所述锁代理节点当前所处的站点之后,查找单元605可以根据所述目标资源的标识信息,例如资源名称,定位出所述目标资源的锁管理节点。
具体的,查找单元605可进一步的包括:计算单元和定位单元,其中:
所述计算单元,可用于根据所述目标资源的标识信息,计算出所述目标资源对应的哈希值;
所述定位单元,可用于在所述当前所处的站点对应的哈希表中,根据所述哈希值定位出所述目标资源的锁管理节点。
为了适应动态的分布式网络结构和便于所述多站点集群系统的共享资源的管理,所述各个站点各自对应的哈希表可以是一致性哈希环。
本发明实施例中,所述定位单元可具体用于:在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。
具体的,所述定位单元可具体用于:根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置;在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点;将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
本发明实施例中,确定单元603可以通过以下几种可能的方式确定出所述锁代理节点当前所处的站点:方式一,确定单元603可以接收锁用户利用客户端选择的站点为所述锁代理节点当前所处的站点;方式二,确定单元603可以利用定位装置获取到所述锁代理节点的地理位置,然后将与该地理位置一致的站点确定为所述锁代理节点当前所处的站点;例如,如果所述锁代理节点的地理位置在纽约,则所述锁代理节点当前所处的站点可以是纽约境内的站点;方式三,确定单元603可以根据所述锁代理节点的网络标识信息分析出所述锁代理节点所处的局域网,进而根据该局域网确定出所述锁代理节点所处的站点。需要说明的,实际应用中,确定单元603还可以通过其他方式确定出所述锁代理节点所处的站点,这里不作限制。
需要说明的,网络设备60包括的各个功能单元的实现方式可参考前述方法实施例的内容,这里不再赘述。
为了便于实施本发明方案,本发明实施例提供了一种服务器。所述服务器用于执行图3方法实施例描述的资源锁管理方法。参见图7,服务器70可包括:发射器703、接收器704、存储器702以及与存储器702耦合的处理器701(服务器70中的处理器701的数量可以是一个或多个,图7中以一个处理器为例)。在本发明的一些实施例中,发射器703、接收器704、存储器702和处理器701可通过总线或者其它方式连接,其中,图7中以通过总线连接为例。
其中,发射器703,可用于向其他设备发送数据;接收器704,可用于从其他设备接收数据。具体实现中,发射器703可包括无线发射模块、有线发射模块等器件;接收器704可包括无线接收模块、有线接收模块等器件。存储器702可用于存储程序代码,具体实现中,存储器702可以采用只读存储器(Read Only Memory,ROM),可用于存储前述方法实施例所描述的锁管理方法的实现代码。处理器701,例如CPU,用于调用存储于存储器702中程序代码执行如下步骤:
在多站点集群系统中,利用接收器704接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;
响应所述锁申请,确定出所述锁代理节点当前所处的站点;
根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;
利用发射器703向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
本发明实施例中,所述多站点集群系统的各个站点的锁管理节点均可单独用于管理所述多站点集群系统的全部共享资源的锁,其中,所述全部共享资源包括所述目标资源。
本发明实施例中,所述目标资源的标识信息可以是所述目标资源的资源名称,也可以是其他能够用于唯一标识所述目标资源的信息,这里不作限制。
本发明实施例中,所述全部共享资源可以是一个资源池,其基本单位是资源结构。各个站点可以各自对应一个用于管理所述全部共享资源的哈希表。所述全部共享资源的每一个资源结构在哈希表中对应的哈希值可用于表征该资源结构对应的锁管理节点。例如,资源结构<TM-1234-0>对应的哈希值为:2,则表示资源结构<TM-1234-0>的锁管理节点是:节点2。
具体实现中,在确定出所述锁代理节点当前所处的站点之后,处理器701可以根据所述目标资源的标识信息,例如资源名称,计算出所述目标资源对应的哈希值,在所述锁代理节点当前所处的站点对应的哈希表中,根据所述哈希值定位出所述目标资源的锁管理节点。
为了适应动态的分布式网络结构和便于所述多站点集群系统的共享资源的管理,所述各个站点各自对应的哈希表可以是一致性哈希环。例如,如图2所示的双站点集群系统中,站点1和站点2各自对应一个用于管理所述全部共享资源的一致性哈希环。
具体实现中,处理器701可以在所述目标站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。具体的,处理器701可以根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置,然后在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点;最后将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
本发明实施例中,可以通过以下几种可能的方式确定出所述锁代理节点当前所处的站点:方式一,处理器701可以接收锁用户利用客户端选择的站点为所述锁代理节点当前所处的站点;方式二,处理器701可以利用定位装置获取到所述锁代理节点的地理位置,然后将与该地理位置一致的站点确定为所述锁代理节点当前所处的站点;例如,如果所述锁代理节点的地理位置在纽约,则所述锁代理节点当前所处的站点可以是纽约境内的站点;方式三,处理器701可以根据所述锁代理节点的网络标识信息分析出所述锁代理节点所处的局域网,进而根据该局域网确定出所述锁代理节点所处的站点。需要说明的,实际应用中,处理器701还可以通过其他方式确定出所述锁代理节点所处的站点,这里不作限制。
可理解的,处理器701的具体执行步骤还可参考前述方法实施例部分的内容,此处不再赘述。
另外,本发明实施例还提供了一种资源锁管理系统。参见图8,锁管理系统80可包括:锁代理节点801和锁管理节点802,其中:
锁代理节点801可用于:接收到针对目标资源的锁申请;响应所述锁申请,确定出所述锁代理节点当前所处的站点;根据所述锁申请中包含的目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁;其中,所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
锁管理节点802用于响应所述请求,分配所述目标资源的锁给锁代理节点801。
需要说明的,锁管理系统80可包括多个锁管理节点和多个锁代理节点,所述多个锁管理节点和所述多个锁代理节点可以分布在所述多站点集群系统的不同的站点中。
可以理解的,在本发明方案中,用于处理所述目标资源的锁申请的锁代理节点801和锁管理节点802处于同一站点中,可提高加锁效率。
具体实现中,锁代理节点801的可以是图6所示的网络设备60,也可以是图7所示的服务器70。
具体的,锁代理节点801的功能可具体参考图3方法实施例中内容来实现,这里不再赘述。
综上所述,实施本发明实施例,多站点集群系统中的各个站点均均单独用于管理所述集群系统的全部共享资源的锁;当锁代理节点接收到客户端发送的针对目标资源(属于所述全部共享资源)的锁权限申请时,所述锁代理节点会在所述锁代理节点当前所处的站点内查找所述目标资源的锁管理节点,并向查找到的锁管理节点请求持有所述目标资源的锁。上述方案可实现处理同一锁申请的锁代理节点和锁管理节点位于同一个站点内,大大减少站点间的通信,提高加锁效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
Claims (12)
1.一种资源锁管理方法,其特征在于,包括:
在多站点集群系统中,锁代理节点接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
响应所述锁申请,所述锁代理节点确定出所述锁代理节点当前所处的站点;
所述锁代理节点根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;
所述锁代理节点向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
2.如权利要求1所述的方法,其特征在于,所述多站点集群系统的各个站点各自对应一个用于管理所述多站点集群系统的全部共享资源的哈希表,所述全部共享资源的每一个资源结构在所述哈希表中对应的哈希值用于表征所述资源结构的锁管理节点;
所述锁代理节点根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点,包括:
所述锁代理节点根据所述目标资源的标识信息,计算出所述目标资源对应的哈希值;
在所述当前所处的站点对应的哈希表中,所述锁代理节点根据所述哈希值定位出所述目标资源的锁管理节点。
3.如权利要求2所述的方法,其特征在于,所述各个站点各自对应的哈希表是一致性哈希环。
4.如权利要求3所述的方法,其特征在于,所述在所述当前所处的站点对应的哈希表中,所述锁代理节点根据所述哈希值定位出所述目标资源的锁管理节点,包括:在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。
5.如权利要求4所述的方法,其特征在于,所述在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点,包括:
根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置;
在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点;
将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
6.一种网络设备,其特征在于,包括:
接收单元,用于接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
确定单元,用于响应所述锁申请,确定出所述锁代理节点当前所处的站点;
查找单元,用于根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;
发送单元,用于向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
7.如权利要求6所述的网络设备,其特征在于,所述多站点集群系统的各个站点各自对应一个用于管理所述多站点集群系统的全部共享资源的哈希表,所述全部共享资源的每一个资源结构在所述哈希表中对应的哈希值用于表征所述资源结构的锁管理节点;
所述查找单元,包括:计算单元和定位单元,其中:
所述计算单元,用于根据所述目标资源的标识信息,计算出所述目标资源对应的哈希值;
所述定位单元,用于在所述当前所处的站点对应的哈希表中,根据所述哈希值定位出所述目标资源的锁管理节点。
8.如权利要求7所述的网络设备,其特征在于,所述各个站点各自对应的哈希表是一致性哈希环。
9.如权利要求8述的网络设备,其特征在于,所述定位单元,具体用于:在所述当前所处的站点对应的一致性哈希环上,根据所述哈希值和一致性哈希算法定位出所述目标资源对应的锁管理节点。
10.如权利要求9所述的网络设备,其特征在于,所述定位单元,具体用于:
根据所述哈希值确定出所述目标资源映射在所述哈希环上的位置;
在所述哈希环上,从所述位置沿顺时针方向寻找第一个锁管理节点;
将找到的所述第一个锁管理节点确定为所述目标资源的锁管理节点。
11.一种服务器,其特征在于,包括:存储器以及与所述存储器耦合的处理器、发射器和接收器,其中:所述处理器读取所述存储器中存储的指令,用于执行以下步骤:
在多站点集群系统中,利用所述接收器接收到针对目标资源的锁申请;所述锁申请包含所述目标资源的标识信息;所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
响应所述锁申请,确定出所述锁代理节点当前所处的站点;
根据所述目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;
利用所述发射器向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁。
12.一种资源锁管理系统,其特征在于,包括:锁代理节点和锁管理节点,其中:
所述锁代理节点用于:接收到针对目标资源的锁申请;响应所述锁申请,确定出所述锁代理节点当前所处的站点;根据所述锁申请中包含的目标资源的标识信息,在所述当前所处的站点内查找出所述目标资源的锁管理节点;向所述目标资源的锁管理节点发送请求,请求持有所述目标资源上的锁;其中,所述多站点集群系统的各个站点的锁管理节点均单独用于管理所述多站点集群系统的全部共享资源的锁;所述全部共享资源包括所述目标资源;
所述锁管理节点用于响应所述请求,分配所述目标资源的锁给所述锁代理节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610037013.5A CN106991008B (zh) | 2016-01-20 | 2016-01-20 | 一种资源锁管理方法、相关设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610037013.5A CN106991008B (zh) | 2016-01-20 | 2016-01-20 | 一种资源锁管理方法、相关设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106991008A true CN106991008A (zh) | 2017-07-28 |
CN106991008B CN106991008B (zh) | 2020-12-18 |
Family
ID=59414534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610037013.5A Active CN106991008B (zh) | 2016-01-20 | 2016-01-20 | 一种资源锁管理方法、相关设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106991008B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896249A (zh) * | 2017-11-16 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 跨网络区域数据访问方法、装置、设备及存储介质 |
CN108683692A (zh) * | 2018-03-16 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
CN109743366A (zh) * | 2018-12-21 | 2019-05-10 | 苏宁易购集团股份有限公司 | 一种用于多活场景的资源加锁方法、装置及系统 |
CN112148695A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
CN112306651A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
CN112416951A (zh) * | 2019-08-21 | 2021-02-26 | 北京京东乾石科技有限公司 | 数据传递方法及其装置、计算机可存储介质 |
CN113708937A (zh) * | 2021-10-28 | 2021-11-26 | 湖南天河国云科技有限公司 | 区块链交易的处理方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群系统中共享资源锁分配方法与计算机及集群系统 |
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN101650646A (zh) * | 2009-09-22 | 2010-02-17 | 杭州华三通信技术有限公司 | 一种共享数据一致性的实现方法及装置 |
CN101702176A (zh) * | 2009-11-25 | 2010-05-05 | 南开大学 | 一种基于局部路径锁的xml数据并发控制方法 |
CN101960427A (zh) * | 2007-12-26 | 2011-01-26 | 斯曼泰克公司 | 分布式资源管理的平衡一致性散列 |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储系统及分布式锁管理方法 |
CN104702655A (zh) * | 2014-03-21 | 2015-06-10 | 杭州海康威视系统技术有限公司 | 云存储资源分配方法及其系统 |
-
2016
- 2016-01-20 CN CN201610037013.5A patent/CN106991008B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群系统中共享资源锁分配方法与计算机及集群系统 |
CN101960427A (zh) * | 2007-12-26 | 2011-01-26 | 斯曼泰克公司 | 分布式资源管理的平衡一致性散列 |
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN101650646A (zh) * | 2009-09-22 | 2010-02-17 | 杭州华三通信技术有限公司 | 一种共享数据一致性的实现方法及装置 |
CN101702176A (zh) * | 2009-11-25 | 2010-05-05 | 南开大学 | 一种基于局部路径锁的xml数据并发控制方法 |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储系统及分布式锁管理方法 |
CN104702655A (zh) * | 2014-03-21 | 2015-06-10 | 杭州海康威视系统技术有限公司 | 云存储资源分配方法及其系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896249A (zh) * | 2017-11-16 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 跨网络区域数据访问方法、装置、设备及存储介质 |
CN107896249B (zh) * | 2017-11-16 | 2020-08-04 | 中国平安人寿保险股份有限公司 | 跨网络区域数据访问方法、装置、设备及存储介质 |
CN108683692A (zh) * | 2018-03-16 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
CN108683692B (zh) * | 2018-03-16 | 2021-05-11 | 创新先进技术有限公司 | 一种业务请求处理方法及装置 |
CN109743366A (zh) * | 2018-12-21 | 2019-05-10 | 苏宁易购集团股份有限公司 | 一种用于多活场景的资源加锁方法、装置及系统 |
CN112148695A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
CN112306651A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
CN112416951A (zh) * | 2019-08-21 | 2021-02-26 | 北京京东乾石科技有限公司 | 数据传递方法及其装置、计算机可存储介质 |
CN112416951B (zh) * | 2019-08-21 | 2024-03-01 | 北京京东乾石科技有限公司 | 数据传递方法及其装置、计算机可存储介质 |
CN113708937A (zh) * | 2021-10-28 | 2021-11-26 | 湖南天河国云科技有限公司 | 区块链交易的处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106991008B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991008A (zh) | 一种资源锁管理方法、相关设备及系统 | |
CN106533935B (zh) | 一种在云计算系统中获取业务链信息的方法和装置 | |
US9298732B2 (en) | Searching cloud-based distributed storage resources using a set of expendable probes | |
ES2553428T3 (es) | Método, dispositivo y sistema de procesamiento de contenidos | |
US20220200898A1 (en) | Compute-aware routing method and apparatus | |
CN103347068B (zh) | 一种基于代理集群网络缓存加速方法 | |
CN108650182A (zh) | 网络通信方法、系统、装置、设备及存储介质 | |
US10176343B2 (en) | Internet protocol network mapper | |
CN106302630A (zh) | 传送私有数据和数据对象 | |
CN107656695A (zh) | 一种数据存储、删除方法、装置及分布式存储系统 | |
CN108596627A (zh) | 一种基于区块链和雾计算的大数据计算方法及系统 | |
CN108293023A (zh) | 支持信息为中心的网络中的上下文感知的内容请求的系统和方法 | |
CN105656964B (zh) | 数据推送的实现方法及装置 | |
CN109376172A (zh) | 基于区块链的数据获取方法和系统 | |
CN112119620A (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
CN106487768A (zh) | 一种文件共享方法及装置 | |
CN104144223B (zh) | 一种数据获取方法及装置 | |
CN108847952A (zh) | 请求链路上下文的处理方法、装置及系统 | |
CN108563697A (zh) | 一种数据处理方法、装置和存储介质 | |
CN106874371A (zh) | 一种数据处理方法及装置 | |
US8213871B1 (en) | Data management tool | |
CN110266766A (zh) | 一种抗攻击分布式网络节点的构建方法、系统及终端设备 | |
CN108228197A (zh) | 一种在集群中安装软件的方法和装置 | |
Chand | A comparative survey on different caching mechanisms in named data networking (NDN) architecture | |
CN108156194A (zh) | 一种表单数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |