对分布式存储系统的锁管理的方法和装置的制造方法

文档序号:9667223阅读:590来源:国知局
对分布式存储系统的锁管理的方法和装置的制造方法
【技术领域】
[0001]本发明涉及信息技术领域,并且具体地,涉及对分布式存储系统的锁管理的方法和装置。
【背景技术】
[0002]分布式存储系统采用分布式缓存(Cache)技术实现提高系统性能,尤其是降低系统的时延。分布式缓存系统采用保电内存做为存储介质提供掉电保护能力,同时采用镜像Mirror机制实现缓存节点冗余备份,在缓存主节点处于故障的情况下,备份节点将会升为主节点,并且,备份节点上的备份脏数据可以被访问,脏数据即保存于本地缓存中但并未写入磁盘的数据。另外,缓存节点在读写数据时,必须要先获得分布式锁,才能进行后续操作。
[0003]在现有技术中,如果主节点故障并且分布式存储系统存在并发业务时,分布式存储系统的锁服务器采用先到先得的原则,给其他节点分配锁资源。这样存在的问题是,在后申请锁的备份节点不能获取到锁资源,其拥有的备份脏数据无法写入磁盘,也就不能被先获得锁的其他节点所访问,即数据一致性无法保证。

【发明内容】

[0004]本发明提供了一种对分布式存储系统的锁管理的方法和装置,能够在主节点故障时保证数据的一致性。
[0005]第一方面,提供了一种对分布式存储系统的锁管理的方法,该分布式存储系统包括锁服务器和至少两个缓存节点,该方法由该锁服务器执行,该方法包括:
[0006]确定该至少两个缓存节点中的第一缓存节点故障;
[0007]接收该至少两个缓存节点中的第二缓存节点发送的第一锁请求消息,该第二缓存节点上缓存有该第一缓存节点备份的未写入存储器的脏数据,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
[0008]根据该第一指示信息向该第二缓存节点发送第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁,以便于该第二缓存节点根据该锁发送该脏数据给存储器。
[0009]本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性。
[0010]结合第一方面,在第一种可能的实现方式中,该方法还包括:
[0011]在确定该第一缓存节点故障时,启动锁恢复期;
[0012]在该锁恢复期内,接收该至少两个缓存节点中的第三缓存节点发送的第二锁请求消息,该第二锁请求消息携带第二指示信息,该第二指示信息用于指示该第三缓存节点不是该第一缓存节点的备节点;
[0013]将该第二锁请求消息放入锁请求队列。
[0014]这里,锁服务器会接收到其他缓存节点发送的申请锁请求消息,锁服务器依次将其他缓存节点申请锁请求消息的加入队列,等待恢复期结束后才作处理。
[0015]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在该锁恢复期结束后,处理第三锁请求消息,该第三锁请求消息位于该锁请求队列的队首。
[0016]这里,锁服务器处理位于该锁请求队列的队首的该第三锁请求消息时会先判断锁是否空闲,然后基于锁空闲或非空闲这两种情况作进一步的操作。
[0017]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该处理该第三锁请求消息包括:
[0018]在该第二缓存节点占有该锁时,向该第二缓存节点发送第一锁召回消息,该第一锁召回消息用于指示该第二缓存节点释放该锁;
[0019]接收该第二缓存节点发送的第一锁释放消息,该第一锁释放消息用于指示该第二缓存节点已释放该锁;
[0020]根据该第一锁释放消息向第四缓存节点发送第二锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第二锁响应消息用于指示该第四缓存节点占有该锁。
[0021]在锁被占有时,锁服务器触发锁召回机制,召回锁后将锁分配给处于队首锁请求消息对应的缓存节点。
[0022]结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,在该锁空闲时,向第四缓存节点发送第三锁响应消息,该第四缓存节点为发送该第三锁请求消息的缓存节点,该第三锁响应消息用于指示该第四缓存节点占有该锁。
[0023]在上述任一种实现方式中,该第一指示信息为第一操作字,该第二指示信息为第二操作字。这样,锁服务器根据不同的操作字区分出备节点和其他节点的锁请求消息,使得备节点能够优先占有锁。
[0024]第二方面,提供了一种对分布式存储系统的锁管理的方法,该分布式存储系统包括锁服务器和至少两个缓存节点,该方法由该至少两个缓存节点中的第二缓存节点执行,该第二缓存节点上缓存有该至少两个缓存节点中的第一缓存节点备份的未写入存储器的脏数据,该方法包括:
[0025]确定该第一缓存节点故障;
[0026]向该锁服务器发送第一锁请求消息,该第一锁请求消息携带第一指示信息,该第一指示信息用于指示该第二缓存节点为该第一缓存节点的备节点;
[0027]接收该锁服务器发送的第一锁响应消息,该第一锁响应消息用于指示该第二缓存节点占有锁。
[0028]根据该锁发送该脏数据给存储器。
[0029]本发明实施例的对分布式存储系统的锁管理的方法,通过增加第一指示信息,使得第二缓存节点能够优先占有锁资源,从而保证了数据的一致性,提高可靠性。
[0030]这里的脏数据即第一缓存节点在第二缓存节点备份的未写入存储器的脏数据,第二缓存节点占有锁后即可将主节点在备节点上备份的脏数据写入存储器。
[0031]结合第二方面,在第一种可能的实现方式中,该方法还包括:
[0032]接收该锁服务器发送的第一锁召回消息,该第一锁召回消息用于该锁服务器指示该第二缓存节点释放该锁;
[0033]根据该第一锁召回消息释放该锁;
[0034]根据该第一锁召回消息发送第一锁释放消息。
[0035]第三方面,提供了一种对分布式存储系统的锁管理的锁服务器,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
[0036]第四方面,提供了一种对分布式存储系统的锁管理的第二缓存节点,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
[0037]第五方面,提供了一种对分布式存储系统的锁管理的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0038]第六方面,提供了一种对分布式存储系统的锁管理的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
[0039]第七方面,提供了一种分布式存储系统,包括第三方面的锁服务器、第四方面的第二缓存节点,以及第一缓存节点。
[0040]第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
[0041]第九方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
【附图说明】
[0042]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1是分布式存储系统的基本架构示意图。
[0044]图2是本发明实施例的分布式存储系统数据一致性原理的示意性流程图。
[0045]图3是本发明实施例的对分布式存储系统的锁管理的方法的交互流程示意图。
[0046]图4是本发明实施例的对分布式存储系统的锁管理的方法的一个具体例子的交互流程示意图。
[0047]图5是本发明实施例的锁服务器的示意性框图。
[0048]图6是本发明实施例的第二缓存节点的示意性框图。
[0049]图7是本发明实施例的锁服务器的结构示意图。
[0050]图8是本发明实施例的第二缓存节点的结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]图1示出了分布式存储系统的基本架构示意图。分布式存储系统可以包括多个主机、存储子系统(即存储器)和分布式锁服务器(Distributed Loc
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1