CN103235747A - 元数据的恢复方法和系统 - Google Patents
元数据的恢复方法和系统 Download PDFInfo
- Publication number
- CN103235747A CN103235747A CN2013101455688A CN201310145568A CN103235747A CN 103235747 A CN103235747 A CN 103235747A CN 2013101455688 A CN2013101455688 A CN 2013101455688A CN 201310145568 A CN201310145568 A CN 201310145568A CN 103235747 A CN103235747 A CN 103235747A
- Authority
- CN
- China
- Prior art keywords
- affairs
- data
- transaction tag
- creating
- correspondence
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元数据的恢复方法和系统,其中,该方法包括:根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。本发明通过执行事务的方式恢复数据能使需要恢复数据的节点准确地接收完整的数据,并且通过使用最终的操作事务替代中间操作事务的方法,从而实现不重复执行对应于同一数据的多个事务来减少数据的恢复时间,保证了数据的恢复质量和恢复进度,从而提高系统的稳定性和可靠性。
Description
技术领域
本发明涉及计算机领域,并且特别地,涉及一种元数据的恢复方法和系统。
背景技术
分布式系统中通常采用元数据和数据分别存储的方法,对于分布式文件系统中的元数据,通常采用写多份的方法来进行备份,采取这样的方案可以获得两个益处:一、提高了系统的可靠性,二、减少了由于某个元数据节点异常而减少数据的计算。若由于整个系统的磁盘发生故障而导致元数据节点不可用,则当元数据节点重新上线后,会对刚上线的元数据节点进行数据重构(即本文所说的数据恢复)来使其和其他的元数据节点达到一致。如何使元数据节点可以快速地提供用于负载均衡的业务,是当前研究的热点和难点问题。
在异常的元数据节点将节点的存储单元格式化后,重新再上线时,系统应处于恢复状态,这个状态有以下三个特点:一、系统仍然能正常提供业务;二、系统要对重新上线的元数据节点进行数据重构;三、对于已经重构完成的数据可以负载均衡进行访问。由于恢复状态是不稳定的过渡状态,若在过渡状态下发生异常,会导致系统崩溃。因此,当出现这种情况时,恢复时间与系统的可靠性成反比,即:系统的恢复时间越长,系统的可靠性越低。
传统的元数据重构的方法是先创建恢复事务,然后将新增加的事务都记录在日志中,当恢复事务完成后,再将增量事务全部同步到已经执行完重构事务的节点中。
按这种线性的从头到尾地进行遍历的方法进行重构,重构的时间会比较长,同时,在重构的过程中,不能负载均衡进行读访问。
针对相关技术中数据恢复时间过长,导致系统不稳定的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中数据恢复时间过长,导致系统不稳定的问题,本发明提出一种元数据的恢复方法和系统,能够不重复执行对应于同一数据的事务来减少数据的恢复时间,从而提高系统的稳定性和可靠性,
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种元数据的恢复方法。
该元数据的恢复方法包括:
根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;
通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
其中,根据需要恢复的数据创建事务包括:
扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识;
根据扫描到的文件标识创建事务。
而且,在执行创建的事务时,如果需要恢复的数据所对应的文件位于一个文件夹,则先在需要恢复的节点创建文件夹,再执行创建的事务以在该创建的文件夹中恢复数据。
并且,通过执行创建的事务以恢复数据包括:
并发执行创建的事务以恢复数据。
进一步地,保存创建的事务对应的事务标记包括:
设置事务标记的状态为初始化;
并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
此外,该元数据的恢复方法进一步包括:
从创建的事务中,将状态显示为完成的事务标记删除,并且允许该事务对应的数据提供读写服务。
并且,在并发执行恢复事务时,该元数据的恢复方法进一步包括:
如果出现的新操作与已创建的事务所对应的数据不同,则直接将该新操作对应的数据发送至需要恢复的节点。
可选地,通过hash表保存创建的事务对应的事务标记。
根据本发明的一个方面,提供了一种元数据的恢复系统。
该元数据的恢复系统包括:
创建模块,用于根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;
执行模块,用于通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
并且,该元数据的恢复系统还包括:
设置模块,用于在保存创建的所述事务对应的事务标记时,设置事务标记的状态为初始化,并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
本发明通过执行事务的方式恢复数据能使需要恢复数据的节点准确地接收完整的数据,并且通过使用最终的操作事务替代中间操作事务的方法,从而实现不重复执行对应于同一数据的多个事务来减少数据的恢复时间,保证了数据的恢复质量和恢复进度,从而提高系统的稳定性和可靠性。
附图说明
图1是根据本发明实施例的元数据的恢复方法的流程图;
图2是根据本发明实施例的元数据恢复系统的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种元数据的恢复方法。
根据本发明实施例的元数据恢复方法的思想可以表述为:在对需要恢复的元数据作重构时,按照一定的规则对需要恢复的数据进行标识(例如,可以对数据对应的文件进行编号),使得恢复数据的事务能够并发执行,同时,执行完毕一个恢复事务之后,该恢复事务所对应的已经恢复好的元数据盘可以提供正常的数据读写功能,其中,元数据盘表示一个恢复单元,例如,以文件为恢复单元的时候,则一个元数据盘表示一个文件。同时,对元数据进行读操作的时候,也可以读正在重构中,但需要读的部分已经恢复好的数据,通过这种方案的思想,可以提供负载均衡业务。
如图1所示,根据本发明实施例的元数据的恢复方法包括:
步骤S101,根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;
步骤S103,通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
并且,在执行创建的事务时通过并发执行创建的事务以恢复数据。
在并发执行恢复事务时,在根据本发明实施例的元数据的恢复方法中,如果出现的新操作与已创建的事务所对应的数据不同,则直接将该新操作对应的数据发送至需要恢复的节点。
在恢复的过程中,若出现对正在恢复的数据进行操作的事务,则将该操作事务所对应的事务标记记录到hash表中对应的恢复事务项中。若hash表中已有对相同的对象和位置进行操作的事务,则用新的事务标记替换原来的事务标记。当恢复事务执行完毕后,再将hash表中存在的事务标记为初始值所对应的事务同步到新节点中,若有新的事务来访问,再把新事务的事务标记加入到hash表中,如此循环,直到完成,完成后,置hash表中事务状态为完成。以后每次出现对hash表中状态为完成的事务的操作,都会将操作对应的事务发向正在重构的节点。
可选地,可以通过hash表保存创建的事务对应的事务标记。
进一步地,在保存创建的事务对应的事务标记时,可以设置事务标记的状态为初始化;并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
其中,在根据需要恢复的数据创建事务时,可以扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识,根据扫描到的文件标识创建事务。
对需要重构的数据以文件为单位进行恢复事务的创建(即,一个文件创建一个对应的恢复事务)。在创建恢复事务的同时,也对每一个恢复事务创建对应的hash表。创建一个恢复事务时,将事务标记插入hash表,并在hash表中将恢复事务的状态置为INIT(初始值),其中,事务标记是事务号或事务地址等可以寻址到事务的标记。
其中,创建重构事务的方法包括:扫描文件系统,将所有的文件编号,扫描顺序是先扫描根目录,用栈(先进后出)的方式将文件遍历一遍,若此时有新的文件夹加入,也对新加入的文件夹进行扫描。
在恢复事务创建完成之后,对全部恢复事务进行并发执行,由于恢复事务是以文件为单位进行划分,因此,恢复事务之间没有交集。通过这个步骤可以提高恢复速度。在恢复事务的执行过程中,由于存储在内存中的数据是最新的,因此优先从内存读取恢复事务所对应的数据。当有新的操作到来时,将该操作所对应事务的事务标记记录到对应的hash表中。
而且,在执行创建的事务时,如果需要恢复的数据所对应的文件位于一个文件夹,则先在需要恢复的节点创建文件夹,再执行创建的事务以在该创建的文件夹中恢复数据。换言之,若恢复事务的类型为文件夹,则要对文件夹进行串行恢复处理,包括:在执行同一个文件夹中的文件所对应的恢复事务时,首先在需要恢复的节点中建立相同的文件夹之后再执行恢复事务,以使同一个文件夹中的文件恢复到需要数据恢复的节点的同一个文件夹内,以防止乱序恢复的问题,同时确保数据恢复的一致性。
执行一个恢复事务,首先要清理hash表中该恢复事务所对应的hash表中的操作事务的事务标记,并进行恢复,若恢复完成,则置hash表中此事务的状态为完成(即需要数据恢复的节点和原节点的数据完全一致了),当出现新的对恢复事务对应的对象进行操作时,在保存到正常工作的元数据服务器上的同时,也会将新操作所对应的数据直接保存到已经恢复好的元数据服务器中。即,当操作的数据不在恢复hash表的事务标记所对应事务对象中,表明此文件是新增的文件,直接发向对方,不在hash表中添加此对象的对应标记。
此外,根据本发明实施例的元数据恢复方法可以进一步包括,在事务恢复完成后,清理hash表中的事务标记,即从创建的事务中,将状态显示为完成的事务标记删除,从而节省存储空间。并且将hash表中所有显示不是为完成的事务标记所对应的事务完成,此外,允许该事务对应的数据提供读写服务,以提供均衡负载的业务。在执行完成恢复事务之后,完成整个元数据盘的重构过程,即系统达到稳定状态,两个节点都处于正常工作状态。
在根据本发明实施例的元数据恢复方法中,若在重构过程中主节点发生异常,当主节点重新上线后,根据恢复日志,创建hash表,并将未完成的差额事务添加到对应的hash表项中,忽略标记为完成的恢复事务。
此外,在恢复过程中如果发生异常重启,则可能存在以下情况:
情况1,单个恢复事务已经完成,hash表不接收新的操作事务的事务标记,而是由正常运行的节点直接将操作事务发送到正在恢复的节点上;
情况2,恢复事务未完成,将操作事务的事务标记记录到hash表中,恢复完成后,再将操作事务同步到恢复节点上;
情况3,未做的恢复事务,将操作事务挂在hash表中,恢复时,以新来的操作事务的标记替代hash表中已有事务的事务标记,以使不对数据进行重复的操作。
根据本发明的实施例,提供了一种元数据的恢复系统。
如图2所示,根据本发明实施例的元数据恢复系统包括:
创建模块21,用于根据需要恢复的数据创建事务,并保存创建的事务对应的事务标记;
执行模块22,用于通过执行创建的事务以恢复数据,其中,如果对于已创建的事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
此外,根据本发明实施例的元数据恢复系统还包括:
设置模块(未示出),用于在保存创建的事务对应的事务标记时设置事务标记的状态为初始化,并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
综上所述,借助于本发明的上述技术方案,本发明通过执行事务的方式恢复数据能使需要恢复数据的节点准确地接收完整的数据,并且通过使用最终的操作事务替代中间操作事务的方法,从而实现不重复执行对应于同一数据的多个事务来减少数据的恢复时间,保证了数据的恢复质量和恢复进度,从而提高系统的稳定性和可靠性。此外,在恢复过程中,允许已经恢复完成的数据单元提供读写服务,有助于均衡负载。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种元数据的恢复方法,其特征在于,包括:
根据需要恢复的数据创建事务,并保存创建的所述事务对应的事务标记;
通过执行创建的事务以恢复数据,其中,如果对于已创建的所述事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
2.根据权利要求1所述的恢复方法,其特征在于,根据需要恢复的数据创建事务包括:
扫描需要恢复的数据,以栈的方式扫描需要恢复的数据所对应文件的文件标识;
根据扫描到的所述文件标识创建事务。
3.根据权利要求2所述的恢复方法,其特征在于,在执行创建的事务时,如果需要恢复的数据所对应的文件位于一个文件夹,则先在需要恢复的节点创建文件夹,再执行创建的事务以在该创建的文件夹中恢复数据。
4.根据权利要求1所述的恢复方法,其特征在于,通过执行创建的事务以恢复数据包括:
并发执行创建的事务以恢复数据。
5.根据权利要求1所述的恢复方法,其特征在于,保存创建的所述事务对应的事务标记包括:
设置所述事务标记的状态为初始化;
并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
6.根据权利要求5所述的恢复方法,其特征在于,进一步包括:
从创建的所述事务中,将状态显示为完成的事务标记删除,并且允许该事务对应的数据提供读写服务。
7.根据权利要求1所述的恢复方法,其特征在于,在并发执行所述恢复事务时,进一步包括:
如果出现的新操作与已创建的所述事务所对应的数据不同,则直接将该新操作对应的数据发送至需要恢复的节点。
8.根据权利要求1-7中任一项所述的恢复方法,其特征在于,通过hash表保存创建的所述事务对应的事务标记。
9.一种元数据的恢复系统,其特征在于,包括:
创建模块,用于根据需要恢复的数据创建事务,并保存创建的所述事务对应的事务标记;
执行模块,用于通过执行创建的事务以恢复数据,其中,如果对于已创建的所述事务所对应的数据出现新的操作,则利用该新的操作所对应事务的事务标记替换该数据对应的原事务的事务标记。
10.根据权利要求9所述的恢复系统,其特征在于,还包括:
设置模块,用于在保存创建的所述事务对应的事务标记时,设置所述事务标记的状态为初始化,并且,在通过执行创建的事务以恢复数据过程中,将已执行事务的事务标记的状态设置为完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310145568.8A CN103235747B (zh) | 2013-04-24 | 2013-04-24 | 元数据的恢复方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310145568.8A CN103235747B (zh) | 2013-04-24 | 2013-04-24 | 元数据的恢复方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103235747A true CN103235747A (zh) | 2013-08-07 |
CN103235747B CN103235747B (zh) | 2016-12-28 |
Family
ID=48883792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310145568.8A Active CN103235747B (zh) | 2013-04-24 | 2013-04-24 | 元数据的恢复方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235747B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634394A (zh) * | 2013-11-28 | 2014-03-12 | 中国科学院信息工程研究所 | 一种面向数据流处理的弹性可扩展资源管理方法及系统 |
CN104951306A (zh) * | 2015-06-17 | 2015-09-30 | 深圳市腾讯计算机系统有限公司 | 基于实时计算框架的数据处理方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1365056A (zh) * | 2000-08-30 | 2002-08-21 | 国际商业机器公司 | 用于支持数据事务的设备和方法 |
US20080040717A1 (en) * | 2006-08-12 | 2008-02-14 | Hobson Steve J | Method, Apparatus and Computer Program Product for Transaction Recovery |
CN101567805A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统发生故障后的恢复方法 |
-
2013
- 2013-04-24 CN CN201310145568.8A patent/CN103235747B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1365056A (zh) * | 2000-08-30 | 2002-08-21 | 国际商业机器公司 | 用于支持数据事务的设备和方法 |
US20080040717A1 (en) * | 2006-08-12 | 2008-02-14 | Hobson Steve J | Method, Apparatus and Computer Program Product for Transaction Recovery |
CN101567805A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统发生故障后的恢复方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634394A (zh) * | 2013-11-28 | 2014-03-12 | 中国科学院信息工程研究所 | 一种面向数据流处理的弹性可扩展资源管理方法及系统 |
CN104951306A (zh) * | 2015-06-17 | 2015-09-30 | 深圳市腾讯计算机系统有限公司 | 基于实时计算框架的数据处理方法和系统 |
CN104951306B (zh) * | 2015-06-17 | 2018-03-20 | 深圳市腾讯计算机系统有限公司 | 基于实时计算框架的数据处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103235747B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943777B (zh) | 一种协同编辑、协同处理方法、装置、设备及存储介质 | |
US9619512B2 (en) | Memory searching system and method, real-time searching system and method, and computer storage medium | |
CN102779180B (zh) | 数据存储系统的操作处理方法,数据存储系统 | |
CN103780638B (zh) | 数据同步方法及系统 | |
US9817588B2 (en) | Memory device and operating method of same | |
CN104378423B (zh) | 元数据集群分布式存储系统及读取、写入存储数据的方法 | |
CN102891849B (zh) | 业务数据同步方法、恢复方法及装置和网络设备 | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
CN104657500A (zh) | 一种基于key-value键值对的分布式存储方法 | |
KR20100070968A (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
CN102811260B (zh) | 文件云同步系统及方法 | |
CN102272751B (zh) | 在数据库环境通过背景同步的数据完整性 | |
CN103838830A (zh) | 一种HBase数据库的数据管理方法及系统 | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN102402562A (zh) | 数据库异地容灾方法及系统 | |
CN102314503A (zh) | 一种索引方法 | |
CN102053879A (zh) | 基于falsh的自恢复实时文件系统 | |
CN102279846A (zh) | 文章辅助写作系统及其方法 | |
CN103856516A (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN106155838B (zh) | 一种数据库备份数据恢复方法及装置 | |
CN106201778B (zh) | 信息处理方法及存储设备 | |
CN102521114A (zh) | 一种虚拟化环境下的文件系统日志存储系统 | |
CN103473258A (zh) | 云存储文件系统 | |
CN103106200A (zh) | 非关系型数据库同步系统及双写同步方法 | |
CN106027638A (zh) | 一种基于混合编码的hadoop数据分发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220726 Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |