CN104702655A - 云存储资源分配方法及其系统 - Google Patents
云存储资源分配方法及其系统 Download PDFInfo
- Publication number
- CN104702655A CN104702655A CN201410108687.0A CN201410108687A CN104702655A CN 104702655 A CN104702655 A CN 104702655A CN 201410108687 A CN201410108687 A CN 201410108687A CN 104702655 A CN104702655 A CN 104702655A
- Authority
- CN
- China
- Prior art keywords
- lock
- client
- node
- shared resource
- identification nodes
- 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
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云存储领域,公开一种云存储资源分配方法及其系统。本发明方法包括步骤:当收到客户端对共享资源的加锁请求时,在同步存储空间中创建共享资源的锁节点和客户端锁标识节点;如果不存在锁节点,则锁节点创建成功,客户端独占使用共享资源;如果已存在锁节点,则创建锁节点失败,创建自己的客户端锁标识节点并对最近创建的其它客户端锁标识节点注册观察;当共享资源解锁时,删除相应的锁节点和客户端锁标识节点,通知对该客户端锁标识节点注册观察的客户端。本发明中,分布式服务节点死机不会导致死锁,解决单点故障问题,可靠性高,锁资源释放时及时通知注册观察的客户端,各客户端无需轮询锁状态,节约系统开销,提高锁资源的分配效率。
Description
技术领域
本发明涉及云存储领域,特别涉及云存储资源分配方法及其系统。
背景技术
单机系统进程间加锁可以采用信号量或者条件变量的方式,操作非常容易。但是集群系统中,多客户端对共享资源的并发访问,普通加锁的方式很难适用于对共享资源的保护。
视频云存储系统采用集群技术解决单点故障,各服务器节点通过负载调度均分客户端服务请求,通过数据处理模块共享数据库资源。其中对于集群管理(主节点的选择/管理节点操作命令的下发)、对于共享数据库资源的保护等,必须使用分布式锁技术加以保护,否则会带来意想不到的结果。
对于锁资源的申请方式:传统的方式为在集群中选取主服务器,所有加锁和解锁申请必须通过主服务器,在主服务器中维护一个锁资源申请的优先队列,所有锁资源的申请由主服务器来判断锁资源的归属。这种方式对主服务器的压力比较大,而且一旦主服务器出现问题,势必会造成单点故障。
对于等待队列中的客户端获取锁的方式,常规的做法有两种:a.客户端处理模式,以一定的时间间隔轮询,当前锁资源是否被占用。这种处理方式,在整个分布式锁的竞争中,大量重复运行,对系统资源的消耗无疑是巨大的。b.服务器端处理模式,客户端申请的锁使用完之后,向主服务器申请释放锁资源,主服务器得到消息后,从锁等待队列中根据一定的优先级决定锁资源的分配,处理流程非常繁琐,且如果释放锁的客户端和主服务器发生通信故障,容易造成死锁。
死锁是由于客户端进程崩溃、或者由于使用者的误操作(只加锁,不解锁),使锁资源一直被占,导致其他客户端一直无法获取锁资源。
发明内容
本发明的目的在于提供一种云存储资源分配方法及其系统,当一个分布式服务节点死机时不会导致死锁,锁的申请和释放不依赖于任何服务节点,解决了单点故障问题,系统可靠性高,通过注册观察机制确保锁资源释放时及时通知给注册观察的客户端,各客户端无需轮询锁状态,节约了系统开销,提高了锁资源的分配效率。
为解决上述技术问题,本发明的实施方式公开了一种云存储资源分配方法,分布式系统的各分布式服务节点中分别设置有同步存储空间,各分布式服务节点通过一致性算法保证各同步存储空间数据的一致性,方法包括以下步骤:
当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点;
如果同步存储空间中不存在该共享资源的锁节点,则该共享资源的锁节点创建成功,允许该客户端独占使用该共享资源;
如果同步存储空间中已存在该共享资源的锁节点,则该共享资源的锁节点创建失败,同步创建该客户端的锁标识节点,并为该客户端对最近创建的其它客户端锁标识节点注册观察;
当该共享资源解锁时,从同步存储空间删除该共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
本发明的实施方式还公开了一种云存储资源分配系统,包括以下模块:
加锁模块,用于当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点;
解锁模块,用于当共享资源解锁时,从同步存储空间删除共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
本发明实施方式与现有技术相比,主要区别及其效果在于:
一个分布式服务节点死机不会导致死锁,锁的申请和释放不依赖于任何服务节点,解决了单点故障问题,系统可靠性高,通过注册观察机制,确保锁资源释放时及时通知给注册观察的客户端,各客户端无需轮询锁状态,节约了系统开销,提高了锁资源的分配效率。
进一步地,本方案加锁流程简单,将目录树结构应用在分布式锁中,以文件夹的方式来标识锁资源的分配情况,只需要在分布式系统中创建文件夹即可,不需要集群中各服务器节点间的多次交互,在确保加锁准确性的前提下,极大地节省系统资源的开销。
进一步地,父目录的观察用于动态维护和更新全局的客户端的锁标识节点计数,客户端锁标识节点的观察用于监控锁资源的释放情况,采用两级观察的模式能够高效监控客户端锁标识节点的变化情况。
进一步地,对于有多个共享资源的情况,通过在目录树结构下设置多级子节点的形式,将共享资源作为一级子节点,使其与作为二级子节点的共享资源的锁节点和客户端锁标识节点一一对应起来,能够有序的管理多个共享资源的分配。
进一步地,同步存储空间由各分布式服务节点的内存实现,能够有效防止某一分布式服务节点死机后对其它分布式服务节点产生影响。
附图说明
图1是本发明第一实施方式中一种云存储资源分配方法的流程示意图;
图2是本发明第一实施方式中一种云存储资源分配方法加锁处理流程图;
图3是本发明第一实施方式中一种云存储资源分配方法解锁处理流程图;
图4是本发明第二实施方式中一种云存储资源分配系统的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求分配的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
术语解释:
分布式文件系统:文件系统管理的物理存储资源通过计算机网络与节点相连。
视频云存储:通过集群应用、网格技术和分布式文件系统等,将网络中大量的存储设备通过应用软件集合起来协同工作,共同对外提供视频数据存储和业务访问功能的系统。
分布式锁:为分布式集群系统中相互独立的进程提供一种并行访问共享资源的机制。
节点:分布式文件系统客户端API在服务器端创建的一个文件(含相关数据)。
临时节点:节点的生命周期跟创建节点的会话(session)的生命周期一致,即session失效临时节点被同步删除。
锁节点:系统中的一个文件夹,标识锁资源的分配情况。
客户端锁标识节点:每一次加锁的申请,都会创建一个客户端锁标识节点,用于锁资源申请的标识和观察的注册。
观察:一种注册回调处理机制,观察的事件发生后,发消息给观察事件的注册者。
Paxos算法:一种基于消息传递的一致性算法,在一个分布系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。
本发明第一实施方式涉及一种云存储资源分配方法,图1是该云存储资源分配方法的流程示意图。
该云存储资源分配方法分布式系统的各分布式服务节点中分别设置有同步存储空间,各分布式服务节点通过一致性算法保证各同步存储空间数据的一致性,具体地说,如图1所示,该云存储资源分配方法包括以下步骤:
在步骤101中,当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点。
如果同步存储空间中不存在共享资源的锁节点,则该共享资源的锁节点创建成功,允许该客户端独占使用该共享资源。
如果同步存储空间中已存在共享资源的锁节点,则该共享资源的锁节点创建失败,同步创建该客户端的锁标识节点,并为该客户端对最近创建的其它客户端锁标识节点注册观察。
观察是一种注册回调处理机制,观察的事件发生后,发消息给观察事件的注册者。
客户端锁标识节点用于标识锁资源的申请,并用于通过对客户端锁标识节点进行注册观察来监控锁资源的释放情况。如果对最近创建的客户端锁标识节点注册观察未成功,则删除所创建的客户端锁标识节点,加锁失败。
此外,可以理解,同步存储空间是指在每个分布式服务节点中分别设置一块私有空间,该私有空间只能被对应的一个分布式服务节点访问,但这些分布式服务节点之间执行某种基于消息传递的一致性算法从而保证各同步存储空间中的数据是一致的。该一致性算法可以做到:如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么它们最后能得到一个一致的状态。基于消息传递的一致性算法是现有技术,如Paxos算法等。
优选地,同步存储空间由各分布式服务节点的内存实现。
同步存储空间由各分布式服务节点的内存实现,能够有效防止某一分布式服务节点死机后对其它分布式服务节点产生影响。
此外,可以理解,在本发明的其它实施方式中,同步存储空间也可以由各分布式服务节点的其它组件实现,而不局限于由内存实现。
优选地,同步存储空间为目录树结构,该目录树结构包含父节点以及连接于该父节点的子节点,共享资源的锁节点和客户端锁标识节点是该目录树结构中的子节点。相应地,在步骤101之前,还包括步骤:
创建锁节点的父节点,并对父节点注册观察,维护并更新一个管理子节点的数据结构。
此外,可以理解,客户端的锁标识节点创建或者删除时,都能够触发对父节点的观察,并自动更新管理子节点的数据结构的计数。
将目录树结构应用在分布式锁中,以文件夹的方式来标识锁资源的分配情况,只需要在分布式系统中创建文件夹即可,不需要集群中各服务器节点间的多次交互,在确保加锁准确性的前提下,极大地节省系统资源的开销。
同时,父目录的观察用于动态维护和更新全局的客户端的锁标识节点计数,客户端锁标识节点的观察用于监控锁资源的释放情况,采用两级观察的模式能够高效监控客户端锁标识节点的变化情况。
优选地,如果共享资源的锁节点创建失败,为客户端对最近创建的其它客户端锁标识节点注册观察的步骤之后,对客户端锁标识节点的观察包括以下步骤:
判断所注册观察的客户端锁标识节点是否被删除;
若该客户端锁标识节点未删除,则继续观察,保持锁等待状态;
若该客户端锁标识节点被删除,判断共享资源的锁节点是否存在;
若锁节点存在,则相应地更新所注册观察的客户端锁标识节点,对被删除的客户端锁标识节点之前的客户端锁标识节点注册观察;
若锁节点不存在,则成功创建共享资源的锁节点,加锁成功。
在上述步骤中,当所注册观察的客户端锁标识节点被删除,而锁节点存在,说明所注册观察的客户端锁标识节点并不是当前拥有锁资源的节点,则需要相应地更新所注册观察的客户端锁标识节点,重新对删除节点之前的节点注册观察,继续等待。这种更新注册观察的机制是通过采用上述两级观察的模式来实现的。
优选地,共享资源存在至少一个,每个共享资源对应一个锁节点和至少一个客户端锁标识节点。
各共享资源为目录树结构的一级子节点。共享资源的锁节点和客户端锁标识节点为目录树结构的二级子节点。
对于有多个共享资源的情况,通过在目录树结构下设置多级子节点的形式,将共享资源作为一级子节点,使其与作为二级子节点的共享资源的锁节点和客户端锁标识节点一一对应起来,能够有序的管理多个共享资源的分配。
在步骤102中,当该共享资源解锁时,从同步存储空间删除该共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
优选地,在共享资源解锁的步骤102之前,还包括步骤:
如果通过心跳检测发现客户端和服务节点的会话失效,则从同步存储空间删除共享资源的锁节点和独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
此外,可以理解,客户端和集群服务器的会话是通过心跳机制来维持的,在一定的时间之内,如果服务器端收不到心跳,则判断为会话超时。
本发明在申请加锁时创建的锁节点和客户端锁标识节点,均为临时节点,节点的生命周期跟会话的生命周期保持一致。会话超时后临时节点被主动删除,自动解锁。
例如,当死锁是由客户端进程崩溃造成时,判定客户端和服务器的会话失效,临时的锁节点和客户端锁标识节点被主动删除,自动解锁。
优选地,在共享资源解锁的步骤102之前,还包括步骤:
如果客户端独占使用共享资源的时间超过锁定时长,则从同步存储空间删除该共享资源的锁节点和该客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
此外,可以理解,当死锁是由客户端未释放锁资源造成超过锁定时长时,云存储组件自动释放分布式锁。
一个分布式服务节点死机不会导致死锁,锁的申请和释放不依赖于任何服务节点,解决了单点故障问题,系统可靠性高,通过注册观察机制,确保锁资源释放时及时通知给注册观察的客户端,各客户端无需轮询锁状态,节约了系统开销,提高了锁资源的分配效率。
作为本实施方式的优选例,加锁处理流程图和解锁处理流程图分别如图2和3所示。以下详细说明加锁处理设计方法、解锁处理设计方法以及死锁处理。
本优选例的分布式锁是一种协调工作的锁,系统只提供加锁以及是否加锁的检测接口,本身不参与锁的协调和控制。这种锁提供给访问资源的用户进行协调的一种手段,所有资源的访问控制由用户自己处理。
视频云存储系统,主要由录像索引服务器和存储服务器组成,分布式锁的应用主要在索引服务器集群中。索引服务器集群的分布式文件系统主要包括以下模块:
节点管理,类似于linux系统的树形目录结构,如“/AAA/bbb”。目录结构对集群中所有服务器可见,数据的强一致性由文件系统底层的Paxos算法保证,客户端无论连接到哪个服务器,展示的数据视图唯一。
会话管理,每个客户端和集群服务器对应的关系,会话通过心跳机制维持。
客户端管理,客户端与服务器会话建立后,将得到一个独一无二的句柄,并且以后所有的操作都通过这一句柄来完成。客户端对外提供的接口类似于普通文件系统层的目录操作,例如createLockNode()、removeLockNode()、existsLockNode()。
createLockNode()用于创建锁节点,removeLockNode()用于删除锁节点、existsLockNode()用于判断是否存在锁节点。
具体的操作示例如下所示:
createLockNode(nodeDataMutex),参数nodeDataMutex为nodeData类型的数据,其中,nodeData的结构包含节点名称、节点拥有者、节点创建时间和锁对象的时间,详细说明见下表1中的描述;
removeLockNode(“/lock_factory/globe_mutex”),参数为节点名称;
existsLockNode(“/lock_factory/globe_mutex”),参数为节点名称。
观察事件管理,记录客户端注册的观察事件,系统维护一个事件到回调函数列表的映射,如果某一个事件发生了,则会通知列表里面记录的注册观察的客户端。
快照管理,将视频云存储系统中的数据结构序列化到磁盘,即保存到磁盘,在服务器端崩溃后恢复时使用。
日志管理,服务器的每个节点进行更新前,视频云存储系统会确认代表更新的事务已经写入硬盘中。每次进行快照的时候,都会开始使用一个新的日志文件。
1)加锁处理设计方法
本方案分布式锁的设计方法,采用两级观察的模式高效监控客户端锁标识节点的变化情况:父目录的观察用于维护和更新一个全局的节点计数;客户端锁标识的观察用于监控客户端锁标识的释放情况。
对于加锁的处理,摒弃常用的排队或者优先级的概念:加锁时,除了客户端锁标识节点外,创建一个锁节点,必须要拥有这个独一无二的锁节点才能获取锁,极大限度的保证分布式系统加锁的准确性。
加锁处理的核心逻辑在于:能够成功创建锁节点(/lock_factory/globe_mutex),否则等待观察通知锁资源的释放;除此之外,每一次锁申请,都会同时创建客户端锁标识节点(/lock_factory/clinet-nodeX)用于观察事件管理模块对注册事件的管理。加锁处理如图2所示,其设计思想如下:
首先,锁节点监控模块对锁节点的父目录(/lock_factory)注册观察,并在内存中维护一个vector<nodeData>NodeManage的数据结构,客户端的锁标识节点创建或者删除时,都会触发父节点的观察,更新内存中NodeManage的计数。其中,nodeData的结构包含节点名称、节点拥有者、节点创建时间和锁对象的时间,如表1所示。其中节点拥有者可以是IP或者主机名,也可以是客户端的编号。
表1
其次,加锁申请时,锁节点管理模块创建锁节点/lock_factory/globe_mutex,若创建成功,则说明当前没有锁存在,之后同步创建客户端的锁标识,比如:/lock_factory/clinet-nodeX,至此加锁成功;若锁节点/lock_factory/globe_mutex存在,则只创建锁客户端标识节点,比如:/lock_factory/clinet-nodeY,并对vector中最后一个客户端锁标识节点NodeManage[N-1]注册观察,进入锁等待状态。(N为子节点个数,即N=NodeManage.size())如果对客户端锁标识节点注册观察失败,则删除创建的客户端锁标识节点,加锁失败。
最后,等待锁资源的各客户端锁标识节点只需等待自己注册观察的客户端锁标识节点的通知即可。若收到所注册观察的客户端锁标识节点删除的通知,则判断锁节点/lock_factory/globe_mutex是否存在,若不存在且能够成功创建该锁节点,则注册观察的节点获取锁;若锁节点存在,说明自己注册观察的客户端锁标识节点并不是当前拥有锁资源的节点,则重新对所删除节点之前的节点注册观察,继续等待(有节点删除时,会触发父节点观察,更新NodeManage计数)。
2)本实施例的解锁过程非常简单,解锁处理流程图如图3所示,解锁分为主动解锁和被动解锁:
主动解锁,首先判断锁的拥有权限,然后删除锁节点/lock_factory/globe_mutex和客户端锁标识节点,比如:/lock_factory/clinet-nodeX。
被动解锁,由客户端崩溃或者锁定时长超时导致的解锁,同样只需要删除锁节点和当前客户端锁标识节点即可。
3)死锁处理
在分布式系统中,锁的处理非常复杂,因为集群环境通信状态通常是不确定的、进程可能随时会崩溃,死锁的情况时常发生。造成死锁的原因主要表现在两个方面:
客户端进程在事务提交阶段崩溃了,锁没有被释放,这样后续的客户端访问就会被阻止,这种情况称之为锁冲突;
加锁和解锁本来应该是成对存在的,由于用户使用不当造成加锁后一直没有解锁,导致后续客户端的访问被阻塞,这种情况称他为锁阻塞。
本实施例的设计方法,可以很好的解决上述两种死锁的情况:
对于客户端进程崩溃造成锁冲突的情况:
客户端和集群服务器的会话通过心跳机制来维持,在一定的时间之内(比如:9s=3s*3),如果服务器端收不到心跳,则判断会话超时。
本方案在申请加锁时创建的锁节点和客户端锁标识节点,均为临时节点,节点的生命周期跟会话的生命周期保持一致,会话超时后临时节点被主动删除,自动解锁。对于当前客户端锁标识节点的删除,如果有其他锁标识节点对其注册了观察,则会收到此删除通知。
对于用户使用不当造成的锁阻塞的情况:
加锁过程中,每个临时节点创建时,节点中均记录锁对象的锁定时长(ltime,从占有锁开始计时)。超过这个锁定时长,即使客户端程序没有释放锁资源,视频云存储组件自动释放,以保障其他锁申请能够正常访问共享资源。
视频云存储系统中锁定时长参数默认配置为500ms,当然,客户端在使用时,也可以参数的形式传递到节点创建的API接口中,或者在对分布式锁的使用比较有把握的情况下不考虑锁定时长的问题。本方案对此都提供灵活的使用接口。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第二实施方式涉及一种云存储资源分配系统。图4是该云存储资源分配系统的结构示意图。
具体地说,如图4所示,该云存储资源分配系统包括以下模块:
加锁模块,用于当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点。
解锁模块,用于当共享资源解锁时,从同步存储空间删除共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
优选地,加锁模块包括以下子模块:
锁标识节点创建模块,用于创建客户端锁标识节点。
第一判断模块,用于判断同步存储空间中是否存在共享资源的锁节点。
锁节点创建模块,用于在第一判断模块判断共享资源的锁节点不存在时,创建锁节点。
子节点注册观察模块,用于在第一判断模块判断共享资源的锁节点存在时或者锁节点创建模块创建锁节点失败时,为客户端对最近创建的其它客户端锁标识节点注册观察。
优选地,同步存储空间为目录树结构,该目录树结构包含父节点以及连接于该父节点的子节点,共享资源的锁节点和客户端锁标识节点是该目录树结构中的子节点。加锁模块还包括子模块:
父节点创建与观察模块,用于在目录树结构中创建锁节点的父节点,并用于对父节点注册观察,维护并更新一个管理子节点的数据结构。
此外,可以理解,客户端的锁标识节点创建或者删除时,都能够触发对父节点的观察,并自动更新管理子节点的数据结构的计数。
父目录的观察用于动态维护和更新全局的客户端的锁标识节点计数,客户端锁标识节点的观察用于监控锁资源的释放情况,采用两级观察的模式能够高效监控客户端锁标识节点的变化情况。
优选地,加锁模块还包括子节点观察模块,用于对所注册观察的客户端锁标识节点进行观察。子节点观察模块包括以下子模块:
第二判断模块,用于判断所注册观察的客户端锁标识节点是否被删除;
若该客户端锁标识节点未删除,则子节点观察模块继续观察,保持锁等待状态;
若该客户端锁标识节点被删除,则由第一判断模块判断共享资源的锁节点是否存在;
若锁节点存在,则由所述子节点注册观察模块为所述客户端相应地更新所注册观察的客户端锁标识节点,对被删除的客户端锁标识节点之前的客户端锁标识节点注册观察;
若锁节点不存在,则由锁节点创建模块创建锁节点,加锁成功。
优选地,解锁模块还包括:
会话失效处理模块,用于通过心跳检测发现客户端和服务节点的会话是否失效,并在会话失效时从同步存储空间删除共享资源的锁节点和独占使用该共享资源的客户端的客户端锁标识节点,并通知对该被删除的客户端锁标识节点注册观察的客户端。
优选地,解锁模块还包括:
超锁定时长处理模块,用于判断客户端独占使用共享资源的时间是否超过锁定时长,并在超过锁定时长时从同步存储空间删除该共享资源的锁节点和该客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
本发明涉及一种视频云存储系统中分布式锁的设计方法,属于分布式文件系统领域。
本发明能够很好的解决前文中提到的缺陷,为云存储系统中相互独立的进程提供资源协调的方法。
分布式锁的申请和释放不依赖于任何服务器节点,无单点故障,提高分布式系统的可靠性。
本方案加锁的流程非常简单,只需要在分布式系统中创建文件夹即可,不需要集群中各服务器节点间的多次交互,在确保加锁准确性的前提下,极大地节省系统资源的开销;
解锁时只需要删除锁节点和客户端锁标识节点即可完成,独特的注册观察(回调函数)机制,能够确保锁释放时,及时通知给等待的客户端,锁资源的分配效率非常高;
对于死锁的处理,针对系统异常和用户误操作导致死锁的情况,给出了两种自动解锁的处理方法。
并且采用两级观察模式:
父目录观察用于维护和更新一个全局的客户端锁标识节点计数;
客户端锁标识节点的观察-监控客户端锁标识的释放情况。
对于死锁采用两种处理方式:
临时节点跟会话(session)生命周期一致,session失效,节点自动删除;
锁节点可以自由设定锁定时长,锁定超时的话,节点自动删除。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (13)
1.一种云存储资源分配方法,其特征在于,分布式系统的各分布式服务节点中分别设置有同步存储空间,各分布式服务节点通过一致性算法保证各同步存储空间数据的一致性,所述方法包括以下步骤:
当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点;
如果所述同步存储空间中不存在该共享资源的锁节点,则该共享资源的锁节点创建成功,允许该客户端独占使用该共享资源;
如果所述同步存储空间中已存在该共享资源的锁节点,则该共享资源的锁节点创建失败,同步创建该客户端的锁标识节点,并为该客户端对最近创建的其它客户端锁标识节点注册观察;
当该共享资源解锁时,从所述同步存储空间删除该共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
2.根据权利要求1所述的云存储资源分配方法,其特征在于,所述同步存储空间为目录树结构,该目录树结构包含父节点以及连接于该父节点的子节点,所述共享资源的锁节点和客户端锁标识节点是该目录树结构中的子节点;
在所述在各分布式服务节点的同步存储空间中创建共享资源的锁节点和客户端的客户端锁标识节点的步骤之前,还包括步骤:
创建锁节点的父节点,并对所述父节点注册观察,维护并更新一个管理子节点的数据结构。
3.根据权利要求2所述的云存储资源分配方法,其特征在于,所述共享资源存在至少一个,每个共享资源对应一个锁节点和至少一个客户端锁标识节点;
各共享资源为所述目录树结构的一级子节点;所述共享资源的锁节点和客户端锁标识节点为所述目录树结构的二级子节点。
4.根据权利要求1所述的云存储资源分配方法,其特征在于,如果所述同步存储空间中已存在共享资源的锁节点,则该共享资源的锁节点创建失败,同步创建该客户端的锁标识节点,并为该客户端对最近创建的其它客户端锁标识节点注册观察的步骤之后,
对所述客户端锁标识节点的观察包括以下步骤:
判断所注册观察的客户端锁标识节点是否被删除;
若该客户端锁标识节点未删除,则继续观察,保持锁等待状态;
若该客户端锁标识节点被删除,判断共享资源的锁节点是否存在;
若锁节点存在,则相应地更新所注册观察的客户端锁标识节点,对被删除的客户端锁标识节点之前的客户端锁标识节点注册观察;
若锁节点不存在,则成功创建共享资源的锁节点,加锁成功。
5.根据权利要求1所述的云存储资源分配方法,其特征在于,在所述共享资源解锁的步骤之前,还包括步骤:
如果通过心跳检测发现客户端和服务节点的会话失效,则从所述同步存储空间删除共享资源的锁节点和独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
6.根据权利要求1所述的云存储资源分配方法,其特征在于,在所述共享资源解锁的步骤之前,还包括步骤:
如果客户端独占使用共享资源的时间超过锁定时长,则从所述同步存储空间删除该共享资源的锁节点和该客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
7.根据权利要求1至6中任一项所述的云存储资源分配方法,其特征在于,所述同步存储空间由各分布式服务节点的内存实现。
8.一种云存储资源分配系统,其特征在于,包括以下模块:
加锁模块,用于当收到来自客户端对共享资源的加锁请求时,在各分布式服务节点的同步存储空间中创建该共享资源的锁节点和该客户端的客户端锁标识节点;
解锁模块,用于当共享资源解锁时,从所述同步存储空间删除所述共享资源的锁节点和解锁前独占使用该共享资源的客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
9.根据权利要求8所述的云存储资源分配系统,其特征在于,所述加锁模块包括以下子模块:
锁标识节点创建模块,用于创建客户端锁标识节点;
第一判断模块,用于判断同步存储空间中是否存在共享资源的锁节点;
锁节点创建模块,用于在第一判断模块判断共享资源的锁节点不存在时,创建锁节点;
子节点注册观察模块,用于在第一判断模块判断共享资源的锁节点存在时或者锁节点创建模块创建锁节点失败时,为所述客户端对最近创建的其它客户端锁标识节点注册观察。
10.根据权利要求9所述的云存储资源分配系统,其特征在于,所述同步存储空间为目录树结构,该目录树结构包含父节点以及连接于该父节点的子节点,所述共享资源的锁节点和客户端锁标识节点是该目录树结构中的子节点;
所述加锁模块还包括子模块:
父节点创建与观察模块,用于在目录树结构中创建锁节点的父节点,并用于对所述父节点注册观察,维护并更新一个管理子节点的数据结构。
11.根据权利要求8所述的云存储资源分配系统,其特征在于,所述加锁模块还包括子节点观察模块,用于对所注册观察的客户端锁标识节点进行观察;
所述子节点观察模块包括以下子模块:
第二判断模块,用于判断所注册观察的客户端锁标识节点是否被删除;
若该客户端锁标识节点未删除,则子节点观察模块继续观察,保持锁等待状态;
若该客户端锁标识节点被删除,则由第一判断模块判断共享资源的锁节点是否存在;
若锁节点存在,则由所述子节点注册观察模块为所述客户端相应地更新所注册观察的客户端锁标识节点,对被删除的客户端锁标识节点之前的客户端锁标识节点注册观察;
若锁节点不存在,则由锁节点创建模块创建锁节点,加锁成功。
12.根据权利要求8所述的云存储资源分配系统,其特征在于,所述解锁模块还包括:
会话失效处理模块,用于通过心跳检测发现客户端和服务节点的会话是否失效,并在会话失效时从所述同步存储空间删除共享资源的锁节点和独占使用该共享资源的客户端的客户端锁标识节点,并通知对该被删除的客户端锁标识节点注册观察的客户端。
13.根据权利要求8所述的云存储资源分配系统,其特征在于,所述解锁模块还包括:
超锁定时长处理模块,用于判断客户端独占使用共享资源的时间是否超过锁定时长,并在超过锁定时长时从所述同步存储空间删除该共享资源的锁节点和该客户端的客户端锁标识节点,通知对该被删除的客户端锁标识节点注册观察的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410108687.0A CN104702655B (zh) | 2014-03-21 | 2014-03-21 | 云存储资源分配方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410108687.0A CN104702655B (zh) | 2014-03-21 | 2014-03-21 | 云存储资源分配方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702655A true CN104702655A (zh) | 2015-06-10 |
CN104702655B CN104702655B (zh) | 2018-04-27 |
Family
ID=53349419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410108687.0A Active CN104702655B (zh) | 2014-03-21 | 2014-03-21 | 云存储资源分配方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702655B (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069008A (zh) * | 2015-07-03 | 2015-11-18 | 曙光信息产业股份有限公司 | 分布式系统的数据处理方法及装置 |
CN105700939A (zh) * | 2016-04-21 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
CN106095580A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 一种针对半虚拟化网卡的数据包高效发送方法 |
CN106293954A (zh) * | 2016-08-08 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式锁的高可用服务管理方法 |
CN106572130A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 用于实现分布式锁管理的方法和设备 |
CN106572101A (zh) * | 2016-10-26 | 2017-04-19 | 努比亚技术有限公司 | 服务器、终端及数据管理方法 |
CN106648903A (zh) * | 2017-01-03 | 2017-05-10 | 北京百度网讯科技有限公司 | 调用分布式文件系统的方法和装置 |
CN106712981A (zh) * | 2015-07-23 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种节点变更通知方法及装置 |
CN106776055A (zh) * | 2017-02-19 | 2017-05-31 | 网宿科技股份有限公司 | 一种分布式锁实现方法和系统 |
CN106775974A (zh) * | 2016-12-07 | 2017-05-31 | 国云科技股份有限公司 | 一种分布式优先级排队锁的实现方法 |
WO2017113261A1 (zh) * | 2015-12-30 | 2017-07-06 | 华为技术有限公司 | 加锁请求的处理方法及服务器 |
CN106991008A (zh) * | 2016-01-20 | 2017-07-28 | 华为技术有限公司 | 一种资源锁管理方法、相关设备及系统 |
CN107402822A (zh) * | 2017-07-06 | 2017-11-28 | 腾讯科技(深圳)有限公司 | 死锁处理方法及装置 |
CN108446337A (zh) * | 2018-02-28 | 2018-08-24 | 新华三云计算技术有限公司 | 一种锁资源控制权限迁移方法以及装置 |
CN109101341A (zh) * | 2017-06-21 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
CN109257396A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式锁调度方法及装置 |
CN109324764A (zh) * | 2018-11-01 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种分布式独占锁的实现方法和装置 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109768957A (zh) * | 2018-11-30 | 2019-05-17 | 视联动力信息技术股份有限公司 | 一种监控数据的处理方法和系统 |
CN110334823A (zh) * | 2019-06-17 | 2019-10-15 | 北京大米科技有限公司 | 预约方法、装置、电子设备及介质 |
CN110580232A (zh) * | 2018-06-08 | 2019-12-17 | 杭州宏杉科技股份有限公司 | 一种锁管理的方法及装置 |
CN110941591A (zh) * | 2019-11-22 | 2020-03-31 | 浪潮电子信息产业股份有限公司 | 一种文件删除方法、装置、设备及可读存储介质 |
WO2020063650A1 (zh) * | 2018-09-27 | 2020-04-02 | 北京白山耘科技有限公司 | 一种分布式数据管理系统及管理方法、计算机存储介质和计算机设备 |
CN111124697A (zh) * | 2020-01-02 | 2020-05-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN111639309A (zh) * | 2020-05-26 | 2020-09-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及存储介质 |
CN111698326A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于确定云服务资源的成本归属的方法和装置 |
CN111897646A (zh) * | 2020-08-13 | 2020-11-06 | 银联商务股份有限公司 | 异步分布式锁实现方法及其装置、存储介质以及电子设备 |
CN112099962A (zh) * | 2020-11-06 | 2020-12-18 | 成都新希望金融信息有限公司 | 分布式锁实现方法、装置和电子设备 |
CN112367373A (zh) * | 2020-10-27 | 2021-02-12 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917504A (zh) * | 2005-08-20 | 2007-02-21 | 中兴通讯股份有限公司 | 一种避免资源数据共享访问导致死锁的加锁方法 |
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群系统中共享资源锁分配方法与计算机及集群系统 |
CN101013381A (zh) * | 2007-01-26 | 2007-08-08 | 华中科技大学 | 基于对象存储系统的分布式锁 |
US8095657B2 (en) * | 2002-07-24 | 2012-01-10 | Oracle America, Inc. | First thread lock management for distributed data systems |
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
-
2014
- 2014-03-21 CN CN201410108687.0A patent/CN104702655B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095657B2 (en) * | 2002-07-24 | 2012-01-10 | Oracle America, Inc. | First thread lock management for distributed data systems |
CN1917504A (zh) * | 2005-08-20 | 2007-02-21 | 中兴通讯股份有限公司 | 一种避免资源数据共享访问导致死锁的加锁方法 |
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群系统中共享资源锁分配方法与计算机及集群系统 |
CN101013381A (zh) * | 2007-01-26 | 2007-08-08 | 华中科技大学 | 基于对象存储系统的分布式锁 |
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
Cited By (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069008A (zh) * | 2015-07-03 | 2015-11-18 | 曙光信息产业股份有限公司 | 分布式系统的数据处理方法及装置 |
CN106712981A (zh) * | 2015-07-23 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种节点变更通知方法及装置 |
CN106712981B (zh) * | 2015-07-23 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 一种节点变更通知方法及装置 |
CN106572130A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 用于实现分布式锁管理的方法和设备 |
CN106572130B (zh) * | 2015-10-09 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 用于实现分布式锁管理的方法和设备 |
AU2015408848B2 (en) * | 2015-12-30 | 2018-10-18 | Huawei Technologies Co., Ltd | Method for processing acquire lock request and server |
US10846185B2 (en) | 2015-12-30 | 2020-11-24 | Huawei Technologies Co., Ltd. | Method for processing acquire lock request and server |
WO2017113261A1 (zh) * | 2015-12-30 | 2017-07-06 | 华为技术有限公司 | 加锁请求的处理方法及服务器 |
CN106991008B (zh) * | 2016-01-20 | 2020-12-18 | 华为技术有限公司 | 一种资源锁管理方法、相关设备及系统 |
CN106991008A (zh) * | 2016-01-20 | 2017-07-28 | 华为技术有限公司 | 一种资源锁管理方法、相关设备及系统 |
CN105700939B (zh) * | 2016-04-21 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
CN105700939A (zh) * | 2016-04-21 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
CN106095580B (zh) * | 2016-06-14 | 2019-04-09 | 上海交通大学 | 一种针对半虚拟化网卡的数据包高效发送方法 |
CN106095580A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 一种针对半虚拟化网卡的数据包高效发送方法 |
CN106293954A (zh) * | 2016-08-08 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式锁的高可用服务管理方法 |
CN106572101A (zh) * | 2016-10-26 | 2017-04-19 | 努比亚技术有限公司 | 服务器、终端及数据管理方法 |
CN106775974B (zh) * | 2016-12-07 | 2019-12-10 | 国云科技股份有限公司 | 一种分布式优先级排队锁的实现方法 |
CN106775974A (zh) * | 2016-12-07 | 2017-05-31 | 国云科技股份有限公司 | 一种分布式优先级排队锁的实现方法 |
CN106648903B (zh) * | 2017-01-03 | 2019-03-26 | 北京百度网讯科技有限公司 | 调用分布式文件系统的方法和装置 |
CN106648903A (zh) * | 2017-01-03 | 2017-05-10 | 北京百度网讯科技有限公司 | 调用分布式文件系统的方法和装置 |
US10579595B2 (en) | 2017-01-03 | 2020-03-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for calling a distributed file system |
CN106776055B (zh) * | 2017-02-19 | 2019-10-25 | 网宿科技股份有限公司 | 一种分布式锁实现方法和系统 |
CN106776055A (zh) * | 2017-02-19 | 2017-05-31 | 网宿科技股份有限公司 | 一种分布式锁实现方法和系统 |
CN109101341A (zh) * | 2017-06-21 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
US11288253B2 (en) | 2017-06-21 | 2022-03-29 | Alibaba Group Holding Limited | Allocation method and device for a distributed lock |
CN109101341B (zh) * | 2017-06-21 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
CN107402822A (zh) * | 2017-07-06 | 2017-11-28 | 腾讯科技(深圳)有限公司 | 死锁处理方法及装置 |
CN109257396A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式锁调度方法及装置 |
CN109257396B (zh) * | 2017-07-12 | 2021-07-09 | 阿里巴巴集团控股有限公司 | 一种分布式锁调度方法及装置 |
CN109697127B (zh) * | 2017-10-24 | 2020-12-01 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN108446337B (zh) * | 2018-02-28 | 2019-09-13 | 新华三云计算技术有限公司 | 一种锁资源控制权限迁移方法以及装置 |
CN108446337A (zh) * | 2018-02-28 | 2018-08-24 | 新华三云计算技术有限公司 | 一种锁资源控制权限迁移方法以及装置 |
CN110580232A (zh) * | 2018-06-08 | 2019-12-17 | 杭州宏杉科技股份有限公司 | 一种锁管理的方法及装置 |
WO2020063650A1 (zh) * | 2018-09-27 | 2020-04-02 | 北京白山耘科技有限公司 | 一种分布式数据管理系统及管理方法、计算机存储介质和计算机设备 |
CN109324764A (zh) * | 2018-11-01 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种分布式独占锁的实现方法和装置 |
CN109768957A (zh) * | 2018-11-30 | 2019-05-17 | 视联动力信息技术股份有限公司 | 一种监控数据的处理方法和系统 |
CN110334823A (zh) * | 2019-06-17 | 2019-10-15 | 北京大米科技有限公司 | 预约方法、装置、电子设备及介质 |
CN110941591A (zh) * | 2019-11-22 | 2020-03-31 | 浪潮电子信息产业股份有限公司 | 一种文件删除方法、装置、设备及可读存储介质 |
CN111124697A (zh) * | 2020-01-02 | 2020-05-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN111124697B (zh) * | 2020-01-02 | 2023-09-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN111639309A (zh) * | 2020-05-26 | 2020-09-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及存储介质 |
CN111639309B (zh) * | 2020-05-26 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及存储介质 |
CN111698326A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 用于确定云服务资源的成本归属的方法和装置 |
CN111698326B (zh) * | 2020-06-12 | 2023-01-31 | 北京百度网讯科技有限公司 | 用于确定云服务资源的成本归属的方法和装置 |
CN111897646A (zh) * | 2020-08-13 | 2020-11-06 | 银联商务股份有限公司 | 异步分布式锁实现方法及其装置、存储介质以及电子设备 |
CN112367373A (zh) * | 2020-10-27 | 2021-02-12 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
CN112367373B (zh) * | 2020-10-27 | 2022-06-24 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
CN112099962A (zh) * | 2020-11-06 | 2020-12-18 | 成都新希望金融信息有限公司 | 分布式锁实现方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104702655B (zh) | 2018-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104702655A (zh) | 云存储资源分配方法及其系统 | |
KR100553920B1 (ko) | 컴퓨터 클러스터 운영 방법 | |
US8271437B2 (en) | Managing locks across distributed computing nodes | |
CN103677967B (zh) | 一种数据库的远程数据服务系统及任务调度方法 | |
CN102932210B (zh) | 一种PaaS云平台的节点监控方法和系统 | |
KR101042908B1 (ko) | 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체 | |
US9389907B2 (en) | System and method for providing a distributed transaction lock in a transactional middleware machine environment | |
CN109753364A (zh) | 一种基于网络的分布式锁的实现方法、设备及介质 | |
US10049022B2 (en) | Systems and methods to retain and reclaim resource locks and client states after server failures | |
CN102831156A (zh) | 一种云计算平台上的分布式事务处理方法 | |
KR20140147812A (ko) | 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들 | |
JP2008517374A (ja) | 直接接続クライアントサーバシステムにおけるオンライン回復のoplogging | |
CN108038005A (zh) | 基于zookeeper的共享资源访问方法、客户端、服务端、系统 | |
KR20140138670A (ko) | 2-단계 커미트 호출들의 엄격한 순서화에 근거하여 트랜잭션 복구를 지원하는 시스템들 및 방법들 | |
CN107832159A (zh) | 管理分布式锁的方法和计算机可读存储介质 | |
US11228486B2 (en) | Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof | |
CN103488526A (zh) | 在分布式系统中锁定业务资源的系统和方法 | |
WO2013048969A1 (en) | System and method for persisting transaction records in a transactional middleware machine environment | |
CN103761260A (zh) | 处理数据库互斥锁的方法和装置以及分布式系统 | |
CN106681861A (zh) | 一种新环境隔离的配置数据管理方法及系统 | |
CN105933379B (zh) | 一种业务处理方法、设备及系统 | |
US20100161572A1 (en) | Concurrency management in cluster computing of business applications | |
CN115220891A (zh) | 一种处理高并发批量任务的方法及相关产品 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
CN109495528A (zh) | 分布式锁所有权调度方法和装置 |
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 |