一种多层关联存储架构的数据同步方法及数据同步系统的制作方法

文档序号:6490679阅读:210来源:国知局
一种多层关联存储架构的数据同步方法及数据同步系统的制作方法
【专利摘要】一种多层关联存储架构的数据同步方法包括:主模块接收外部写操作的请求,将数据写到写缓存,并根据对所述写缓存的写操作记录一个数字序列;当主模块的写缓存数据量达到一阈值,数据从写缓存刷新输出至固态硬盘文件;主模块为刷新输出操作记录一个数字序列;主模块按数字序列中数字的顺序,将写操作与刷新输出操作分别同步给从模块;从模块接收同步的写操作,将主模块的写缓存数据同步到本地写缓存的对应位置;从模块接收到同步的刷新输出操作,将主模块的固态硬盘文件同步到本地固态硬盘文件的对应位置。本发明将写缓存和固态硬盘文件之间的关系解耦,各自同步自己的数据,可保证数据的准确性和一致性。本发明还提供一种多层关联存储架构的数据同步系统。
【专利说明】—种多层关联存储架构的数据同步方法及数据同步系统
【技术领域】
[0001]本发明涉及数据存储领域,尤其涉及一种多层关联存储架构的数据同步方法及数据同步系统。
【背景技术】
[0002]图1所示为现有的一种存储架构及其同步方式的示意图。其中,主模块用于处理外部写请求与读请求,从模块用于从主模块接收同步数据更新,且从模块仅能处理外部读请求。如图1所示,此种同步方式的同步原理是:将服务部署多份,一个主模块,多个从模块;当外部写请求发往主模块时,每来一次外部写请求,主模块记录一个数字序列(sequence),数字序列随着写请求的增加而顺序递增;主模块按照数字序列中数字的顺序,将写操作同步发送给各个从模块;各个从模块接收到主模块发来的写操作时,更新本地数据,并记录本地数据的数字序列;当主模块与从模块两边的数字序列一致时,表示从模块的数据已经是最新。此种同步方式的基本思想是将每次的写操作同步给从模块,从而保证从模块的数据能实时更新,并且与主模块数据一致。
[0003]然而,此种同步方式的设计初衷是为了满足较简单的存储模型,如一层存储以及无关联的多层存储。但若遇到本公司现在采用的多层关联式存储架构(如图2所示),此种同步方式并不适用。
[0004]现在采用的一种存储架构是将数据存储在固态硬盘文件(ssd file),根据固态硬盘的实现原理,在固态硬盘文件之上加了一个写缓存(writebuffer),以提高固态硬盘的写入性能,并最大化的延长固态硬盘使用寿命。在图2所示的存储架构中,数据在固态硬盘文件的存储位置,决定了该数据在写缓存中的存储位置偏移量,数据在写缓存与固态硬盘文件的存储位置必须一一对应。
[0005]如果将图1所示的同步方式应用于图2所示的存储架构中,则会存在如下问题:
[0006](I)数据一致性问题。按照此种同步方式,主模块将写操作按数字序列中数字的顺序同步给从模块后,从模块先写写缓存,当写缓存中的数据量达到规定阈值时,将写缓存中的数据全部刷新输出(flush)到固态硬盘文件。这个过程中,很难保证从模块写写缓存时,每条数据在写缓存的相对位置与主模块相同;另外,当从模块将数据从写缓存刷新输出到固态硬盘文件时,也很难保证刷新输出的数据块在固态硬盘文件中的存储位置与主模块相同,如果在写缓存或固态硬盘文件中任何一个存储位置不与主模块相同,那么此数据将变成无效数据,无法被用户读取到。
[0007](2)设计复杂度问题。如果要解决⑴中的数据准确性问题,同步逻辑的设计将会变得很复杂。

【发明内容】

[0008]有鉴于此,本发明提供一种可保证数据一致性且设计简单的多层关联存储架构的数据同步方法和多层关联存储架构的数据同步系统。[0009]上述的多层关联存储架构的数据同步方法和多层关联存储架构的数据同步系统是通过以下技术方案实现的:
[0010]一种多层关联存储架构的数据同步方法,包括:主模块接收外部写操作的请求,将数据写到写缓存,并根据所述主模块对所述写缓存的写操作记录一第一数字序列;当主模块的写缓存数据量达到一阈值时,数据从写缓存刷新输出至固态硬盘文件,输出时数据在固态硬盘文件的存储位置与在写缓存中的存储位置一一对应;主模块为刷新输出操作记录一第二数字序列;主模块根据第一数字序列中数字的顺序将写操作同步给从模块,并根据第二数字序列中数字的顺序将刷新输出操作同步给从模块;从模块接收到同步的写操作时,将主模块的写缓存数据同步到本地写缓存的对应位置;从模块接收到同步的刷新输出操作时,将主模块的固态硬盘文件同步到本地固态硬盘文件的对应位置。
[0011]一种多层关联存储架构的数据同步系统,多层关联存储架构的数据同步系统,包括:主模块,用于处理外部写操作的请求与读请求;从模块,用于处理外部读请求;主模块写缓存,用于缓存外部写操作的请求;主模块固态硬盘文件,用于在写缓存的数据量达到一阈值时,接收由写缓存刷新输出的数据;从模块写缓存,用于接收主模块写缓存的同步数据;从模块固态硬盘文件,用于接收主模块固态硬盘文件的同步数据;其中,从模块写缓存和从模块固态硬盘文件对数据的同步是分开进行的。
[0012]综上所述,本发明至少具有如下优点:
[0013](I)能保证数据的一致性。主模块将写缓存的数据同步到从模块的写缓存,将固态硬盘文件数据同步到从模块的固态硬盘文件,保证了在从模块中,数据在写缓存和固态硬盘文件都能存储 到正确位置,从而数据同步的一致性和准确性。
[0014](2)设计简单,提高了系统的可靠性。同步时,写缓存和固态硬盘文件之间的关系被解耦,各自同步自己的数据,不用再关心写缓存和固态硬盘文件中数据的存储位置是否
--对应。
[0015]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【专利附图】

【附图说明】
[0016]图1所示为现有的一种存储架构及其同步方式的示意图。
[0017]图2所示为现在采用的一种存储架构的示意图。
[0018]图3所示为本发明所揭示的多层关联存储架构的数据同步方法的流程图。
[0019]图4所示为本发明所揭示的多层关联存储架构的数据同步系统的架构及同步方式的示意图。
【具体实施方式】
[0020]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的多层关联存储架构的数据同步方法及多层关联存储架构的数据同步系统的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0021]图3所示为本发明所揭示的多层关联存储架构的数据同步方法的流程图。如图3所示,本发明所揭示的多层关联存储架构的数据同步方法包括如下步骤:[0022]SlOl:主模块接收外部写操作的请求,将数据写到写缓存(writebuffer),并根据对所述写缓存的写操作记录一第一数字序列(sequence);
[0023]S102:当主模块的写缓存数据量达到一阈值,数据从写缓存刷新输出(flush)至固态硬盘文件(ssd file),输出时须保证数据在固态硬盘文件的存储位置与在写缓存中的存储位置对应;
[0024]S103:主模块为刷新输出操作记录一第二数字序列;
[0025]S104:主模块根据第一数字序列中数字的顺序将写操作同步给从模块,并根据第二数字序列中数字的顺序将刷新输出操作同步给从模块;
[0026]S105:从模块接收到同步的写操作时,将主模块的写缓存数据同步到本地写缓存的对应位置;
[0027]S106:从模块接收到同步的刷新输出操作时,将主模块的固态硬盘文件同步到本地固态硬盘文件的对应位置。
[0028]其中,所述主模块用于处理外部写操作的请求与读请求,所述从模块用于从主模块接收同步数据更新,且所述从模块仅能处理外部读请求。
[0029]进一步地,所述数据同步方法还包括:
[0030]写缓存接收主模块写入的数据,并将写入的数据以4k为单位整理成N个数据块;
[0031]当主模块的写缓存数据量达到所述阈值,数据从写缓存刷新输出至固态硬盘文件时,将输出的数据以所述的数据块为单位输出。
·[0032]具体的,所述的阈值为4k的M倍,M为大于或等于N的整数。
[0033]综上所述,本发明的多层关联存储架构的数据同步方法至少具有如下优点:
[0034](I)能保证数据的准确性。主模块将写缓存的数据同步到从模块的写缓存,将固态硬盘文件数据同步到从模块的固态硬盘文件,保证了在从模块中,数据在写缓存和固态硬盘文件都能存储到正确位置,从而保证了数据同步的一致性和准确性。
[0035](2)设计简单,提高了系统的可靠性。同步时,写缓存和固态硬盘文件之间的关系被解耦,各自同步自己的数据,不用再关心写缓存和固态硬盘文件中数据的存储位置是否--对应。
[0036]图4所示为本发明所揭示的多层关联存储架构的数据同步系统的架构及同步方式的示意图。如图4所示,本发明的多层关联存储架构的数据同步系统,包括:
[0037]主模块201,用于处理外部写操作的请求与读请求;
[0038]从模块301,用于处理外部读请求;
[0039]主模块写缓存202,用于缓存外部写操作的请求;
[0040]主模块固态硬盘文件203,用于在写缓存的数据量达到一阈值时,接收由写缓存刷新输出的数据,数据在主模块固态硬盘文件203中的存储位置与在主模块写缓存202中的存储位置对应;
[0041]从模块写缓存302,用于接收主模块写缓存202的同步数据;
[0042]从模块固态硬盘文件303,用于接收主模块固态硬盘文件203的同步数据;
[0043]其中,从模块写缓存302和从模块固态硬盘文件303对数据的同步是分开进行的。
[0044]进一步地,主模块201还用于在外部写操作的请求写入写缓存202时,根据对写缓存202的写操作记录一第一数字序列,并根据该数字序列中数字的顺序将写操作同步给从模块301,从模块写缓存302是在从模块301接收到同步的写操作时才进行数据的同步。
[0045]进一步地,主模块201还用于在主模块写缓存202的数据刷新输出至主模块固态硬盘文件203时,根据该刷新输出操作记录一第二数字序列,并根据该数字序列中数字的顺序将刷新输出操作同步给从模块301,从模块固态硬盘文件303是在从模块301接收到同步的刷新输出操作时才进行数据的同步。
[0046]进一步地,主模块写缓存202还用于在接收主模块201写入的数据时,将写入的数据以4k为单位整理成N个数据块,当数据从主模块写缓存202刷新输出至主模块固态硬盘文件203时,输出的数据即以所述的数据块为单位输出。
[0047]具体的,所述的阈值为4k的M倍,其中M为大于或等于N的整数。
[0048]综上所述,本发明的多层关联存储架构的数据同步系统至少具有如下优点:
[0049](I)能保证数据的准确性。主模块将写缓存的数据同步到从模块的写缓存,将固态硬盘文件数据同步到从模块的固态硬盘文件,保证了在从模块中,数据在写缓存和固态硬盘文件都能存储到正确位置,从而保证了数据同步一致性和准确性。
[0050](2)设计简单,提高了系统的可靠性。同步时,写缓存和固态硬盘文件之间的关系被解耦,各自同步自己的数据,不用再关心写缓存和固态硬盘文件中数据的存储位置是否--对应。
[0051]需要说明的是,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪 存。
[0052]该计算机可执行指令用于使计算机进行以下操作:主模块接收外部写操作的请求,将数据写到写缓存,并根据外部对所述写缓存的写操作请求记录一第一数字序列;当主模块的写缓存数据量达到一阈值时,数据从写缓存刷新输出至固态硬盘文件;主模块为刷新输出操作记录一第二数字序列;主模块按第一数字序列和第二数字序列中数字的顺序,将写操作与刷新输出操作分别同步给从模块;从模块接收到同步的写操作时,将主模块的写缓存数据同步到本地写缓存的对应位置;从模块接收到同步的刷新输出操作时,将主模块的固态硬盘文件同步到本地固态硬盘文件的对应位置。
[0053]进一步地,该计算机可执行指令还可用于使计算机进行以下操作:写缓存接收主模块写入的数据,并将写入的数据以4k为单位整理成N个数据块;
[0054]当数据从写缓存刷新输出至固态硬盘文件时,将输出的数据以所述的数据块为单位输出。
[0055]藉由上述指令,本发明将写缓存和固态硬盘文件之间的关系解耦,各自同步自己的数据,可保证数据的准确性和一致性,以及同步处理的简单性,并提高了系统的可靠性。
[0056]以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1.一种多层关联存储架构的数据同步方法,包括: 主模块接收外部写操作的请求,将数据写到写缓存,并根据对所述写缓存的写操作记录一第一数字序列; 当主模块的写缓存数据量达到一阈值时,数据从写缓存刷新输出至固态硬盘文件,输出时数据在固态硬盘文件的存储位置与在写缓存中的存储位置一一对应; 主模块为刷新输出操作记录一第二数字序列; 主模块根据第一数字序列中数字的顺序将写操作同步给从模块,并根据第二数字序列中数字的顺序将刷新输出操作同步给从模块; 从模块接收到同步的写操作时,将主模块的写缓存数据同步到本地写缓存的对应位置; 从模块接收到同步的刷新输出操作时,将主模块的固态硬盘文件同步到本地固态硬盘文件的对应位置。
2.如权利要求1所述的多层关联存储架构的数据同步方法,其特征在于,所述主模块用于处理外部写操作的请求与读请求,所述从模块用于从主模块接收同步数据更新,且所述从模块仅能处理外部读请求。
3.如权利要求1所述的多层关联存储架构的数据同步方法,其特征在于,所述数据同步方法还包括: 写缓存接收主模块写入的数据,并将写入的数据以4k为单位整理成N个数据块;` 当数据从写缓存刷新输出至固态硬盘文件时,将输出的数据以所述的数据块为单位输出。
4.如权利要求3所述的多层关联存储架构的数据同步方法,其特征在于,所述的阈值为4k的M倍,其中M为大于或等于N的整数。
5.一种多层关联存储架构的数据同步系统,包括: 主模块,用于处理外部写操作的请求与读请求; 从模块,用于处理外部读请求; 主模块写缓存,用于缓存外部写操作的请求; 主模块固态硬盘文件,用于在写缓存的数据量达到一阈值时,接收由写缓存刷新输出的数据; 从模块写缓存,用于接收主模块写缓存的同步数据; 从模块固态硬盘文件,用于接收主模块固态硬盘文件的同步数据; 其特征在于,从模块写缓存和从模块固态硬盘文件对数据的同步是分开进行的。
6.如权利要求5所述的多层关联存储架构的数据同步系统,其特征在于,主模块还用于在外部写操作的请求写入主模块写缓存时,根据该外部写操作的请求记录一第一数字序列,并根据该第一数字序列中数字的顺序将写操作同步给从模块,从模块写缓存是在从模块接收到同步的写操作时才进行数据的同步。
7.如权利要求5所述的多层关联存储架构的数据同步系统,其特征在于,主模块还用于在主模块写缓存的数据刷新输出至主模块固态硬盘文件时,根据该刷新输出操作记录一第二数字序列,并根据该第二数字序列中数字的顺序将刷新输出操作同步给从模块,从模块固态硬盘文件是在从模块接收到同步的刷新输出操作时才进行数据的同步。
8.如权利要求5所述的多层关联存储架构的数据同步系统,其特征在于,主模块写缓存还用于在接收主模块写入的数据时,将写入的数据以4k为单位整理成N个数据块,当数据从主模块写缓存刷新输出至主模块固态硬盘文件时,输出的数据即以所述的数据块为单位输出。
9.如权利要求8所述的多层关联存储架构的数据同步系统,其特征在于,所述的阈值为4k的M倍,其中M为大于或等于N`的整数。
【文档编号】G06F3/06GK103793181SQ201210435819
【公开日】2014年5月14日 申请日期:2012年11月5日 优先权日:2012年11月5日
【发明者】舒军, 田明, 黄利华 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1