CN103716383A - 一种访问共享资源的方法及装置 - Google Patents
一种访问共享资源的方法及装置 Download PDFInfo
- Publication number
- CN103716383A CN103716383A CN201310689369.3A CN201310689369A CN103716383A CN 103716383 A CN103716383 A CN 103716383A CN 201310689369 A CN201310689369 A CN 201310689369A CN 103716383 A CN103716383 A CN 103716383A
- Authority
- CN
- China
- Prior art keywords
- lock
- node
- sign
- shared resource
- client
- 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
Images
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据通信技术领域,公开了一种访问共享资源的方法及装置,本发明实施例描述的方案中,第一节点在接收到第一节点的客户端发送的所述锁权限请求后,在第一节点中未查找到包括所述共享资源的标识的锁标识时才进行转发,也就是说,要先在第一节点中查找是否包括所述共享资源的标识的锁标识,只有在不存在时,才进行转发,而存在时,直接分配就行,而客户端从第一节点中获取锁标识要比去其他节点获取锁标识耗费的时间少,因此,解决了目前的访问共享资源的方法存在的耗时较长的问题。
Description
技术领域
本发明涉及数据通信技术领域,特别涉及一种访问共享资源的方法及装置。
背景技术
随着存储技术的发展,各种数据信息呈***式的增长,人们正在寻找一种强大的数据中心架构。双活数据中心就是其中一种重要的解决方案,通过双活技术,可以在多个跨地域的数据中心(存储设备)之间实现业务容灾和负载分担,进而整合存储设备的存储资源,如图1A所示。
存储阵列为存储设备的存储载体,在双活数据中心的解决方案中,存储阵列为主机应用提供虚拟化的共享资源。在***运行时,数据会被同时写入到两个存储设备的存储阵列中,当其中一个存储设备发生故障时,另一个存储设备仍可以对外提供服务,进而实现数据容灾。为了实现存储资源的虚拟化整合和数据容灾,两个存储设备间需要提供一种互斥机制,防止共享资源的并发访问(每个存储设备包括多个节点,每个节点包括多个客户端,如图1B所示,其中,客户端是指节点访问共享资源的进程),因为如果多个客户端同时访问和操作数据,就有可能发生各客户端之间相互覆盖共享资源的情况,造成被访问的共享资源处于不一致的状态。
在集群***中,锁管理器是一种常用的节点间互斥保护机制,它使得某一共享资源每一次只能被一个客户端访问,通过锁管理器实现共享资源访问的过程如下(如图1C所示):
假设存储设备1中具有三个节点:节点1、节点2、节点3
步骤a:为共享资源A分配一个锁管理器;
步骤b:节点2需要访问共享资源A时,向锁管理器申请与共享资源A对应的锁权限;
步骤c:节点2在获取与共享资源A对应的锁权限后,访问共享资源A;
步骤d:节点3向锁管理器申请与共享资源A对应的锁权限,由于锁已经被授权,锁管理器会暂缓其它权限冲突的锁请求的授权,只有等冲突的锁持有者释放锁权限后,新的锁请求才会被授权。
通过上述过程可以看出,同一时刻有多个客户端访问某一共享资源时,通过锁管理器达到多个客户端对同一共享资源的有序化访问的目的,保证访问的数据的一致性。但是,目前的锁管理器存在如下缺陷:有些节点与锁管理器节点不是同一个节点时,在获取针对任意一共享资源的锁权限对应的锁标识时,要去其他节点去获取锁权限,存在耗费时间较长的问题。
综上所述,目前的访问共享资源的方法存在耗时较长的问题。
发明内容
本发明实施例提供一种访问共享资源的方法及装置,可以解决目前的访问共享资源的方法存在的耗时较长的问题。
第一方面,提供一种访问共享资源的方法,包括:
接收第一节点转发的携带共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的;
从存储的锁标识中确定出包括所述共享资源的标识的锁标识;
将确定的所述锁标识通过所述第一节点分配至所述客户端,给予所述客户端对所述共享资源的所述锁标识对应的锁权限,用于所述客户端对所述共享资源的访问。
结合第一方面,在第一种可能的实现方式中,所述第一节点用于缓存所述第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收第一节点转发的携带共享资源的标识的锁权限请求,具体包括:
接收所述第一节点通过第二节点转发的携带所述共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第二节点在接收到所述第一节点发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
结合第一方面,或者第一方面的第二至第三种可能的实现方式,在第四种可能的实现方式中,所述将确定的所述锁标识通过所述第一节点分配至所述客户端,具体包括:
将确定的所述锁标识通过所述第二节点发送至所述第一节点,以使得所述第一节点将所述锁标识分配至所述客户端。
结合第一方面,或者第一方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,所述将确定的所述锁标识通过所述第一节点分配至所述客户端,具体包括:
若确定的所述锁标识对应的锁权限被其他客户端占用时,向占用所述锁权限的客户端发送锁权限召回指示,令占用所述锁权限的客户端完成访问所述共享资源后释放所述锁权限;
第二方面,提供一种访问共享资源的装置,包括:
接收单元,用于接收第一节点转发的携带共享资源的标识的锁权限请求;其中,所述锁权限请求是所述第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的;
确定单元,用于从存储的锁标识中确定出包括所述共享资源的标识的锁标识;
分配单元,用于将确定的所述锁标识通过所述第一节点分配至所述客户端,给予所述客户端对所述共享资源的所述锁标识对应的锁权限,用于所述客户端对所述共享资源的访问。
结合第二方面,在第一种可能的实现方式中,所所述接收单元接收到的所述锁权限请求是所述第一节点发送的,所述第一节点用于缓存所述第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元具体用于:
接收所述第一节点通过第二节点转发的携带所述共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第二节点在接收到所述第一节点发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收单元接收到的所述锁权限请求是所述第二节点发送的,所述第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
结合第二方面,或者第二方面的第二至第三种可能的实现方式,在第四种可能的实现方式中,所述分配单元具体用于:
将确定的所述锁标识通过所述第二节点发送至所述第一节点,以使得所述第一节点将所述锁标识分配至所述客户端。
结合第二方面,或者第二方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,所述分配单元具体用于:
若确定的所述锁标识对应的锁权限被其他客户端占用时,向占用所述锁权限的客户端发送锁权限召回指示,令占用所述锁权限的客户端完成访问所述共享资源后释放所述锁权限;
将占用所述锁权限的客户端释放的锁权限对应的锁标识通过所述第一节点分配至所述客户端。
本发明有益效果如下:
现有的技术中,有些节点与锁管理器节点不是同一个节点时,在获取针对任意一共享资源的锁权限对应的锁标识时,要去其他节点去获取锁权限,存在耗费时间较长的问题,而本发明实施例为,先接收第一节点转发的携带共享资源的标识的锁权限请求,其中,所述锁权限请求是所述第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的,然后,从存储的锁标识中确定出包括所述共享资源的标识的锁标识,最后,将确定的所述锁标识通过所述第一节点分配至所述客户端,给予所述客户端对所述共享资源的所述锁标识对应的锁权限,用于所述客户端对所述共享资源的访问,在该方案中,第一节点在接收到第一节点的客户端发送的所述锁权限请求后,在第一节点中未查找到包括所述共享资源的标识的锁标识时才进行转发,也就是说,要先在第一节点中查找是否包括所述共享资源的标识的锁标识,只有在不存在时,才进行转发,而存在时,直接分配就行,而客户端从第一节点中获取锁标识要比去其他节点获取锁标识耗费的时间少,因此,解决了目前的访问共享资源的方法存在的耗时较长的问题。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1A为现有技术中双活数据中心的结构示意图;
图1B为现有技术中节点与客户端的结构示意图;
图1C为现有技术中双活数据中心访问共享资源的示意图;
图2为本发明实施例中访问共享资源的示意图;
图3为本发明实施例中访问共享资源的第一实施例;
图4为本发明实施例中访问共享资源的第二实施例;
图5为本发明实施例中访问共享资源的装置的功能结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
为了解决现有技术中存在的耗时较长的问题,本发明实施例中,要先接收第一节点转发的携带共享资源的标识的锁权限请求,其中,锁权限请求是第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的,然后,从存储的锁标识中确定出包括共享资源的标识的锁标识,最后,将确定的锁标识通过第一节点分配至客户端,给予客户端对共享资源的锁标识对应的锁权限,用于客户端对共享资源的访问,在该方案中,第一节点在接收到第一节点的客户端发送的锁权限请求后,在第一节点中未查找到包括共享资源的标识的锁标识时进行转发的,也就是说,要先在第一节点中查找是否包括共享资源的标识的锁标识,存在时,直接进行分配,只有在不存在时,才进行转发,而客户端从第一节点中获取锁标识要比去其他节点获取锁标识耗费的时间少,因此,解决了目前的访问共享资源的方法存在的耗时较长的问题。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图2所示,本发明实施例中,访问共享资源的详细流程如下:
步骤200:接收第一节点转发的携带共享资源的标识的锁权限请求,其中,锁权限请求是第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的;
步骤210:从存储的锁标识中确定出包括共享资源的标识的锁标识;
步骤220:将确定的锁标识通过第一节点分配至客户端,给予客户端对共享资源的锁标识对应的锁权限,用于客户端对共享资源的访问。
本发明实施例中,锁标识中包括如下信息,保护的共享资源的标识、访问共享资源的方式,在实际应用中,还可以包括除上述两种信息外的其他信息,在此不再进行详述。
本发明实施例中,访问共享资源的方式有多种,如,读共享资源的方式,此时,客户端获取的读取该共享资源的权限,又如,写共享资源的方式,此时,客户端获取的写入该共享资源的权限,其中,若获取的读取共享资源的权限,则客户端只能对该共享资源进行读取操作,不能进行写入操作;若获取的写入共享资源的权限,则客户端不仅能对该共享资源进行读取操作,还能进行写入操作,当然,在实际应用中,还有其他访问共享资源的方式,在此不再进行一一详述。
本发明实施例中,第一节点的形式有多种,例如,可以用于缓存第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识,当然,在实际应用中,第一节点还可以用于缓存其他信息,在此不再进行一一详述。
步骤200-220的执行主体有多种,下面以锁管理器为例进行说明,需要说明的是,锁管理器只是执行主体的一个实施例,在实际应用中,执行主体还可以是其他,在此不再进行一一详述。
在实际应用中,若客户端向其他节点发送访问共享资源的锁权限请求,由于是不同节点间的交互,因此,存在耗时较长的问题,本发明实施例中,为了缩短客户端发送访问共享资源的锁权限请求,或者接收锁标识的所消耗的时间,客户端在发送访问共享资源的锁权限请求时,可以向与客户端所处的第一节点发送访问共享资源的锁权限请求,若第一节点中当前存储了包括待访问的共享资源的标识的锁标识,则该第一节点将对应的锁标识分配至客户端,若该第一节点中当前未存储包括待访问的共享资源的标识的锁标识,则该第一节点将访问共享资源的锁权限请求发送至管理不同节点的访问共享资源的锁权限的锁管理器,再将接收到的锁管理器返回的锁标识分配至客户端,且存储该锁标识,那么第一节点再次接收到客户端发送的访问共享资源的锁权限请求时,若该锁标识未被分配,则将该锁标识分配至客户端,从而避免了获取锁标识的过程中存在的耗时较长的问题。
例如,客户端1所在的节点处于第一存储设备,锁管理器位于第二存储设备,其中,锁管理器管理第一存储设备和第二存储设备访问共享资源的锁权限,则客户端1要获取访问第一共享资源的锁标识,即锁权限时,可以直接向位于第二存储设备的锁管理器发送访问第一共享资源的锁权限请求,此时,由于是两个存储设备之间的通信交互,因此,存在耗时较长的问题,为了缩短客户端1发送访问第一共享资源的锁权限请求,或者,获取访问第一共享资源的锁标识的时间,客户端1可以向客户端1所在的第一节点发送访问第一共享资源的锁权限请求,若第一节点中缓存了访问第一共享资源的锁标识,且该锁标识未被分配,则第一节点将该锁标识发送至客户端1,也就是说,向客户端1分配访问第一共享资源的锁权限;若第一节点中未缓存访问第一共享资源的锁标识,则第一节点将访问第一共享资源的锁权限请求发送至锁管理器,将接收到的锁管理器返回的锁标识发送至客户端,并缓存该锁标识,以便再接收到客户端1或者其他客户端发送的访问第一共享资源的锁权限请求时,若该锁标识未被分配,则将该锁标识发送至客户端。
本发明实施例中,接收第一节点转发的携带共享资源的标识的锁权限请求有多种方式,例如,可以接收第一节点通过第二节点转发的携带共享资源的标识的锁权限请求,其中,锁权限请求是第二节点在接收到第一节点发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的,上述只是接收第一节点转发的携带共享资源的标识的锁权限请求的一种实现方式,在实际应用中,还有其他实现方式,在此不再进行详述。
接收第一节点通过第二节点转发的携带共享资源的标识的锁权限请求的实施例如下:
例如,第一存储设备和第二存储设备共有10个共享资源:共享资源1、共享资源2,......,则每一个共享资源对应一个锁标识,位于第一存储设备的第二节点可以存储10个共享资源分别对应的锁标识,也就是访问10个共享资源的锁权限,若位于第二存储设备的客户端1要访问共享资源1,则客户端1可以直接向位于第一存储设备的第二节点发送访问共享资源1的锁权限请求,从第二节点中获取与共享资源1对应的锁标识;为了提高效率,客户端1也可以先向所处的第一节点发送访问共享资源1的锁权限请求,若第一节点缓存有与共享资源1对应的锁标识,则第一节点将该锁标识发送至客户端1,将锁权限分配至客户端1,若第一节点中未缓存有与共享资源1对应的锁标识,则第一节点向第二节点转发访问共享资源1的锁权限请求,并将接收到的第二节点发送的与共享资源1对应的锁标识发送至客户端1,将锁权限分配至客户端1。
本发明实施例中,第二节点有多种形式,可选的,用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
本发明实施例中,一个存储设备中还可以有多个第二节点,第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识,此时,不同第二节点可以管理不同的共享资源对应的锁标识。
例如,第一存储设备和第二存储设备共有10个共享资源:共享资源1、共享资源2,......,则每一个共享资源对应一个锁标识,位于第一存储设备的第二节点1管理共享资源1-5分别对应的锁标识、位于第一存储设备的第二节点2管理共享资源6-10分别对应的锁标识,位于第二存储设备的锁管理器管理10个共享资源分别对应的锁标识,也就是访问10个共享资源的锁权限,若位于第一存储设备的客户端1要访问共享资源1,则客户端1可以直接向位于第二存储设备的锁管理器发送访问共享资源1的锁权限请求,从锁管理器中获取与共享资源1对应的锁标识;为了提高效率,客户端1可以先向所处的第一节点发送访问共享资源1的锁权限请求,若第一节点缓存有与共享资源1对应的锁标识,则第一节点将该锁标识发送至客户端1,将锁权限分配至客户端1,若第一节点中未缓存有与共享资源1对应的锁标识,则第一节点向第二节点1转发访问共享资源1的锁权限请求,若第二节点1中未查找到包括共享资源的标识的锁标识时,转发至锁管理器,并将接收到的锁管理器发送的与共享资源1对应的锁标识通过第一节点发送至客户端1,将锁权限分配至客户端1。
同理,若位于第一存储设备的客户端2要访问共享资源10,则客户端2可以直接向位于第二存储设备的锁管理器发送访问共享资源10的锁权限请求,从锁管理器中获取与共享资源10对应的锁标识;为了提高访问效率,客户端2也可以先向所处的第三节点发送访问共享资源10的锁权限请求,若第三节点中缓存有与共享资源10对应的锁标识,则第三节点将该锁标识发送至客户端2,将锁权限分配至客户端2,若第三节点中未缓存有与共享资源10对应的锁标识,则第三节点向第二节点2转发访问共享资源10的锁权限请求,若第二节点2中未缓存有与共享资源10对应的锁标识,则第二节点2向锁管理器转发访问共享资源10的锁权限请求,并将接收到的锁管理器发送的与共享资源10对应的锁标识通过第三节点发送至客户端2,将锁权限分配至客户端2。
上述实施例只是列举了一个存储设备只存在两个第二节点的情况,在实际应用中,还可能有一个存储设备存在多个第二节点的情况。若一个存储设备存在多个第二节点,则客户端在发送访问共享资源的锁权限请求时,先将访问共享资源的锁权限请求发送至客户端所在的第一节点,若客户端所在的第一节点中缓存有与待访问的共享资源对应的锁标识,则客户端所在的第一节点将与待访问的共享资源对应的锁标识发送至客户端,若客户端所在的第一节点中未缓存有与待访问的共享资源对应的锁标识,则将访问共享资源的锁权限请求转发至相应的第二节点,若第二节点中缓存有与待访问的共享资源对应的锁标识,则第二节点将与待访问的共享资源对应的锁标识发送至客户端,若第二节点中未缓存有与待访问的共享资源对应的锁标识,则将访问共享资源的锁权限请求转发至锁管理器。
本发明实施例中,接收第一节点转发的携带共享资源的标识的锁权限请求的方式有多种,例如,可以直接通过第一节点接收第一节点转发的携带共享资源的标识的锁权限请求;也可以为,通过第二节点接收接收第一节点转发的携带共享资源的标识的锁权限请求。
那么,同理,将确定的锁标识通过第一节点分配至客户端的方式也有多种,例如,可以为,将确定的锁标识直接通过第一节点分配至客户端;或者,也可以为,将确定的锁标识通过第二节点发送至第一节点,以使得第一节点将锁标识分配至客户端。
本发明实施例中,客户端无论是向直接向锁管理器发送访问共享资源的锁权限请求,还是向第一节点,或者是第二节点发送访问共享资源的锁权限请求,接收该请求的锁管理器或者节点中可能存储有与访问的共享资源对应的锁标识,但是该锁标识被发送至客户端,也就是该锁标识对应的锁权限被占用,此时,确定的锁标识对应的锁权限被其他客户端占用时,向占用锁权限的客户端发送锁权限召回指示,令占用锁权限的客户端完成访问共享资源后释放锁权限;将占用锁权限的客户端释放的锁权限对应的锁标识通过第一节点分配至客户端。
也就是说,将确定的锁标识通过第一节点分配至客户端的方式有多种,例如:若确定的锁标识对应的锁权限被其他客户端占用时,向占用锁权限的客户端发送锁权限召回指示,令占用锁权限的客户端完成访问共享资源后释放锁权限,将占用锁权限的客户端释放的锁权限对应的锁标识通过第一节点分配至客户端。
例如,客户端1向第二节点发送访问共享资源1的锁权限请求,若第二节点中缓存的与共享资源1对应的锁标识被分配至其他节点,也就是说,该锁标识对应的锁权限被分配至客户端2,则向占用锁权限的客户端2发送锁权限召回指示,令占用锁权限的客户端2完成访问共享资源时释放锁权限,然后,第二节点再将占用锁权限的客户端2释放的锁权限对应的锁标识分配至客户端1。
上述实施例,只是以第二节点中缓存的与待访问的共享资源对应的锁标识被分配至其他客户端为例,在实际应用中,也可能是客户端所在的第一节点中,或者,锁管理器中缓存的与待访问的共享资源对应的锁标识被分配至其他客户端,此时,则第一节点或者锁管理器向占用锁权限的客户端发送锁权限召回指示,过程与上述实施例相同,在此不再进行详述。
为了更好地理解本发明实施例,以下给出具体应用场景,针对访问共享资源的过程,作出进一步详细描述:
通过一级锁权限代理节点获取锁标识的实施例。
实施例一(如图3所示):
步骤300:客户端1向所在的第一节点发送访问共享资源1的锁权限请求;
步骤310:第一节点判断第一节点中是否存储有与共享资源1对应的锁标识、且该锁标识未被分配,若是,执行步骤350,否则,执行步骤320;
步骤320:第一节点将访问共享资源1的锁权限请求发送至锁管理器;
其中,锁管理器位于第二存储设备。
步骤330:锁管理器判断第一节点中是否存储有与共享资源1对应的锁标识、且该锁标识未被分配;若是,执行步骤340,否则,执行步骤360;
步骤340:锁管理器将与共享资源1对应的锁标识发送至第一节点;
步骤350:第一节点将与共享资源1对应的锁标识发送至客户端1;
步骤360:锁管理器向占用锁权限的客户端2发送锁权限召回指示,并将占用锁权限的客户端2释放的锁权限对应的锁标识通过第一节点发送至客户端1。
实施例二(如图4所示):
步骤400:客户端1向所在的第一节点发送访问共享资源1的锁权限请求;
步骤410:第一节点判断第一节点中是否存储有与共享资源1对应的锁标识、且该锁标识未被分配,若是,执行步骤480,否则,执行步骤420;
步骤420:第一节点将访问共享资源1的锁权限请求发送至第二节点;
在该步骤中,客户端1与第二节点位于第一存储设备。
步骤430:第二节点判断第一节点中是否存储有与共享资源1对应的锁标识、且该锁标识未被分配,若是,执行步骤470,否则,执行步骤440;
步骤440:第二节点将访问共享资源1的锁权限请求发送至锁管理器;
其中,锁管理器位于第二存储设备。
步骤450:锁管理器判断第一节点中是否存储有与共享资源1对应的锁标识、且该锁标识未被分配;若是,执行步骤460,否则,执行步骤490;
步骤460:锁管理器将与共享资源1对应的锁标识发送至第二节点;
步骤470:第二节点将与共享资源1对应的锁标识发送至第一节点;
步骤480:第一节点将与共享资源1对应的锁标识发送至客户端1;
步骤490:锁管理器向占用锁权限的客户端2发送锁权限召回指示,并将占用锁权限的客户端2释放的锁权限对应的锁标识通过第二节点转发至第一节点,使得第一节点发送至客户端1。
参阅图5所示,本发明实施例还提供一种访问共享资源的装置,该装置包括接收单元500、确定单元510、分配单元520,其中:
接收单元500,用于接收第一节点转发的携带共享资源的标识的锁权限请求;其中,锁权限请求是第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的;
确定单元510,用于从存储的锁标识中确定出包括共享资源的标识的锁标识;
分配单元520,用于将确定的锁标识通过第一节点分配至客户端,给予客户端对共享资源的锁标识对应的锁权限,用于客户端对共享资源的访问。
本发明实施例中,可选的,接收单元500接收到的锁权限请求是第一节点发送的,第一节点用于缓存第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
本发明实施例中,可选的,接收单元500具体用于:
接收第一节点通过第二节点转发的携带共享资源的标识的锁权限请求;
其中,锁权限请求是第二节点在接收到第一节点发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的。
本发明实施例中,可选的,接收单元500接收到的锁权限请求是第二节点发送的,第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
本发明实施例中,可选的,分配单元520具体用于:
将确定的锁标识通过第二节点发送至第一节点,以使得第一节点将锁标识分配至客户端。
本发明实施例中,可选的,分配单元520具体用于:
若确定的锁标识对应的锁权限被其他客户端占用时,向占用锁权限的客户端发送锁权限召回指示,令占用锁权限的客户端完成访问共享资源后释放锁权限;
将占用锁权限的客户端释放的锁权限对应的锁标识通过第一节点分配至客户端。
综上所述,本发明实施例中,先接收第一节点转发的携带共享资源的标识的锁权限请求,其中,锁权限请求是第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括共享资源的标识的锁标识时转发的,然后,从存储的锁标识中确定出包括共享资源的标识的锁标识,最后,将确定的锁标识通过第一节点分配至客户端,给予客户端对共享资源的锁标识对应的锁权限,用于客户端对共享资源的访问,在该方案中,第一节点在接收到第一节点的客户端发送的锁权限请求后,在第一节点中未查找到包括共享资源的标识的锁标识时才进行转发,也就是说,要先在第一节点中查找是否包括共享资源的标识的锁标识,只有在不存在时,才进行转发,而存在时,直接分配就行,而客户端从第一节点中获取锁标识要比去其他节点获取锁标识耗费的时间少,因此,解决了目前的访问共享资源的方法存在的耗时较长的问题。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种访问共享资源的方法,其特征在于,包括:
接收第一节点转发的携带共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的;
从存储的锁标识中确定出包括所述共享资源的标识的锁标识;
将确定的所述锁标识通过所述第一节点分配至所述客户端,给予所述客户端对所述共享资源的所述锁标识对应的锁权限,用于所述客户端对所述共享资源的访问。
2.如权利要求1所述的方法,其特征在于,所述第一节点用于缓存所述第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
3.如权利要求1或2所述的方法,其特征在于,所述接收第一节点转发的携带共享资源的标识的锁权限请求,具体包括:
接收所述第一节点通过第二节点转发的携带所述共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第二节点在接收到所述第一节点发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的。
4.如权利要求3所述的方法,其特征在于,所述第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
5.如权利要求3或4所述的方法,其特征在于,所述将确定的所述锁标识通过所述第一节点分配至所述客户端,具体包括:
将确定的所述锁标识通过所述第二节点发送至所述第一节点,以使得所述第一节点将所述锁标识分配至所述客户端。
6.如权利要求1-5任一项所述的方法,其特征在于,所述将确定的所述锁标识通过所述第一节点分配至所述客户端,具体包括:
若确定的所述锁标识对应的锁权限被其他客户端占用时,向占用所述锁权限的客户端发送锁权限召回指示,令占用所述锁权限的客户端完成访问所述共享资源后释放所述锁权限;
将占用所述锁权限的客户端释放的锁权限对应的锁标识通过所述第一节点分配至所述客户端。
7.一种访问共享资源的装置,其特征在于,包括:
接收单元,用于接收第一节点转发的携带共享资源的标识的锁权限请求;其中,所述锁权限请求是所述第一节点在接收到第一节点的客户端发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的;
确定单元,用于从存储的锁标识中确定出包括所述共享资源的标识的锁标识;
分配单元,用于将确定的所述锁标识通过所述第一节点分配至所述客户端,给予所述客户端对所述共享资源的所述锁标识对应的锁权限,用于所述客户端对所述共享资源的访问。
8.如权利要求7所述的装置,其特征在于,所述接收单元接收到的所述锁权限请求是所述第一节点发送的,所述第一节点用于缓存所述第一节点中的每一个客户端占用的锁权限对应的锁标识,或者占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
9.如权利要求7或8所述的装置,其特征在于,所述接收单元具体用于:
接收所述第一节点通过第二节点转发的携带所述共享资源的标识的锁权限请求;
其中,所述锁权限请求是所述第二节点在接收到所述第一节点发送的、且在第一节点中未查找到包括所述共享资源的标识的锁标识时转发的。
10.如权利要求9所述的装置,其特征在于,所述接收单元接收到的所述锁权限请求是所述第二节点发送的,所述第二节点用于缓存指定的锁权限中被占用的锁权限对应的锁标识,或者,指定的锁权限中占用过的、空闲时间小于删除阈值的锁权限对应的锁标识。
11.如权利要求9或10所述的装置,其特征在于,所述分配单元具体用于:
将确定的所述锁标识通过所述第二节点发送至所述第一节点,以使得所述第一节点将所述锁标识分配至所述客户端。
12.如权利要求7-11任一项所述的装置,其特征在于,所述分配单元具体用于:
若确定的所述锁标识对应的锁权限被其他客户端占用时,向占用所述锁权限的客户端发送锁权限召回指示,令占用所述锁权限的客户端完成访问所述共享资源后释放所述锁权限;
将占用所述锁权限的客户端释放的锁权限对应的锁标识通过所述第一节点分配至所述客户端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689369.3A CN103716383B (zh) | 2013-12-13 | 2013-12-13 | 一种访问共享资源的方法及装置 |
PCT/CN2014/088928 WO2015085826A1 (zh) | 2013-12-13 | 2014-10-20 | 一种访问共享资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689369.3A CN103716383B (zh) | 2013-12-13 | 2013-12-13 | 一种访问共享资源的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716383A true CN103716383A (zh) | 2014-04-09 |
CN103716383B CN103716383B (zh) | 2017-12-15 |
Family
ID=50408953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310689369.3A Active CN103716383B (zh) | 2013-12-13 | 2013-12-13 | 一种访问共享资源的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103716383B (zh) |
WO (1) | WO2015085826A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015085826A1 (zh) * | 2013-12-13 | 2015-06-18 | 华为技术有限公司 | 一种访问共享资源的方法及装置 |
CN106202074A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN107402821A (zh) * | 2017-07-03 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 共享资源的访问控制方法、装置和设备 |
CN108038005A (zh) * | 2017-12-28 | 2018-05-15 | 广东蜂助手网络技术股份有限公司 | 基于zookeeper的共享资源访问方法、客户端、服务端、*** |
CN109063132A (zh) * | 2018-08-02 | 2018-12-21 | 上海达梦数据库有限公司 | 闩锁请求方法、闩锁授权方法、装置及终端设备 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109947575A (zh) * | 2019-03-21 | 2019-06-28 | 恒生电子股份有限公司 | 读写锁的加锁、释放方法及相关*** |
CN110879743A (zh) * | 2019-11-20 | 2020-03-13 | 深圳市网心科技有限公司 | 基于边缘计算环境的任务剔除方法、设备、***及介质 |
CN114500390A (zh) * | 2021-12-29 | 2022-05-13 | 中国航空工业集团公司西安航空计算技术研究所 | RapidIO网络流量控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980236A (zh) * | 2005-12-09 | 2007-06-13 | 英业达股份有限公司 | 分布式数据动态程序代理方法 |
US20100114889A1 (en) * | 2008-10-30 | 2010-05-06 | Netapp, Inc. | Remote volume access and migration via a clustered server namespace |
CN102375955A (zh) * | 2010-08-17 | 2012-03-14 | 伊姆西公司 | 网络文件***联合命名空间内文件加锁的***与方法 |
CN103248667A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 一种分布式***的资源访问方法和*** |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护***和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716383B (zh) * | 2013-12-13 | 2017-12-15 | 华为技术有限公司 | 一种访问共享资源的方法及装置 |
-
2013
- 2013-12-13 CN CN201310689369.3A patent/CN103716383B/zh active Active
-
2014
- 2014-10-20 WO PCT/CN2014/088928 patent/WO2015085826A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980236A (zh) * | 2005-12-09 | 2007-06-13 | 英业达股份有限公司 | 分布式数据动态程序代理方法 |
US20100114889A1 (en) * | 2008-10-30 | 2010-05-06 | Netapp, Inc. | Remote volume access and migration via a clustered server namespace |
CN102375955A (zh) * | 2010-08-17 | 2012-03-14 | 伊姆西公司 | 网络文件***联合命名空间内文件加锁的***与方法 |
CN103248667A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 一种分布式***的资源访问方法和*** |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护***和方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015085826A1 (zh) * | 2013-12-13 | 2015-06-18 | 华为技术有限公司 | 一种访问共享资源的方法及装置 |
CN106202074A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN106202074B (zh) * | 2015-04-29 | 2021-02-23 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN107402821B (zh) * | 2017-07-03 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 共享资源的访问控制方法、装置和设备 |
CN107402821A (zh) * | 2017-07-03 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 共享资源的访问控制方法、装置和设备 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109697127B (zh) * | 2017-10-24 | 2020-12-01 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN108038005A (zh) * | 2017-12-28 | 2018-05-15 | 广东蜂助手网络技术股份有限公司 | 基于zookeeper的共享资源访问方法、客户端、服务端、*** |
CN109063132A (zh) * | 2018-08-02 | 2018-12-21 | 上海达梦数据库有限公司 | 闩锁请求方法、闩锁授权方法、装置及终端设备 |
CN109947575A (zh) * | 2019-03-21 | 2019-06-28 | 恒生电子股份有限公司 | 读写锁的加锁、释放方法及相关*** |
CN110879743A (zh) * | 2019-11-20 | 2020-03-13 | 深圳市网心科技有限公司 | 基于边缘计算环境的任务剔除方法、设备、***及介质 |
CN114500390A (zh) * | 2021-12-29 | 2022-05-13 | 中国航空工业集团公司西安航空计算技术研究所 | RapidIO网络流量控制方法 |
CN114500390B (zh) * | 2021-12-29 | 2024-01-19 | 中国航空工业集团公司西安航空计算技术研究所 | RapidIO网络流量控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103716383B (zh) | 2017-12-15 |
WO2015085826A1 (zh) | 2015-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103716383A (zh) | 一种访问共享资源的方法及装置 | |
US11882011B2 (en) | Distributed workload reassignment following communication failure | |
US9003002B2 (en) | Efficient port management for a distributed network address translation | |
US9875259B2 (en) | Distribution of an object in volatile memory across a multi-node cluster | |
US10235047B2 (en) | Memory management method, apparatus, and system | |
CN111694649A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN110069346B (zh) | 多进程间资源共享方法、装置、电子设备 | |
CN111722933B (zh) | 分布式进程之间的死锁解决 | |
WO2020215752A1 (zh) | 图计算方法及装置 | |
CN112153167A (zh) | 网际互连协议管理方法、装置、电子设备及存储介质 | |
US20180188990A1 (en) | Method, apparatus and system for inserting disk | |
CN106802939A (zh) | 一种解决数据冲突的方法和*** | |
CN111352863A (zh) | 内存管理方法、装置、设备及存储介质 | |
CN112650692A (zh) | 堆内存分配方法、装置及存储介质 | |
CN110706148A (zh) | 人脸图像处理方法、装置、设备和存储介质 | |
WO2017113277A1 (zh) | 数据处理方法、装置和*** | |
US9547590B2 (en) | Managing memory | |
CN111475424B (zh) | 用于管理存储***的方法、设备和计算机可读存储介质 | |
CN104869531B (zh) | 一种群组成员更新方法和装置 | |
CN114253730A (zh) | 管理数据库内存的方法、装置、设备及存储介质 | |
CN114090249A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
US20200301756A1 (en) | Deadlock resolution between distributed processes using process and aggregated information | |
CN112559164A (zh) | 一种资源共享方法及装置 | |
CN109726017B (zh) | 一种应用程序之间共享缓存的方法及装置 | |
US11036563B2 (en) | Deadlock resolution between distributed processes using process and group information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |