一种容灾系统及其数据读取方法

文档序号:6490418阅读:167来源:国知局
一种容灾系统及其数据读取方法
【专利摘要】本发明实施例公开了一种容灾系统及其数据读取方法,其中,该容灾系统的数据读取方法包括:容灾从机接收请求端发送的数据读取请求,所述数据读取请求携带有所述请求端需要读取的数据的索引;所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。本发明实施例可以在某些容灾从机尚未存有新数据却收到了针对该新数据的读取请求时,由容灾从机通知容灾主机读取该新数据并对外提供数据服务,从而可以提高容灾系统的适应能力。
【专利说明】一种容灾系统及其数据读取方法
【技术领域】
[0001]本发明涉及容灾【技术领域】,具体涉及一种容灾系统及其数据读取方法。
【背景技术】
[0002]容灾系统是指为计算机信息系统提供的一个能应付各种灾难的环境。当计算机系统在遭受如火灾、水灾、地震、战争等不可抗拒的自然灾难以及计算机犯罪、计算机病毒、掉电、网络/通信失败、硬件/软件错误和人为操作错误等人为灾难时,容灾系统将保证用户数据的安全性(即数据容灾),甚至,一个更加完善的容灾系统还能提供不间断的应用服务(即应用容灾)。可以说,容灾系统是数据存储备份的最高层次。
[0003]容灾系统通常由一个容灾主机(Master)和多个容灾从机(Slave)组成。其中,Master可以负责一部分的数据读请求处理,但是主要用于负责整个系统的数据写请求处理,即主要负责将数据写请求同步给各个Slave,以实现Master与各个Slave之间的数据备份。而Slave主要用于负责数据读请求处理,同时也负责接收Master同步过来的数据。
[0004]在容灾系统中,由于网络延迟等原因,Master将数据写请求同步给各个Slave都是准实时的,这使得在Master将新数据同步给各个Slave的这段时间内,可能会出现某些Slave中尚未存有新数据却收到了针对该新数据的读取请求的情况,从而无法对外提供数据服务,降低了容灾系统的适应能力。

【发明内容】

[0005]本发明实施例所要解决的技术问题是提供一种容灾系统及其数据读取方法,用于解决某些Slave中尚未存有新数据却收到了针对该新数据的读取请求时,无法对外提供数据服务,从而降低了容灾系统的适应能力的问题。
[0006]本发明实施例提供一种容灾系统的数据读取方法,包括:
[0007]容灾从机接收请求端发送的数据读取请求,所述数据读取请求携带有所述请求端需要读取的数据的索引;
[0008]所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
[0009]相应地,本发明实施例还提供一种容灾系统,包括容灾主机和至少一个容灾从机,其中:
[0010]所述容灾从机,用于接收请求端发送的数据读取请求,所述数据读取请求携带有所述请求端需要读取的数据的索引;以及根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知所述容灾主机读取所述请求端需要读取的数据并发送给所述请求端;
[0011]所述容灾主机,用于根据所述容灾从机的通知读取所述请求端需要读取的数据并发送给所述请求端。[0012]本发明实施例中,容灾从机在接收请求端发送的数据读取请求,可以根据该数据读取请求所携带的请求端需要读取的数据的索引去判断容灾从机中是否存在请求端需要读取的数据,如果不存在,则通知容灾主机读取请求端需要读取的数据并发送给请求端。可见,本发明实施例可以在某些容灾从机尚未存有新数据却收到了针对该新数据的读取请求时,由容灾从机通知容灾主机读取该新数据并对外提供数据服务,从而可以提高容灾系统的适应能力。
【专利附图】

【附图说明】
[0013]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本发明实施例提供的一种容灾系统的数据读取方法的流程图;
[0015]图2是图1所描述的方法中容灾从机通知容灾主机读取请求端需要读取的数据并发送给请求端的方法流程图;
[0016]图3是本发明实施例提供的一种容灾系统的结构图。
【具体实施方式】
[0017]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018]本发明实施例提供了 一种容灾系统及其数据读取方法,可以在某些容灾从机(Slave)尚未存有新数据却收到了针对该新数据的读取请求时,由Slave通知容灾主机(Master)读取该新数据并对外提供数据服务,从而可以提高容灾系统的适应能力。以下分别进行详细说明。
[0019]请参阅图1,图1是本发明实施例提供的一种容灾系统的数据读取方法的流程图。如图1所示,该容灾系统的数据读取方法可以包括以下步骤。
[0020]SlOUSlave接收请求端发送的数据读取请求,该数据读取请求携带有请求端需要读取的数据的索引。
[0021]S102、Slave根据请求端需要读取的数据的索引,在Slave不存在请求端需要读取的数据的情况下,通知Master读取请求端需要读取的数据并发送给请求端。
[0022]一个实施例中,如果Slave根据请求端需要读取的数据的索引,判断出Slave存在请求端需要读取的数据,那么Slave可以根据请求端需要读取的数据的索引从Slave中获取请求端需要读取的数据并返回给请求端。
[0023]本发明实施例中,请求端需要读取的数据的索引可以包括请求端需要读取的数据所在文件的文件标识FileA以及请求端需要读取的数据在文件FileA中的起始偏移量OffsetB0
[0024]相应地,上述步骤S102中Slave根据请求端需要读取的数据的索引,在Slave不存在请求端需要读取的数据的情况下,通知Master读取请求端需要读取的数据并发送给请求端可以包括:
[0025]Slave根据请求端需要读取的数据的索引,判断请求端需要读取的数据的索引包括的文件标识FileA是否等于Slave中存在的最新文件标识X,以及判断请求端需要读取的数据的索引包括的起始偏移量Off setB是否大于最新文件标识X对应的最新文件中的文件偏移量Z,并且小于设定的文件大小固定值Y ;如果FileA=X,并且OffsetB大于Z,且小于Y,则Slave确定不存在请求端需要读取的数据,通知Master读取请求端需要读取的数据并发送给请求端。
[0026]另一个实施例中,上述步骤S102中Slave根据请求端需要读取的数据的索引,在Slave不存在请求端需要读取的数据的情况下,通知Master读取请求端需要读取的数据并发送给请求端可以包括:
[0027]Slave根据请求端需要读取的数据的索引,判断请求端需要读取的数据的索引包括的文件标识FileA是否大于Slave中存在的最新文件标识X,以及判断请求端需要读取的数据的索引包括的起始偏移量OffsetB是否大于0,并且小于设定的文件大小固定值Y ;
如果FileA大于X (即FileA=X+l,X+2,......),并且OffsetB大于O以及小于Y,则Slave
确定不存在请求端需要读取的数据,通知Master读取请求端需要读取的数据并发送给请求端。
[0028]本发明实施例中,上述的最新文件标识X是指Slave当前存储有数据的文件中的最后一个文件的标识。
[0029]请一并参阅图2,图2是图1所描述的方法中Slave通知Master读取请求端需要读取的数据并发送给请求端的方法流程图。如图2所示,该方法可以包括以下步骤。
[0030]S201、Slave从数据读取请求中提取出请求端需要读取的数据的索引。
[0031]S202、Slave将请求端需要读取的数据的索引和请求端地址信息组织成数据请求包。
[0032]S203、Slave根据Master的地址信息,将数据请求包发送给Master,以触发Master读取请求端需要读取的数据并发送给请求端。
[0033]—个实施例中,Slave根据Master的地址信息,将数据请求包发送给Master之前,还包括:
[0034]Slave从配置系统中获取Master的地址信息。
[0035]本发明实施例中,Slave从配置系统中获取Master的地址信息可以省去了 Slave存储Master的地址信息,减少了 Slave的存储量。
[0036]在图1所描述的方法中,Slave在接收请求端发送的数据读取请求,可以根据该数据读取请求所携带的请求端需要读取的数据的索引去判断Slave中是否存在请求端需要读取的数据,如果不存在,则通知Master读取请求端需要读取的数据并发送给请求端。可见,图1所描述的方法可以在某些Slave尚未存有新数据却收到了针对该新数据的读取请求时,由Slave可以通知Master读取该新数据并对外提供数据服务,从而可以提高容灾系统的适应能力。
[0037]请参阅图3,图3是本发明实施例提供的一种容灾系统的结构图。如图3所示,该容灾系统可以包括容灾主机301和至少一个容灾从机302,其中:[0038]容灾从机302,用于接收请求端发送的数据读取请求,该数据读取请求携带有请求端需要读取的数据的索引,以及根据请求端需要读取的数据的索引,在容灾从机302中不存在请求端需要读取的数据的情况下,通知容灾主机301读取请求端需要读取的数据并发送给请求端;
[0039]容灾主机301,用于根据容灾从机302的通知读取请求端需要读取的数据并发送给请求端。
[0040]本发明实施例中,请求端需要读取的数据的索引可以包括请求端需要读取的数据所在文件的文件标识FileA以及请求端需要读取的数据在文件FileA中的起始偏移量OffsetB0
[0041]相应地,容灾从机302根据请求端需要读取的数据的索引,在容灾从机302中不存在请求端需要读取的数据的情况下,通知容灾主机301读取请求端需要读取的数据并发送给请求端的方式具体可以为:
[0042]容灾从机302用于根据请求端需要读取的数据的索引,判断请求端需要读取的数据的索引包括的文件标识FileA是否等于容灾从机302中存在的最新文件标识X,以及判断请求端需要读取的数据的索引包括的起始偏移量OfTsetB是否大于最新文件标识X对应的最新文件中的文件偏移量Z,并且小于设定的文件大小固定值Y ;如果FileA=X,并且OffsetB大于Z,且小于Y,则容灾从机302确定不存在请求端需要读取的数据,通知容灾主机301读取请求端需要读取的数据并发送给请求端。
[0043]另一个实施例中,容灾从机302根据请求端需要读取的数据的索引,在容灾从机302中不存在请求端需要读取的数据的情况下,通知容灾主机301读取请求端需要读取的数据并发送给请求端的方式具体可以为:
[0044]容灾从机302用于根据请求端需要读取的数据的索引,判断请求端需要读取的数据的索引包括的文件标识FileA是否大于Slave中存在的最新文件标识X,以及判断请求端需要读取的数据的索引包括的起始偏移量OfTsetB是否大于0,并且小于设定的文件大小
固定值Y ;如果FileA大于X (即FileA=X+l, X+2,......),并且OffsetB大于O以及小于
Y,则容灾从机302确定不存在请求端需要读取的数据,通知容灾主机301读取请求端需要读取的数据并发送给请求端。
[0045]本发明实施例中,容灾从机302通知容灾主机301读取请求端需要读取的数据并发送给请求端具体可以为:
[0046]容灾从机302用于从数据读取请求中提取出请求端需要读取的数据的索引,并将请求端需要读取的数据的索引和请求端地址信息组织成数据请求包;以及根据容灾主机302的地址信息,将数据请求包发送给容灾主机301 ;
[0047]容灾主机301用于根据数据请求包携带的请求端需要读取的数据的索引读取请求端需要读取的数据,以及根据数据请求包携带的请求端地址信息将请求端需要读取的数据发送给请求端。
[0048]如图3所示,本发明实施例提供的容灾系统还包括:
[0049]配置系统303,用于存储容灾主机301的地址信息;
[0050]相应地,容灾从机302还用于在根据容灾主机301的地址信息,将数据请求包发送给容灾主机301之前,从配置系统303中获取容灾主机301的地址信息。[0051]本发明实施例提供的容灾系统中,容灾主机301还用于同步数据给各个容灾从机302,以最终实现容灾主机301与各个容灾从机302之间的数据备份。
[0052]本发明实施例提供的容灾系统中,容灾从机302在接收请求端发送的数据读取请求,可以根据该数据读取请求所携带的请求端需要读取的数据的索引去判断容灾从机302中是否存在请求端需要读取的数据,如果不存在,则通知容灾主机301读取请求端需要读取的数据并发送给请求端。可见,本发明实施例提供的容灾系统可以在某些容灾从机302尚未存有新数据却收到了针对该新数据的读取请求时,由容灾从机302通知容灾主机301读取该新数据并对外提供数据服务,从而可以提高容灾系统的适应能力。
[0053]本发明实施例提供的容灾系统及其数据读取方法还具有以下效果:
[0054](I)通过本发明实施例提供的容灾系统的数据读取方法,为上层应用的接入提供了更大的便利。对上层来说,真正做到了一个统一的底层,不需要考虑记录哪些信息是新产生的,不需要考虑延时读取新数据,也不需要对底层的部署有了解,然后路由到容灾主机上读取新数据。对于这些顾虑,底层都已经可以很容易的应付。
[0055](2)对于整个系统来说,提高了系统的适应能力,就算容灾主机和容灾从机之间的同步延缓了比较久,整个系统对外部提供的服务,仍然是有效的,可能处理的时间会稍长一些(因为要经过跳转),但是整个系统的服务仍然是可用的,而不会出现数据不存在这样的情况。
[0056]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory, ROM)、随机存取器(Random AccessMemory, RAM)、磁盘或光盘等。
[0057]以上对本发明实施例所提供的容灾系统及其数据读取方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种容灾系统的数据读取方法,其特征在于,包括: 容灾从机接收请求端发送的数据读取请求,所述数据读取请求携带有所述请求端需要读取的数据的索引; 所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
2.根据权利要求1所述的数据读取方法,其特征在于,所述请求端需要读取的数据的索引包括所述请求端需要读取的数据所在文件的文件标识以及所述请求端需要读取的数据在所述文件中的起始偏移量。
3.根据权利要求2所述的数据读取方法,其特征在于,所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端包括: 所述容灾从机根据所述请求端需要读取的数据的索引,判断所述请求端需要读取的数据的索引包括的所述文件标识是否等于所述容灾从机中存在的最新文件标识,以及判断所述请求端需要读取的数据的索引包括的所述起始偏移量是否大于所述最新文件标识对应的最新文件中的文件偏移量,并且小于设定的文件大小固定值; 若所述请求端需要读取的数据的索引包括的所述文件标识等于所述容灾从机中存在的最新文件标识,并且所述请求端需要读取的数据的索引包括的所述起始偏移量大于所述最新文件标识对应的最新文件中的文件偏移量以及小于所述设定的文件大小固定值,则所述容灾从机确定所述不存在所述请求端需要读取的数据,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
4.根据权利要求2所述的数据读取方法,其特征在于,所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端包括: 所述容灾从机根据所述请求端需要读取的数据的索引,判断所述请求端需要读取的数据的索引包括的所述文件标识是否大于所述容灾从机中存在的最新文件标识,以及判断所述请求端需要读取的数据的索引包括的所述起始偏移量是否大于零,并且小于设定的文件大小固定值; 若所述请求端需要读取的数据的索引包括的所述文件标识大于所述容灾从机中存在的最新文件标识,并且所述请求端需要读取的数据的索引包括的所述起始偏移量大于零以及小于所述设定的文件大小固定值,则所述容灾从机确定所述不存在所述请求端需要读取的数据,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
5.根据权利要求1~4任一项所述的数据读取方法,其特征在于,所述容灾从机通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端包括: 所述容灾从机从所述数据读取请求中提取出所述请求端需要读取的数据的索引,并将所述请求端需要读取的数据的索引和所述请求端地址信息组织成数据请求包; 所述容灾从机根据所述容灾主机的地址信息,将所述数据请求包发送给所述容灾主机,以触发所述容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
6.根据权利要求5所述的数据读取方法,其特征在于,所述容灾从机根据所述容灾主机的地址信息,将所述数据请求包发送给所述容灾主机之前,还包括: 所述容灾从机从配置系统中获取所述容灾主机的地址信息。
7.一种容灾系统,其特征在于,包括容灾主机和至少一个容灾从机: 所述容灾从机,用于接收请求端发送的数据读取请求,所述数据读取请求携带有所述请求端需要读取的数据的索引;以及根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知所述容灾主机读取所述请求端需要读取的数据并发送给所述请求端; 所述容灾主机,用于根据所述容灾从机的通知读取所述请求端需要读取的数据并发送给所述请求端。
8.根据权利要求7所述的容灾系统,其特征在于,所述请求端需要读取的数据的索引包括所述请求端需要读取的数据所在文件的文件标识以及所述请求端需要读取的数据在所述文件中的起始偏移量。
9.根据权利要求8所述的容灾系统,其特征在于,所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知所述容灾主机读取所述请求端需要读取的数据并发送给所述请求端的方式具体为: 所述容灾从机用于判断所述请求端需要读取的数据的索引包括的所述文件标识是否等于所述容灾从机中存在的最新文件标识,以及判断所述请求端需要读取的数据的索引包括的所述起始偏移量是否大于所述最新文件标识对应的最新文件中的文件偏移量,并且小于设定的文件大小固定值;若所述请求端需要读取的数据的索引包括的所述文件标识等于所述容灾从机中存在的最新文件标识,并且所述请求端需要读取的数据的索引包括的所述起始偏移量大于所述最新文件标识对应的最新文件中的文件偏移量以及小于所述设定的文件大小固定值,则所述容`灾从机确定所述不存在所述请求端需要读取的数据,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
10.根据权利要求8所述的容灾系统,其特征在于,所述容灾从机根据所述请求端需要读取的数据的索引,在所述容灾从机中不存在所述请求端需要读取的数据的情况下,通知所述容灾主机读取所述请求端需要读取的数据并发送给所述请求端的方式具体为: 所述容灾从机用于判断所述请求端需要读取的数据的索引包括的所述文件标识是否大于所述容灾从机中存在的最新文件标识,以及判断所述请求端需要读取的数据的索引包括的所述起始偏移量是否大于零,并且小于设定的文件大小固定值;若所述请求端需要读取的数据的索引包括的所述文件标识大于所述容灾从机中存在的最新文件标识,并且所述请求端需要读取的数据的索引包括的所述起始偏移量大于零以及小于所述设定的文件大小固定值,则所述容灾从机确定所述不存在所述请求端需要读取的数据,通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端。
11.根据权利要求7~10任一项所述的容灾系统,其特征在于,所述容灾从机通知容灾主机读取所述请求端需要读取的数据并发送给所述请求端的方式具体为: 所述容灾从机用于从所述数据读取请求中提取出所述请求端需要读取的数据的索引,并将所述请求端需要读取的数据的索引和所述请求端地址信息组织成数据请求包;以及根据所述容灾主机的地址信息,将所述数据请求包发送给所述容灾主机; 所述容灾主机用于根据所述数据请求包携带的所述请求端需要读取的数据的索引读取所述请求端需要读取的数据,以及根据所述数据请求包携带的所述请求端地址信息将所述请求端需要读取的数据发送给所述请求端。
12.根据权利要求11所述的容灾系统,其特征在于,还包括: 配置系统,用于存储容灾主机的地址信息; 所述容灾从机,还用于在根据所述容灾主机的地址信息,将所述数据请求包发送给所述容灾主机之前,从 配置系统中获取所述容灾主机的地址信息。
【文档编号】G06F11/14GK103793290SQ201210426045
【公开日】2014年5月14日 申请日期:2012年10月31日 优先权日:2012年10月31日
【发明者】胡鸣人 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1