CN105426271B - 对分布式存储系统的锁管理的方法和装置 - Google Patents
对分布式存储系统的锁管理的方法和装置 Download PDFInfo
- Publication number
- CN105426271B CN105426271B CN201510977203.0A CN201510977203A CN105426271B CN 105426271 B CN105426271 B CN 105426271B CN 201510977203 A CN201510977203 A CN 201510977203A CN 105426271 B CN105426271 B CN 105426271B
- Authority
- CN
- China
- Prior art keywords
- lock
- cache node
- node
- cache
- message
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种对分布式存储系统的锁管理的方法和装置,该分布式存储系统包括锁服务器和至少两个缓存节点,该方法包括:确定该至少两个缓存节点中的第一缓存节点故障;接收该第二缓存节点发送的第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;根据该第一锁请求消息向该第二缓存节点发送第一锁响应消息。本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,能够在主节点故障时保证数据的一致性,提高可靠性。
Description
技术领域
本发明涉及信息技术领域,并且具体地,涉及对分布式存储系统的锁管理的方法和装置。
背景技术
分布式存储系统采用分布式缓存(Cache)技术实现提高系统性能,尤其是降低系统的时延。分布式缓存系统采用保电内存做为存储介质提供掉电保护能力,同时采用镜像Mirror机制实现缓存节点冗余备份,在缓存主节点处于故障的情况下,备份节点将会升为主节点,并且,备份节点上的备份脏数据可以被访问,脏数据即保存于本地缓存中但并未写入磁盘的数据。另外,缓存节点在读写数据时,必须要先获得分布式锁,才能进行后续操作。
在现有技术中,如果主节点故障并且分布式存储系统存在并发业务时,分布式存储系统的锁服务器采用先到先得的原则,给其他节点分配锁资源。这样存在的问题是,在后申请锁的备份节点不能获取到锁资源,其拥有的备份脏数据无法写入磁盘,也就不能被先获得锁的其他节点所访问,即数据一致性无法保证。
发明内容
本发明提供了一种对分布式存储系统的锁管理的方法和装置,能够在主节点故障时保证数据的一致性。
第一方面,提供了一种对分布式存储系统的锁管理的方法,该分布式存储系统包括锁服务器和至少两个缓存节点,该方法由该锁服务器执行,该方法包括:
确定该至少两个缓存节点中的第一缓存节点故障;
接收该至少两个缓存节点中的第二缓存节点发送的第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
根据该第一指示信息向该第二缓存节点发送第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁,以便于该第二缓存节点根据该锁发送该脏数据给存储器。
本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性。
结合第一方面,在第一种可能的实现方式中,该方法还包括:
在确定该第一缓存节点故障时,启动锁恢复期;
在该锁恢复期内,接收该至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点;
将该第二锁请求消息放入锁请求队列。
这里,锁服务器会接收到其他缓存节点发送的申请锁请求消息,锁服务器依次将其他缓存节点申请锁请求消息的加入队列,等待恢复期结束后才作处理。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在该锁恢复期结束后,处理第三锁请求消息,该第三锁请求消息位于该锁请求队列的队首。
这里,锁服务器处理位于该锁请求队列的队首的该第三锁请求消息时会先判断锁是否空闲,然后基于锁空闲或非空闲这两种情况作进一步的操作。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该处理该第三锁请求消息包括:
在该第二缓存节点占有该锁时,向该第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放该锁;
接收该第二缓存节点发送的第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁;
根据该第一锁释放消息向第四缓存节点发送第二锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第二锁响应消息用于指示该第四缓存节点占有该锁。
在锁被占有时,锁服务器触发锁召回机制,召回锁后将锁分配给处于队首锁请求消息对应的缓存节点。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,在该锁空闲时,向第四缓存节点发送第三锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第三锁响应消息用于指示该第四缓存节点占有该锁。
在上述任一种实现方式中,该第一指示信息为第一操作字,该第二指示信息为第二操作字。这样,锁服务器根据不同的操作字区分出备节点和其他节点的锁请求消息,使得备节点能够优先占有锁。
第二方面,提供了一种对分布式存储系统的锁管理的方法,该分布式存储系统包括锁服务器和至少两个缓存节点,该方法由该至少两个缓存节点中的第二缓存节点执行,该第二缓存节点上缓存有该至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,该方法包括:
确定该第一缓存节点故障;
向该锁服务器发送第一锁请求消息,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
接收该锁服务器发送的第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁。
根据该锁发送该脏数据给存储器。
本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性。
这里的脏数据即第一缓存节点在第二缓存节点备份的未写入存储器的脏数据,第二缓存节点占有锁后即可将主节点在备节点上备份的脏数据写入存储器。
结合第二方面,在第一种可能的实现方式中,该方法还包括:
接收该锁服务器发送的第一锁召回消息,该第一锁召回消息用于该锁服务器指示该第二缓存节点释放该锁;
根据该第一锁召回消息释放该锁;
根据该第一锁召回消息发送第一锁释放消息。
第三方面,提供了一种对分布式存储系统的锁管理的锁服务器,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第四方面,提供了一种对分布式存储系统的锁管理的第二缓存节点,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,提供了一种对分布式存储系统的锁管理的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供了一种对分布式存储系统的锁管理的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,提供了一种分布式存储系统,包括第三方面的锁服务器、第四方面的第二缓存节点,以及第一缓存节点。
第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第九方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是分布式存储系统的基本架构示意图。
图2是本发明实施例的分布式存储系统数据一致性原理的示意性流程图。
图3是本发明实施例的对分布式存储系统的锁管理的方法的交互流程示意图。
图4是本发明实施例的对分布式存储系统的锁管理的方法的一个具体例子的交互流程示意图。
图5是本发明实施例的锁服务器的示意性框图。
图6是本发明实施例的第二缓存节点的示意性框图。
图7是本发明实施例的锁服务器的结构示意图。
图8是本发明实施例的第二缓存节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了分布式存储系统的基本架构示意图。分布式存储系统可以包括多个主机、存储子系统(即存储器)和分布式锁服务器(Distributed Lock Management Server,简称为“DLMS”)。主机,也可以称为缓存节点,可以包括本地缓存、客户端代理(Client Agent,简称为“CA”)和分布式锁客户端(Distributed Lock Management Client,简称为“DLMC”)。各个主机上的本地缓存可构成分布式缓存子系统。各个主机上的DLMC与DLMS可构成分布式锁子系统。客户端发起数据请求后,可能通过任一CA接入来访问分布式存储系统中的数据(即存储器中的数据),每个CA通过对应的本地缓存利用缓存来提高访问存储资源的性能。保存于本地缓存中还未写入磁盘中的数据称之为脏数据。每个缓存节点在需要访问存储器(磁盘)或者将数据下盘时,均需要持有锁,即调用图中的分布式锁客户端DLMC的锁接口,向DLMS申请锁。在同一时刻只能有一个DLMC进行数据下盘的操作,因此需要向分布式锁服务器申请锁的使用权限,只有在申请到锁后,才能进行后续数据的操作。
本发明的技术方案,可以应用到分布式存储系统中。分布式存储系统中采用分布式锁控制对共享资源的访问。例如,在分布式存储系统中的多个缓存节点对同一数据资源进行访问时,对于同一个数据对象而言,会对应一个锁,为了避免多个缓存节点存在互斥,采用锁进行协调,从而控制不同缓存节点对同一数据对象的访问。具体而言,对于不同的系统或者同一系统的不同主机之间要访问同一个或同一组共享资源时,需要使用分布式锁来防止不同的系统或者同一系统的不同主机之间的干扰,保证数据的一致性。为了描述方便,下文将以“锁”代替“分布式锁”。在分布式存储系统中,缓存节点必须获取到分布式锁,才能进行数据的读写。DLMS可以控制锁的分配,并能够获知到锁处于空闲或非空闲态。在锁空闲时,DLMS直接将锁分配给申请锁的缓存节点;在锁非空闲时,DLMS触发锁召回机制将锁召回,将锁重新分配给新申请者。锁召回机制即DLMS触发原持锁者先将其本地缓存中的脏数据下盘,从而保证新持锁者即新的缓存节点获取到锁时,其他的缓存节点上已经没有脏数据,使得新持锁者此时访问存储资源即磁盘时可以获得完整和一致性的数据内容。
图2示出了本发明实施例的分布式存储系统数据一致性原理的示意性流程图。下面结合图2描述分布式存储系统中使用分布式锁实现跨节点同步访问数据的一致性的原理。
101,向主缓存节点11发起写数据请求。
102,主缓存节点11在收到写数据请求后向锁服务器13发起申请锁请求。
103,锁服务器13判断锁空闲时,将锁分配给主缓存节点11。
104,锁服务器13向主缓存节点11回复一个申请锁成功消息,
105,主缓存节点11持有锁后,写数据入本地缓存,并将数据备份到备节点。
106,向备缓存节点12发起读/写数据请求。
107,备缓存节点12在收到读/写数据请求后也向锁服务器13发起申请锁请求。
108,锁服务器13判断锁处于非空闲状态。
109,锁服务器13向持锁者即主缓存节点11发起锁召回请求。
110,主缓存节点11收到锁召回请求后触发脏数据下盘,然后释放锁。
111,锁服务器13收到锁召回成功消息。
112,锁服务器13召回锁后将锁重新分配给新申请者即备缓存节点12。
113,锁服务器13向备缓存节点12发送申请锁成功消息。
114,备缓存节点12收到申请锁成功消息后持有锁,写数据入本地缓存或者读取磁盘数据到本地缓存。
在图2中,当原持锁者即主缓存节点11存在故障的场景下,备缓存节点12需要升主并激活备份脏数据,则首先要从锁服务器13获取到锁资源,才能实现脏数据的访问,从而保证数据的一致性。其中,备缓存节点12即主缓存节点11的备份节点,备份脏数据即主缓存节点备份在备缓存节点上的脏数据,脏数据即保存于缓存节点中而未写入磁盘的数据。
为了描述方便,下文将以“主节点”代替“主缓存节点”,以“备节点”代替“备份缓存节点”。在这种跨节点或跨子系统的场景,主节点故障时,持有主节点备份脏数据的备节点需要升主并激活备份脏数据。本发明实施例的对分布式存储系统的锁管理的方法应用于主节点故障的场景。
图3示出了根据本发明实施例的对分布式存储系统的锁管理的方法的交互流程示意图。下面结合图3,对根据本发明实施例的对分布式存储系统的锁管理的方法进行详细描述。图3中的201至204为实施本发明实施例的对分布式存储系统的锁管理的方法必须执行的流程,下面将该方法中的每个步骤进行详细说明。如图3所示,该分布式存储系统中包括锁服务器,第一缓存节点和第二缓存节点。在本发明实施例中,该分布式存储系统可以包括多个缓存节点,例如,第一缓存节点为主节点,第二缓存节点为该主节点的备节点。
201,锁服务器确定该至少两个缓存节点中的第一缓存节点故障。
具体而言,第一缓存节点为主节点,当主节点故障时,锁服务器能够感知到主节点故障。
202,第二缓存节点确定该至少两个缓存节点中的第一缓存节点故障。
同样地,当主节点故障时,备节点也可以感知到主节点故障,并启动备升主的过程。
203,第二缓存节点向该锁服务器发送第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点。
具体而言,在备节点启动备升主过程后,备节点会向锁服务器发送第一锁请求消息,该备节点上具有主节点备份的脏数据,该脏数据还未写入到存储器或磁盘里,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点,则第一锁请求消息即用于备节点请求锁服务器恢复锁。在物理实现中,第一指示信息可以通过操作字或者标记来指示。
204,锁服务器根据该第一锁请求消息向该第二缓存节点发送第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁,以便于该第二缓存节点根据该锁发送该脏数据给存储器。
具体而言,锁服务器收到备节点发送的第一锁请求消息后,向备节点回复一个第一锁响应消息,该第一锁响应消息即表示备节点可以占有锁。此时,锁服务器也有可能会收到其他缓存节点的申请锁请求消息,但是通过第一指示信息,锁服务器可以知道该锁请求消息是备节点发起的恢复锁请求消息,从而会立即处理备节点的锁请求消息,使得备节点能够优先获得锁资源。换言之,锁服务器能够区分出其他节点的申请锁请求消息与备节点的锁恢复请求消息。比如,锁服务器通过消息的操作字或者标记的不同来区分不同的锁请求消息。
205,第二缓存节点占有锁,根据该锁发送该脏数据给存储器。
备节点占有锁后,根据锁将主节点备份的脏数据发送给存储器。具体而言,备节点在接收到锁服务器发送的第一锁响应消息后根据该第一锁响应消息占有锁资源,将主节点备份的脏数据写入存储器或磁盘,那么主节点在备节点上备份的脏数据即生效,从而可以被其他节点访问,保证了数据的一致性。
在分布式存储系统中,如果主节点的脏数据已经成功下盘,则此时备节点上的备份的脏数据也一并删除。主节点在故障时,不能实现脏数据的下盘,那么要下盘的脏数据只能通过备节点代替主节点去完成,因此备节点会向锁服务器发送锁恢复请求消息,即第一锁请求消息,申请到锁资源后,就可将主节点备份的脏数据写入存储器。
需要说明的是,在锁恢复期内,即使有其他缓存节点向锁服务器发起申请锁请求消息,甚至于备节点向锁服务器发送恢复锁请求消息之前发起申请锁请求消息,锁服务器也不会处理其他缓存节点的请求,而是让其他缓存节点的请求处于排队等待状态,即挂起其他缓存节点的申请锁请求消息。在这些情况下,锁服务器优先处理备节点发起的恢复锁请求,也就是说,备节点可以插队优先获得锁资源,进行后续的数据读写操作。
在本发明实施例中,当主节点故障时,备节点和锁服务器都能够感知到主节点故障,两者感知故障的时间不一定完全一样,在实际中可能稍微有些延迟,但基本上是同时感知到的,这并不影响本发明实施例的锁管理的方法的实施或应用。例如,当备节点发送恢复锁请求消息时,可能锁服务器还没有进入静默期,但是只要锁服务器进入静默期,会立即处理备节点发送的恢复锁请求消息。
应理解,在分布式存储系统中,可以有多个缓存节点,对于缓存节点的数目并不作限制。
还应理解,在本发明实施例中,编号“第一”、“第二”…仅仅为了区分不同的对象,比如为了区分不同的缓存节点或者请求消息,并不对本发明实施例的范围构成限制,本发明并不限于此。
本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性,并且,本发明实施例的对分布式存储系统的锁管理的方法在现有系统上就能实施,不会对原有系统的结构产生改变。
可选地,在本发明实施例中,该方法还可以包括:
锁服务器在确定该第一缓存节点故障时,启动锁恢复期;
在该锁恢复期内,锁服务器接收该至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点;
锁服务器根据该第二指示信息将该第二锁请求消息放入锁请求队列。
具体而言,锁服务器在确定主节点故障时,会启动锁恢复期,即静默期。在锁恢复期内,锁服务器也会接收到其他多个缓存节点的申请锁请求消息,例如可以接收到第三缓存节点发送的第二锁请求消息,该第二锁请求消息是第三缓存节点的申请锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点,该第二指示信息与第一指示信息的操作字或者标记不同。锁服务器根据该第二指示信息将该第二锁请求消息加入到等待队列。也就是说,分布式存储系统中可以存在多个缓存节点,当其他缓存节点在锁恢复期内申请锁时,锁服务器在接收到其他缓存节点的申请锁请求消息后,会将多个锁请求消息放入队列,但不作处理。
应理解,本发明实施例中,锁恢复期的时间可以进行设置,例如,可以设置为8秒或10秒,本发明对此不作限制。
可选地,在该锁恢复期结束后,锁服务器处理第三锁请求消息,该第三锁请求消息位于该锁请求队列的队首。这里可以包括锁空闲和非空闲两种情况。下面分别进行描述。
例如,可选地,在锁非空闲的情况下,该处理第三锁请求消息可以包括:
在该第二缓存节点占有该分布式锁时,锁服务器向该第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放该锁;
锁服务器接收该第二缓存节点发送的第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁;
根据该第一锁释放消息向该第四缓存节点发送第二锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第二锁响应消息用于指示该第四缓存节点占有该锁。
具体而言,在锁非空闲时,锁服务器向持锁者即备节点发起锁召回消息,例如向第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放锁。第二缓存节点在接收到该第一锁召回消息后,会触发脏数据下盘,然后释放锁资源,并向锁服务器发送第一锁释放消息,该第一锁释放消息用于指示第二缓存节点已经释放锁。在召回锁成功后,锁服务器将锁分配给处于锁请求消息队首的第四缓存节点。
这里,相应地,第二缓存节点会接收到该锁服务器发送的第一锁召回消息,该第一锁召回消息用于该锁服务器指示该第二缓存节点释放该锁;
第二缓存节点根据该第一锁召回消息释放该锁;
第二缓存节点根据该第一锁召回消息向锁服务器发送第一锁释放消息。
又例如,可选地,在锁空闲的情况下,该处理第三锁请求消息也可以包括:
在该锁空闲时,向该第四缓存节点发送第三锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第三锁响应消息用于指示该第四缓存节点占有该锁。
在锁空闲时,锁服务器可以直接将锁资源分配给处于队首的申请锁请求消息,例如在锁空闲时,锁服务器直接将锁分配给第四缓存节点。
可选地,在本发明实施例中,第一指示信息为第一操作字,第二指示信息为第二操作字,锁服务器可以根据该第一操作字和该第二操作字区分备节点的锁恢复请求消息和其他节点的锁申请请求消息。例如,在物理实现中,第一指示信息和第二指示信息为不同的值,锁服务器根据不同的值区分不同的指示信息。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明实施例中,前文的锁服务器在分布式存储系统中可以认为是DLMS,并非说该锁服务器为分布式的,只是在分布式存储系统中锁服务器对应的术语为DLMS。
因此,本发明实施例的对分布式存储系统的锁管理的方法,锁服务器根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性。
下面将结合图4详细描述本发明实施例。这里采用DLMS描述锁服务器。应注意,这只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
在本发明的一个实施例中,当第一缓存节点故障时,DLMS和第二缓存节点均能感知到第一缓存节点故障,DLMS在感知到第一缓存节点故障时启动锁恢复期。在锁恢复期内,第三缓存节点也向DLMS发起第二锁请求消息,请求申请锁资源。DLMS将第三缓存节点的第二锁请求消息加入等待队列,该第二锁请求消息位于队首。第二缓存节点向DLMS发送第一锁请求消息。DLMS立即处理第二缓存节点发送的第一锁请求消息,并向第二缓存节点回复第一锁响应消息,以告知第二缓存节点申请锁成功。第二缓存节点在接收到第一锁响应消息后占有锁,将备份脏数据下盘,从而备份脏数据生效,可以被访问。在锁恢复期到后,DLMS开始处理处于队列的队首锁请求消息。DLMS通过判断锁的状态进行下一步的操作。如果锁空闲,DLMS可以直接将锁分配给队首的申请锁请求消息对应的缓存节点,即第三缓存节点;如果锁非空闲,则DLMS向持锁者即第二缓存节点发送第一锁召回消息。第二缓存节点在收到该第一锁召回消息后,触发脏数据下盘,并释放锁资源,同时向DLMS回复第一锁释放消息,告知DLMS已经释放锁。DLMS在接收到第一锁释放消息后,将锁分配给处于队首的第三缓存节点,同时向第三缓存节点发送第二锁响应消息,通知第三缓存节点可以占有锁。
图4是本发明实施例的对分布式存储系统的锁管理的一个具体例子的交互流程示意图。本发明实施例中的各种术语的含义与前述各实施例相同。
301,DLMS确定第一缓存节点故障。
302,第二缓存节点确定第一缓存节点故障。
303,DLMS启动锁恢复期。
304,第三缓存节点发送向DLMS第二锁请求消息。
305,DLMS将第二锁请求消息加入队列。
306,第二缓存节点向DLMS发送第一锁请求消息。
307,DLMS根据第一锁请求消息向第二缓存节点发送第一锁响应消息。
308,第二缓存节点根据第一锁响应消息占有锁。
309,在锁恢复期到,DLMS判断锁非空闲。
可选地,如果DLMS判断锁空闲,则直接将锁分配给第三缓存节点。
310,DLMS向第二缓存节点发送第一锁召回消息。
311,第二缓存节点根据第一锁召回消息释放锁。
312,第二缓存节点向DLMS发送第一锁释放消息。
313,DLMS向第三缓存节点发送第二锁响应消息。
应理解,上述相应信息的具体指示方式可参考前述各实施例,为了简洁,在此不再赘述。
因此,本发明实施例的对分布式存储系统的锁管理的方法,DLMS根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性。
本发明实施例中,在锁恢复期内,备节点比其他并发业务的节点优先获得锁资源,使得备节点上的备份脏数据可以被写入存储器,从而保证了数据的一致性。另外,本发明实施例在现有系统上就可以实施,并不会对原有系统的结构产生改变。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中详细描述了根据本发明实施例的锁管理的方法。下面将描述根据本发明实施例的对分布式存储系统的锁服务器和第二缓存节点,该分布式存储系统包括锁服务器和至少两个缓存节点。
图5示出了根据本发明实施例的锁服务器500的示意性框图。如图5所示,该锁服务器500包括:
确定模块510,用于确定该至少两个缓存节点中的第一缓存节点故障;
接收模块520,用于接收该第二缓存节点发送的第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
发送模块530,用于根据该接收模块接收的该第一锁请求消息向该第二缓存节点发送第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁,以便于该第二缓存节点根据该锁发送该脏数据给存储器。
可选地,在本发明实施例中,该锁服务器500还包括:
处理模块,用于在确定该第一缓存节点故障时,启动锁恢复期;
该接收模块520还用于在该锁恢复期内,接收该至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点;
该处理模块还用于将该第二锁请求消息放入锁请求队列。
可选地,该处理模块还用于在该锁恢复期结束后,处理第三锁请求消息,该第三锁请求消息位于该锁请求队列的队首。
可选地,在锁非空闲时,该处理模块可以具体用于:
在该第二缓存节点占有该锁时,向该第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放该锁;
接收该第二缓存节点发送的第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁;
根据该第一锁释放消息向该第四缓存节点发送第二锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第二锁响应消息用于指示该第四缓存节点占有该锁。
可选地,在锁空闲时,该处理模块还可以具体用于:
在该锁空闲时,向第四缓存节点发送第三锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第三锁响应消息用于指示该第四缓存节点占有该锁。
可选地,该第一指示信息为第一操作字,该第二指示信息为第二操作字。
因此,本发明实施例的对分布式存储系统的锁管理的方法,锁服务器根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性。
图6示出了根据本发明实施例的对分布式存储系统的锁管理的第二缓存节点700的示意性框图。该分布式存储系统包括锁服务器和至少两个缓存节点,该第二缓存节点上缓存有该至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,如图6所示,该第二缓存节点700包括:
确定模块710,用于确定所述第一缓存节点故障;
发送模块720,用于向该锁服务器发送第一锁请求消息,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
接收模块730,用于接收该锁服务器发送的第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁。
处理模块740,用于根据该锁发送该脏数据给存储器。
可选地,该接收模块730还用于接收锁服务器发送的第一锁召回消息;
处理模块还用于根据该第一锁召回消息释放该锁;
该发送模块720还用于根据该接收模块730接收的该第一锁召回消息向该锁服务器发送第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁。
因此,本发明实施例的对分布式存储系统的锁管理的方法,锁服务器根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性。
图7示出了本发明的又一实施例提供的分布式存储单元锁服务器的结构,包括至少一个处理器1102(例如具有计算和处理能力的通用处理器CPU、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)等),处理器对锁服务器DLMS设备内各模块和器件进行管理和调度。还包括至少一个网络接口1105或者其他通信接口,存储器1106,和至少一个总线系统1103。OBU的各个组件通过总线系统1103耦合在一起,其中总线系统1103可能包括数据总线、电源总线、控制总线和状态信号总线等,但是为了清楚说明起见,在图中将各种总线都标为总线系统1103。
上述本发明实施例揭示的方法可以应用于处理器1102,或者用于执行存储器1106中存储的可执行模块,例如计算机程序。存储器1106可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),存储器可以包括只读存储器和随机存取存储器,并向处理器提供需要的信令或数据、程序等等。存储器的一部分还可以包括非易失行随机存取存储器(NVRAM)。通过至少一个网络接口1105(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1106存储了程序11061,处理器1102执行程序11061,用于执行一些操作:
确定该至少两个缓存节点中的第一缓存节点故障;
接收该至少两个缓存节点中的第二缓存节点发送的第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
根据该第一指示信息向该第二缓存节点发送第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁,以便于该第二缓存节点根据该锁发送该脏数据给存储器。
可选地,处理器1102还用于:
在确定该第一缓存节点故障时,启动锁恢复期;
在该锁恢复期内,接收该至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点;
根据将该第二锁请求消息放入锁请求队列。
可选地,处理器1102还用于:
在该锁恢复期结束后,处理位于第三锁请求消息,该第三锁请求消息位于该锁请求队列的队首。
可选地,该处理第三锁请求消息包括:
在该第二缓存节点占有该锁时,向该第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放该锁;
接收该第二缓存节点发送的第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁;
根据该第一锁释放消息向第四缓存节点发送第二锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第二锁响应消息用于指示该第四缓存节点占有该锁。
可选地,该处理位于该锁请求队列的队首的该第二锁请求消息包括:
在该分布式锁空闲时,向第四缓存节点发送第三锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第三锁响应消息用于指示该第四缓存节点占有该锁。
可选地,该第一指示信息为第一操作字,该第二指示信息为第二操作字。
从本发明实施例提供的以上技术方案可以看出,本发明实施例的锁服务器根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性。
图8示出了本发明的又一实施例提供的分布式存储单元第二缓存节点的结构,该第二缓存节点上缓存有该至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,包括至少一个处理器1202(例如具有计算和处理能力的通用处理器CPU、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)等),处理器对锁服务器DLMS设备内各模块和器件进行管理和调度。还包括至少一个网络接口1205或者其他通信接口,存储器1206,和至少一个总线系统1203。OBU的各个组件通过总线系统1203耦合在一起,其中总线系统1203可能包括数据总线、电源总线、控制总线和状态信号总线等,但是为了清楚说明起见,在图中将各种总线都标为总线系统1203。
上述本发明实施例揭示的方法可以应用于处理器1202,或者用于执行存储器1206中存储的可执行模块,例如计算机程序。存储器1206可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),存储器可以包括只读存储器和随机存取存储器,并向处理器提供需要的信令或数据、程序等等。存储器的一部分还可以包括非易失行随机存取存储器(NVRAM)。通过至少一个网络接口1205(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1206存储了程序12061,处理器1202执行程序12061,用于执行一些操作:
确定该至少两个缓存节点中的第一缓存节点故障;
向该锁服务器发送第一锁请求消息,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
接收该锁服务器发送的第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有该锁。
根据该锁发送该脏数据给存储器。
可选地,处理1202还用于:
接收该锁服务器发送的第一锁召回消息,该第一锁召回消息用于该锁服务器指示该第二缓存节点释放该锁;
根据该第一锁召回消息释放该锁;
根据该第一锁召回消息向该锁服务器发送第一锁释放消息。
从本发明实施例提供的以上技术方案可以看出,本发明实施例中锁服务器根据第二缓存节点发送的携带第一指示信息的第一锁请求消息,将锁资源分配给第二缓存节点,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种对分布式存储系统的锁管理的方法,其特征在于,所述分布式存储系统包括锁服务器和至少两个缓存节点,所述方法由所述锁服务器执行,所述方法包括:
确定所述至少两个缓存节点中的第一缓存节点故障;
接收所述至少两个缓存节点中的第二缓存节点发送的第一锁请求消息,所述第二缓存节点上缓存有所述第一缓存节点备份的未写入存储器的脏数据,所述第一锁请求消息携带第一指示信息,所述第一指示信息用于指示所述第二缓存节点为所述第一缓存节点的备节点;
根据所述第一指示信息向所述第二缓存节点发送第一锁响应消息,所述第一锁响应消息用于指示所述第二缓存节点占有锁,以便于所述第二缓存节点根据所述锁发送所述脏数据给存储器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定所述第一缓存节点故障时,启动锁恢复期;
在所述锁恢复期内,接收所述至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,所述第二锁请求消息携带第二指示信息,所述第二指示信息用于指示所述第三缓存节点不是所述第一缓存节点的备节点;
将所述第二锁请求消息放入锁请求队列。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述锁恢复期结束后,处理第三锁请求消息,所述第三锁请求消息位于所述锁请求队列的队首。
4.根据权利要求3所述的方法,其特征在于,所述处理所述第三锁请求消息包括:
在所述第二缓存节点占有所述锁时,向所述第二缓存节点发送第一锁召回消息,所述第一锁召回消息用于指示所述第二缓存节点释放所述锁;
接收所述第二缓存节点发送的第一锁释放消息,所述第一锁释放消息用于指示所述第二缓存节点已释放所述锁;
根据所述第一锁释放消息向第四缓存节点发送第二锁响应消息,所述第四缓存节点为发送所述第三锁请求消息的缓存节点,所述第二锁响应消息用于指示所述第四缓存节点占有所述锁。
5.根据权利要求3所述的方法,其特征在于,所述处理第三所述请求消息包括:
在所述锁空闲时,向第四缓存节点发送第三锁响应消息,所述第四缓存节点为发送所述第三锁请求消息的缓存节点,所述第三锁响应消息用于指示所述第四缓存节点占有所述锁。
6.一种对分布式存储系统的锁管理的方法,其特征在于,所述分布式存储系统包括锁服务器和至少两个缓存节点,所述方法由所述至少两个缓存节点中的第二缓存节点执行,所述第二缓存节点上缓存有所述至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,所述方法包括:
确定所述第一缓存节点故障;
向所述锁服务器发送第一锁请求消息,所述第一锁请求消息携带第一指示信息,所述第一指示信息用于指示所述第二缓存节点为所述第一缓存节点的备节点;
接收所述锁服务器发送的第一锁响应消息,所述第一锁响应消息用于指示所述第二缓存节点占有锁;
根据所述锁发送所述脏数据给存储器。
7.一种对分布式存储系统的锁管理的锁服务器,其特征在于,所述分布式存储系统包括所述锁服务器和至少两个缓存节点,所述锁服务器包括:
确定模块,用于确定所述至少两个缓存节点中的第一缓存节点故障;
接收模块,用于接收所述至少两个缓存节点中的第二缓存节点发送的第一锁请求消息,所述第二缓存节点上缓存有所述第一缓存节点备份的未写入存储器的脏数据,所述第一锁请求消息携带第一指示信息,所述第一指示信息用于指示所述第二缓存节点为所述第一缓存节点的备节点;
发送模块,用于根据第一指示信息向所述第二缓存节点发送第一锁响应消息,所述第一锁响应消息用于指示所述第二缓存节点占有锁,以便于所述第二缓存节点根据所述锁发送所述脏数据给存储器。
8.根据权利要求7所述的锁服务器,其特征在于,所述锁服务器还包括:
处理模块,用于在确定所述第一缓存节点故障时,启动锁恢复期;
所述接收模块还用于在所述锁恢复期内,接收所述至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,所述第二锁请求消息携带第二指示信息,所述第二指示信息用于指示所述第三缓存节点不是所述第一缓存节点的备节点;
所述处理模块还用于根据所述第二指示信息将所述第二锁请求消息放入锁请求队列。
9.根据权利要求8所述的锁服务器,其特征在于,所述处理模块还用于在所述锁恢复期结束后,处理第三锁请求消息,所述第三锁请求消息位于所述锁请求队列的队首。
10.根据权利要求9所述的锁服务器,其特征在于,所述处理模块具体用于:
在所述第二缓存节点占有所述锁时,向所述第二缓存节点发送第一锁召回消息,所述第一锁召回消息用于指示所述第二缓存节点释放所述锁;
接收所述第二缓存节点发送的第一锁释放消息,所述第一锁释放消息用于指示所述第二缓存节点已释放所述锁;
根据所述第一锁释放消息向第四缓存节点发送第二锁响应消息,所述第四缓存节点为发送所述第三锁请求消息的缓存节点,所述第二锁响应消息用于指示所述第四缓存节点占有所述锁。
11.根据权利要求9所述的锁服务器,其特征在于,所述处理模块具体用于:
在所述分布式锁空闲时,向第四缓存节点发送第三锁响应消息,所述第四缓存节点为发送所述第三锁请求消息的缓存节点,所述第三锁响应消息用于指示所述第四缓存节点占有所述锁。
12.一种对分布式存储系统的锁管理的第二缓存节点,其特征在于,所述分布式存储系统包括锁服务器和至少两个缓存节点,所述至少两个缓存节点中的所述第二缓存节点上缓存有所述至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,所述第二缓存节点包括:
确定模块,用于确定所述第一缓存节点故障;
发送模块,用于向所述锁服务器发送第一锁请求消息,所述第一锁请求消息携带第一指示信息,所述第一指示信息用于指示所述第二缓存节点为所述第一缓存节点的备节点;
接收模块,用于接收所述锁服务器发送的第一锁响应消息,所述第一锁响应消息用于指示所述第二缓存节点占有锁;
处理模块,用于根据所述锁发送所述脏数据给存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510977203.0A CN105426271B (zh) | 2015-12-22 | 2015-12-22 | 对分布式存储系统的锁管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510977203.0A CN105426271B (zh) | 2015-12-22 | 2015-12-22 | 对分布式存储系统的锁管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426271A CN105426271A (zh) | 2016-03-23 |
CN105426271B true CN105426271B (zh) | 2018-09-21 |
Family
ID=55504491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510977203.0A Active CN105426271B (zh) | 2015-12-22 | 2015-12-22 | 对分布式存储系统的锁管理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426271B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653406B (zh) * | 2015-12-31 | 2019-05-24 | 华为技术有限公司 | 一种管理分布式存储系统的方法及分布式存储系统 |
CN106446037A (zh) * | 2016-08-31 | 2017-02-22 | 南威软件股份有限公司 | 一种基于分布式锁实现Redis与MYSQL数据一致性的方法 |
CN106648909A (zh) | 2016-10-13 | 2017-05-10 | 华为技术有限公司 | 一种磁盘锁的管理方法、装置和系统 |
CN108063782A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 节点宕机接管方法和装置、节点集群系统 |
CN106936931B (zh) * | 2017-04-26 | 2020-09-04 | 华为技术有限公司 | 分布式锁的实现方法、相关设备及系统 |
CN109376014B (zh) * | 2018-10-19 | 2021-07-02 | 郑州云海信息技术有限公司 | 一种分布式锁管理器实现方法和系统 |
CN109491609B (zh) * | 2018-11-02 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种缓存数据处理方法、装置、设备及可读存储介质 |
CN109558234B (zh) * | 2018-11-30 | 2021-06-04 | 中国联合网络通信集团有限公司 | 一种定时任务调度方法和装置 |
CN112988880B (zh) * | 2019-12-12 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 数据同步方法、装置、电子设备及计算机存储介质 |
CN115145715A (zh) * | 2021-03-30 | 2022-10-04 | 华为云计算技术有限公司 | 一种分布式事务处理方法、系统及相关设备 |
CN113901293B (zh) * | 2021-09-30 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 元数据管理方法、电子设备,及计算机可读存储介质 |
CN117194579A (zh) * | 2023-11-06 | 2023-12-08 | 山东浪潮数据库技术有限公司 | 一种分布式数据库资源锁队列管理方法、系统及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014179504A1 (en) * | 2013-04-30 | 2014-11-06 | Amazon Technologies, Inc. | Efficient read replicas |
CN104636088A (zh) * | 2015-02-17 | 2015-05-20 | 华为技术有限公司 | 一种将数据写入数据服务器的方法及存储系统 |
CN104769591A (zh) * | 2012-10-02 | 2015-07-08 | 甲骨文国际公司 | 分布式节点之间的存储器共享 |
US9171019B1 (en) * | 2013-02-19 | 2015-10-27 | Amazon Technologies, Inc. | Distributed lock service with external lock information database |
-
2015
- 2015-12-22 CN CN201510977203.0A patent/CN105426271B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104769591A (zh) * | 2012-10-02 | 2015-07-08 | 甲骨文国际公司 | 分布式节点之间的存储器共享 |
US9171019B1 (en) * | 2013-02-19 | 2015-10-27 | Amazon Technologies, Inc. | Distributed lock service with external lock information database |
WO2014179504A1 (en) * | 2013-04-30 | 2014-11-06 | Amazon Technologies, Inc. | Efficient read replicas |
CN104636088A (zh) * | 2015-02-17 | 2015-05-20 | 华为技术有限公司 | 一种将数据写入数据服务器的方法及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105426271A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426271B (zh) | 对分布式存储系统的锁管理的方法和装置 | |
CN106375404B (zh) | 数据存储控制方法、数据存储方法、数据获取方法及装置 | |
EP3220282B1 (en) | Method for managing lock in cluster, lock server and client | |
US20210011817A1 (en) | Virtual Machine Recovery Method and Virtual Machine Management Device | |
CN110622478B (zh) | 数据同步处理的方法和装置 | |
CN105468450A (zh) | 任务调度方法及系统 | |
CN105760519B (zh) | 一种集群文件系统及其文件锁分配方法 | |
CN103152390B (zh) | 分布式存储系统的节点配置方法、装置、节点及系统 | |
CN109743358A (zh) | 异步消息接口熔断控制方法、装置、计算机设备及存储介质 | |
CN105357042B (zh) | 一种高可用集群系统及其主节点和从节点 | |
CN106485097A (zh) | 客户端设备和许可证管理方法 | |
CN110008031B (zh) | 设备操作方法、集群系统、电子设备及可读取存储介质 | |
CN109032837A (zh) | 数据备份的方法和装置 | |
CN110213128B (zh) | 服务端口检测方法、电子设备及计算机存储介质 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN113992594B (zh) | 流量控制方法、装置、电子设备和计算机可读存储介质 | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
CN110351313A (zh) | 数据缓存方法、装置、设备及存储介质 | |
CN110018883A (zh) | 一种虚拟机删除方法、装置、设备及存储介质 | |
CN104461705B (zh) | 一种业务访问的方法及存储控制器、集群存储系统 | |
CN100550894C (zh) | 对n路共享存储系统中快闪副本的高效锁管理 | |
CN110928704A (zh) | 消息处理方法、消息处理系统、服务器及计算机存储介质 | |
CN117290292A (zh) | 一种文件系统inode的扩容方法、系统及存储介质 | |
CN110321199B (zh) | 一种共用数据变更的通知方法、装置、电子设备及介质 | |
CN109407998B (zh) | 一种缓存中io流同步的方法、系统及相关组件 |
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 |