元数据的恢复方法和系统技术方案

技术编号:9007735 阅读:160 留言:0更新日期:2013-08-08 02:43
本发明专利技术公开了一种元数据的恢复方法和系统,其中,该方法包括:根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。本发明专利技术通过执行事务的方式恢复数据能使需要恢复数据的节点准确地接收完整的数据,并且通过使用最终的操作事务替代中间操作事务的方法,从而实现不重复执行对应于同一数据的多个事务来减少数据的恢复时间,保证了数据的恢复质量和恢复进度,从而提高系统的稳定性和可靠性。

【技术实现步骤摘要】
元数据的恢复方法和系统
本专利技术涉及计算机领域,并且特别地,涉及一种元数据的恢复方法和系统。
技术介绍
分布式系统中通常采用元数据和数据分别存储的方法,对于分布式文件系统中的元数据,通常采用写多份的方法来进行备份,采取这样的方案可以获得两个益处:一、提高了系统的可靠性,二、减少了由于某个元数据节点异常而减少数据的计算。若由于整个系统的磁盘发生故障而导致元数据节点不可用,则当元数据节点重新上线后,会对刚上线的元数据节点进行数据重构(即本文所说的数据恢复)来使其和其他的元数据节点达到一致。如何使元数据节点可以快速地提供用于负载均衡的业务,是当前研究的热点和难点问题。在异常的元数据节点将节点的存储单元格式化后,重新再上线时,系统应处于恢复状态,这个状态有以下三个特点:一、系统仍然能正常提供业务;二、系统要对重新上线的元数据节点进行数据重构;三、对于已经重构完成的数据可以负载均衡进行访问。由于恢复状态是不稳定的过渡状态,若在过渡状态下发生异常,会导致系统崩溃。因此,当出现这种情况时,恢复时间与系统的可靠性成反比,即:系统的恢复时间越长,系统的可靠性越低。传统的元数据重构的方法是先创建恢复事务,然后将新增加的事务都记录在日志中,当恢复事务完成后,再将增量事务全部同步到已经执行完重构事务的节点中。按这种线性的从头到尾地进行遍历的方法进行重构,重构的时间会比较长,同时,在重构的过程中,不能负载均衡进行读访问。针对相关技术中数据恢复时间过长,导致系统不稳定的问题,目前尚未提出有效的解决方案。
技术实现思路
针对相关技术中数据恢复时间过长,导致系统不稳定的问题,本专利技术提出一种元数据的恢复方法和系统,能够不重复执行对应于同一数据的事务来减少数据的恢复时间,从而提高系统的稳定性和可靠性,本专利技术的技术方案是这样实现的:根据本专利技术的一个方面,提供了一种元数据的恢复方法。该元数据的恢复方法包括:根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。其中,根据需要恢复的数据创建事务包括:扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识;根据扫描到的文件标识创建事务。而且,在执行创建的事务时,如果需要恢复的数据所对应的文件位于一个文件夹,则先在需要恢复的节点创建文件夹,再执行创建的事务以在该创建的文件夹中恢复数据。并且,通过执行创建的事务以恢复数据包括:并发执行创建的事务以恢复数据。进一步地,保存创建的事务对应的事务标记包括:设置事务标记的状态为初始化;并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。此外,该元数据的恢复方法进一步包括:从创建的事务中,将状态显示为完成的事务标记删除,并且允许该事务对应的数据提供读写服务。并且,在并发执行恢复事务时,该元数据的恢复方法进一步包括:如果出现的新操作与已创建的事务所对应的数据不同,则直接将该新操作对应的数据发送至需要恢复的节点。可选地,通过hash表保存创建的事务对应的事务标记。根据本专利技术的一个方面,提供了一种元数据的恢复系统。该元数据的恢复系统包括:创建模块,用于根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;执行模块,用于通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。并且,该元数据的恢复系统还包括:设置模块,用于在保存创建的所述事务对应的事务标记时,设置事务标记的状态为初始化,并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。本专利技术通过执行事务的方式恢复数据能使需要恢复数据的节点准确地接收完整的数据,并且通过使用最终的操作事务替代中间操作事务的方法,从而实现不重复执行对应于同一数据的多个事务来减少数据的恢复时间,保证了数据的恢复质量和恢复进度,从而提高系统的稳定性和可靠性。附图说明图1是根据本专利技术实施例的元数据的恢复方法的流程图;图2是根据本专利技术实施例的元数据恢复系统的框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。根据本专利技术的实施例,提供了一种元数据的恢复方法。根据本专利技术实施例的元数据恢复方法的思想可以表述为:在对需要恢复的元数据作重构时,按照一定的规则对需要恢复的数据进行标识(例如,可以对数据对应的文件进行编号),使得恢复数据的事务能够并发执行,同时,执行完毕一个恢复事务之后,该恢复事务所对应的已经恢复好的元数据盘可以提供正常的数据读写功能,其中,元数据盘表示一个恢复单元,例如,以文件为恢复单元的时候,则一个元数据盘表示一个文件。同时,对元数据进行读操作的时候,也可以读正在重构中,但需要读的部分已经恢复好的数据,通过这种方案的思想,可以提供负载均衡业务。如图1所示,根据本专利技术实施例的元数据的恢复方法包括:步骤S101,根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;步骤S103,通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。并且,在执行创建的事务时通过并发执行创建的事务以恢复数据。在并发执行恢复事务时,在根据本专利技术实施例的元数据的恢复方法中,如果出现的新操作与已创建的事务所对应的数据不同,则直接将该新操作对应的数据发送至需要恢复的节点。在恢复的过程中,若出现对正在恢复的数据进行操作的事务,则将该操作事务所对应的事务标记记录到hash表中对应的恢复事务项中。若hash表中已有对相同的对象和位置进行操作的事务,则用新的事务标记替换原来的事务标记。当恢复事务执行完毕后,再将hash表中存在的事务标记为初始值所对应的事务同步到新节点中,若有新的事务来访问,再把新事务的事务标记加入到hash表中,如此循环,直到完成,完成后,置hash表中事务状态为完成。以后每次出现对hash表中状态为完成的事务的操作,都会将操作对应的事务发向正在重构的节点。可选地,可以通过hash表保存创建的事务对应的事务标记。进一步地,在保存创建的事务对应的事务标记时,可以设置事务标记的状态为初始化;并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。其中,在根据需要恢复的数据创建事务时,可以扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识,根据扫描到的文件标识创建事务。对需要重构的数据以文件为单位进行恢复事务的创建(即,一个文件创建一个对应的恢复事务)。在创建恢复事务的同时,也对每一个恢复事务创建对应的hash表。创建一个恢复事务时,将事务标记插入hash表,并在hash表中将恢复事务的状态置为INIT(初始值),其中,事务标记是事务号或事务地址等可以寻址到事务的标记。本文档来自技高网...
元数据的恢复方法和系统

【技术保护点】
一种元数据的恢复方法,其特征在于,包括:根据需要恢复的数据创建事务,并保存创建的所述事务对应的事务标记;通过执行创建的事务以恢复数据,其中,如果对于已创建的所述事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。

【技术特征摘要】
1.一种元数据的恢复方法,其特征在于,包括:根据需要恢复的数据创建事务,并保存创建的所述事务对应的事务标记;通过执行创建的事务以恢复数据,其中,如果对于已创建的所述事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记;保存创建的所述事务对应的事务标记包括:设置所述事务标记的状态为初始化;并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。2.根据权利要求1所述的恢复方法,其特征在于,根据需要恢复的数据创建事务包括:扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识;根据扫描到的所述文件标识创建事务。3.根据权利要求2所述的恢复方法,其特征在于,在执行创建的事务时,如果需要恢复的数据所对应的文件位于一个文件夹,则先在需要恢复的节点创建文件夹,再执行创建的事务以在该创建的文件夹中恢复数据。4.根据权利要求1所述的恢复方法,其特征在于,通过执行创建的事务以恢复数据包括:并发执行创建的事务以恢复数据。5.根...

【专利技术属性】
技术研发人员:李博张玉龙张东阳苗艳超刘新春邵宗有
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1