CN112307022A - 一种元数据修复方法及相关装置 - Google Patents
一种元数据修复方法及相关装置 Download PDFInfo
- Publication number
- CN112307022A CN112307022A CN202011165301.1A CN202011165301A CN112307022A CN 112307022 A CN112307022 A CN 112307022A CN 202011165301 A CN202011165301 A CN 202011165301A CN 112307022 A CN112307022 A CN 112307022A
- Authority
- CN
- China
- Prior art keywords
- tree
- metadata
- reconstructed
- bitmap
- trees
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 77
- 230000008439 repair process Effects 0.000 claims abstract description 72
- 238000012795 verification Methods 0.000 claims abstract description 39
- 238000011084 recovery Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种元数据修复方法,包括:获取元数据中失效节点对应的第一树的关键字范围;根据关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;对所有第二树进行校验处理;当所有第二树的校验处理通过时,将重建树添加至元数据中,以便实现元数据修复处理;当所有第二树的校验处理不通过时,根据第一树的位图数据对重建树进行修复处理得到位图重建树,将位图重建树添加至元数据中,以便实现元数据修复处理。实现了对元数据进行修复,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。本申请还公开了一种元数据修复装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种元数据修复方法、元数据修复装置、服务器以及计算机可读存储介质。
背景技术
在计算机存储技术中,通常采用元数据对存储的数据进行相应的管理。其中,元数据,又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。目前,常用B+树存储元数据信息。其中,B+树是一种数据结构,是一个n叉树,每个节点通常有多个孩子,一棵B+树包含根节点、中间节点和叶子节点。B+树通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。
在元数据的相关技术中,在硬盘中的存储方式是按照B+树的节点进行存储,节点大小固定为512字节。在进行查找、落盘和删卷等场景下需要进行读盘操作时,为了保证数据一致性,读出来的数据会对齐进行CRC(Cyclic Redundancy Check,循环容易校验)等校验。但是,在使用过程中如果从盘中读取的某个节点出现CRC校验错误则会上报CRC告警、同时通知该节点所属池离线,从而会中断系统业务。导致业务系统被中断,影响业务的正常运行,降低了业务系统的可靠性。
因此,如何提高业务系统的可靠性是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种元数据修复方法、元数据修复装置、服务器以及计算机可读存储介质,通过所有反向树中叶子节点的键值信息和位图数据进行元数据中树的重建处理,实现了对元数据进行修复,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
为解决上述技术问题,本申请提供一种元数据修复方法,包括:
获取元数据中失效节点对应的第一树的关键字范围;
根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,所述第二树是与所述第一树相反类型的树结构;
对所有第二树进行校验处理;
当所述所有第二树的校验处理通过时,将所述重建树添加至所述元数据中,以便实现元数据修复处理;
当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
可选的,在所述获取元数据中失效节点对应的第一树的关键字范围的步骤之前,还包括:
将所述第一树对应的所有有效节点的资源进行释放,并将所述第一树对应的root区的状态修改为失效。
可选的,还包括:
当实现元数据修复处理时,发送告警取消消息,并根据所述元数据执行上线操作。
可选的,根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树,包括:
当所述第一树为LP树且所述第二树为PL树时,获取所有所述PL树中在所述关键字范围内的叶子节点的键值信息;
根据LP树格式将所述键值信息插入到LP树中,得到所述重建树。
可选的,当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理,包括:
当所述所有第二树的校验处理不通过时,根据所述关键字范围和所述第一树的位图确定所有与所述第一树存在对应关系的LP树的叶子节点;
将所有叶子节点的键值信息插入到所述重建树中,得到所述位图重建树;
将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
可选的,根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树,包括:
当所述第一树为PL树且所述第二树为LP树时,获取所有所述LP树中在所述关键字范围内的叶子节点的键值信息;
根据PL树格式将所述键值信息插入到PL树中,得到所述重建树。
可选的,当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理,包括:
当所述所有第二树的校验处理不通过时,根据所述关键字范围和所述第一树的位图确定所有与所述第一树存在对应关系的PL树的叶子节点;
将所有叶子节点的键值信息插入到所述重建树中,得到所述位图重建树;
将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
本申请还提供一种元数据修复装置,包括:
关键字范围获取模块,用于获取元数据中失效节点对应的第一树的关键字范围;
反向树重建模块,用于根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,所述第二树是与所述第一树相反类型的树结构;
反向树检验模块,用于对所有第二树进行校验处理;
第一修复完成模块,用于当所述所有第二树的校验处理通过时,将所述重建树添加至所述元数据中,以便实现元数据修复处理;
第二修复完成模块,用于当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的元数据修复方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的元数据修复方法的步骤。
本申请所提供的一种元数据修复方法,包括:获取元数据中失效节点对应的第一树的关键字范围;根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,所述第二树是与所述第一树相反类型的树结构;对所有第二树进行校验处理;当所述所有第二树的校验处理通过时,将所述重建树添加至所述元数据中,以便实现元数据修复处理;当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,实现了采用相反类型的树对第一树进行重建,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,避免出现键值信息遗漏的情况,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
本申请还提供一种元数据修复装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种元数据修复方法的流程图;
图2为本申请实施例所提供的一种元数据修复装置的结构示意图。
具体实施方式
本申请的核心是提供一种元数据修复方法、元数据修复装置、服务器以及计算机可读存储介质,通过所有反向树中叶子节点的键值信息和位图数据进行元数据中树的重建处理,实现了对元数据进行修复,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在元数据的相关技术中,在硬盘中的存储方式是按照B+树的节点进行存储,节点大小固定为512字节。在进行查找、落盘和删卷等场景下需要进行读盘操作时,为了保证数据一致性,读出来的数据会对齐进行CRC等校验。但是,在使用过程中如果从盘中读取的某个节点出现CRC校验错误则会上报CRC告警、同时通知该节点所属池离线,从而会中断系统业务。导致业务系统被中断,影响业务的正常运行,降低了业务系统的可靠性。
因此,本申请提供一种元数据修复方法,通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,实现了采用相反类型的树对第一树进行重建,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,避免出现键值信息遗漏的情况,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
以下通过一个实施例,对本申请提供的一种元数据修复方法进行说明。
请参考图1,图1为本申请实施例所提供的一种元数据修复方法的流程图。
本实施例中,该方法可以包括:
S101,获取元数据中失效节点对应的第一树的关键字范围;
本步骤旨在获取到的元数据中失效节点对应的第一树的关键字范围。其中,关键字是指在树结构中存储的key-value结构中的key值。相应的,关键字范围就是在key-value结构中的key值的范围。
进一步的,在元数据存储中存在不同的树结构,不同的树结构中保存的键值信息也不相同。例如,LP(LBA-PBA)树记录的是LBA(Logical Block Address,逻辑区块地址)到PBA(Physics Block Address,物理区块地址)的映射,其中的键值信息就是LBA为key值,PBA为value值。相应的,PL(PBA-LBA)树记录的是PBA到LBA的映射,其中的键值信息就是PBA为key值,LBA为value值。HP树记录的就是哈希值到PBA的映射。
其中,元数据是由多个B+树结构组成,每个树中都存储有不同类型的数据。失效节点是对元数据进行校验后确定到校验失败的节点。而该失效节点所在的B+树结构即为该第一树。
进一步的,为了提高系统在修复元数据过程中的稳定程度,本实施例还可以包括:
将第一树对应的所有有效节点的资源进行释放,并将第一树对应的root区的状态修改为失效。
可见,本可选方案主要是在获取到第一树的关键字范围之前,将第一树对应的所有有效节点的资源进行释放,并将该第一树对应的root区的状态修改为失效。也就是,将该第一树在系统进行屏蔽,其他设备均无法访问到该第一树,避免再次对已经失效的节点进行操作,提高了系统在元数据修复过程中的稳定程度。
进一步的,本步骤可以首先获取到该失效节点的节点信息,然后根据该节点信息确定对应的第一树,最后获取该第一树的关键字范围。
其中,节点信息包括但不限于池id、卷id、树类型、树层级、节点类型、key等。
S102,根据关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,第二树是与第一树相反类型的树结构;
在S101的基础上,本步骤旨在根据与第一树相反的第二树进行树结构重建处理,得到重建树。也就是说,对所有的第二树进行遍历获取到所有对应的叶子节点的键值信息,然后根据所有的键值信息构建出对应的树结构,也就是将该键值信息作为重建树中的键值数据进行构建,最后得到该重建树。
其中,第二树是与第一树相反类型的所有树结构。例如,第一树为LP树,那么第二树就是PL树,并且第二树是指在该元数据中的任意第二树。第一树为PL树,那么第二树就是LP树,并且第二树是指在该元数据中的任意第二树。同时,本步骤中是对所有的第二树进行遍历后确定到该关键字范围对应的所有第二树中的叶子节点。
S103,对所有第二树进行校验处理;
在S102的基础上,本步骤旨在对所有第二树进行校验处理。也就是,判断所有第二树是否都可以校验通过。
其中,本步骤采用的校验方式可以是对所有第二树中的所有节点进行CRC校验。当出现一个节点失效的情况时,则可以判定所有的第二树校验不通过。
S104,当所有第二树的校验处理通过时,将重建树添加至元数据中,以便实现元数据修复处理;
在S103的基础上,本步骤旨在当第二树的校验处理通过时,也就是表示用于重建重建树的数据没有问题,重建树是完整的,进一步就可以将该重建树添加至元数据中,以便完成元数据的修复处理。
S105,当所有第二树的校验处理不通过时,根据第一树的位图数据对重建树进行修复处理得到位图重建树,将位图重建树添加至元数据中,以便实现元数据修复处理。
在S103的基础上,本步骤旨在当所有第二树的校验不通过时,也就是构建重建树采用的数据存在问题时,获取到该第一树的位图数据,通过该位图数据再对重建树进行修复,得到位图重建树。也就是,通过位图数据对重建树进行查漏补缺,将存在问题的重建树补全为位图重建树。最后将该位图重建树添加至该元数据中,以便实现元数据的修复处理。
其中,位图数据就是存储树结构中存储状态的位图数据。一般采用该位图数据用于恢复对应的数据。但是,采用该位图数据进行元数据的修复操作,还需要按照数据对比每一个位图数据,速度极慢,效率降低。因此,在本实施例中先通过第二树进行重建处理,然后再采用位图数据进行相应的修复操作,对确实的重建树进行补充,而不是采用位图数据重建整个重建树,保证了元数据修复的效率,避免被位图数据拖慢修复效率。
可选的,本实施例还可以包括:
当实现元数据修复处理时,发送告警取消消息,并根据元数据执行上线操作。
可见,本可选方案中主要是当实现元数据修复处理时,发送告警取消消息,具体的是发送CRC告警取消消息,以便停止此时的告警操作。并根据该修复后的元数据进行相关设备的上线操作。
综上,本实施例通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
以下通过另一个实施例,对本申请提供的一种元数据修复方法做进一步说明。
本实施例中,该第一树为LP树,相应的第二树为PL树,该方法可以包括:
步骤1,获取元数据中失效节点对应的第一树的关键字范围;
步骤2,当第一树为LP树且第二树为PL树时,获取所有PL树中在关键字范围内的叶子节点的键值信息;
步骤3,根据LP树格式将键值信息插入到LP树中,得到重建树;
步骤4,对所有第二树进行校验处理;
步骤5,当所有第二树的校验处理通过时,将重建树添加至元数据中,以便实现元数据修复处理;
步骤6,当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的LP树的叶子节点;
步骤7,将所有叶子节点的键值信息插入到重建树中,得到位图重建树;
步骤8,将位图重建树添加至元数据中,以便实现元数据修复处理。
可见,本实施例中主要是对第一树为LP树且第二树为PL树的情况进行说明。
步骤2和步骤3中,首先当第一树为LP树且第二树为PL树时,获取所有PL树中在关键字范围内的叶子节点的键值信息;然后,根据LP树格式将键值信息插入到LP树中,得到重建树。
由于第一树为LP树,因此对应的关键字范围即为LBA值的范围。因此,需要在所有PL树中的叶子节点记录的value值中进行查找。当叶子节点的value值在关键字范围内时,则将该叶子节点的键值信息插入到重建树中。需要注意的是,需要将该叶子节点的value值设置为重建树中的key值,将该叶子节点的key值设置为该重建树中的value值。
步骤6至步骤8的过程,主要是对如何采用位图数据进行修复做说明。首先当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的LP树的叶子节点;然后,将所有叶子节点的键值信息插入到重建树中,得到位图重建树;最后,将位图重建树添加至元数据中,以便实现元数据修复处理。
也就是,通过第一树的位图数据确定到与该第一树存在对对应关系的LP树的叶子节点,然后判断该叶子节点的键值信息是否已经写在该重建树中,若是,则可以直接将该键值信息插入到重建树中,当遍历完所有的LP树后,就可以得到位图重建树。
显然,本实施例通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
以下通过另一个实施例,对本申请提供的一种元数据修复方法做进一步说明。
本实施例中,该第一树为PL树,相应的第二树为LP树,该方法可以包括:
步骤1,获取元数据中失效节点对应的第一树的关键字范围;
步骤2,当第一树为PL树且第二树为LP树时,获取所有LP树中在关键字范围内的叶子节点的键值信息;
步骤3,根据PL树格式将键值信息插入到PL树中,得到重建树;
步骤4,对所有第二树进行校验处理;
步骤5,当所有第二树的校验处理通过时,将重建树添加至元数据中,以便实现元数据修复处理;
步骤6,当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的PL树的叶子节点;
步骤7,将所有叶子节点的键值信息插入到重建树中,得到位图重建树;
步骤8,将位图重建树添加至元数据中,以便实现元数据修复处理。
可见,本实施例中主要是对第一树为PL树且第二树为LP树的情况进行说明。
步骤2和步骤3中,首先当第一树为PL树且第二树为LP树时,获取所有LP树中在关键字范围内的叶子节点的键值信息;然后,根据PL树格式将键值信息插入到PL树中,得到重建树。
由于第一树为PL树,因此对应的关键字范围即为PBA值的范围。因此,需要在所有LP树中的叶子节点记录的value值中进行查找。当叶子节点的value值在关键字范围内时,则将该叶子节点的键值信息插入到重建树中。需要注意的是,需要将该叶子节点的value值设置为重建树中的key值,将该叶子节点的key值设置为该重建树中的value值。
步骤6至步骤8的过程,主要是对如何采用位图数据进行修复做说明。首先当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的PL树的叶子节点;然后,将所有叶子节点的键值信息插入到重建树中,得到位图重建树;最后,将位图重建树添加至元数据中,以便实现元数据修复处理。
也就是,通过第一树的位图数据确定到与该第一树存在对对应关系的PL树的叶子节点,然后判断该叶子节点的键值信息是否已经写在该重建树中,若是,则可以直接将该键值信息插入到重建树中,当遍历完所有的PL树后,就可以得到位图重建树。
显然,本实施例通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
以下通过一个具体的实施例,对本申请提供一种元数据修复方法进行说明。
本实施例中,该方法可以包括:
步骤1,首先记录校验失败节点的池id、卷id、树类型、树层级、节点类型、key等数据信息;
步骤2,然后根据所记录的出错节点所属树类型进行如下处理:
如果是LP树或PL树:则计算该树的最小和最大key范围值,同时遍历该树并释放有效节点所占PBA,修改该树对应的root区为无效;
如果是HP树:则遍历该树并释放有效节点所占PBA,修改该树对应的root区为无效;
步骤3,如果是LP树,则依次遍历并校验所有的PL树,并比较PL树的叶子节点中的value值是否在LP树所记录的key范围内;如果value值在key范围内,则把该key-value值插入LP树,如果value值不在key范围内,则继续比较下一个value值,直至该PL树中所有叶子节点遍历完成;
如果是PL树,则依次遍历并校验所有的LP树,并比较LP树的叶子节点中的value值是否在PL树所记录的key范围内;如果value值在key范围内,则把该key-value值插入PL树,如果value值不在key范围内,则继续比较下一个value值,直至该LP树中所有叶子节点遍历完成;
步骤4,如果是LP树,如果步骤3中PL树没有全部校验通过,则继续通过扫描位图数据查找LP树的叶子节点,如果叶子节点的key在LP树所记录的key范围内则通过LP树Search接口判断该key是否已经存在,若key不在范围内或查找key不存在则把该key-value值插入LP,若存在则继续扫描下一个位图直至所有位图扫描完成;
如果是PL树,如果步骤3中LP树没有全部校验通过,则继续通过扫描位图数据查找PL树的叶子节点,如果叶子节点的key在PL树所记录的key范围内则通过PL树Search接口判断该key是否已经存在,若key不在范围内或查找key不存在则把该key-value值插入PL,若存在则继续扫描下一个位图直至所有位图扫描完成;
步骤5,整个元数据局部修复流程完成,此时可以上报取消CRC告警、通知池上线,并恢复系统业务。
可见,本实施例通过获取到的关键字范围确定到相反类型的第二树中叶子节点的键值信息,并根据这些键值信息进行树结构重建操作,得到重建树,再校验所有的第二树是否校验通过,若是,直接通过重建树将元数据进行修复,若否,则通过位图数据将重建数据进行修复,实现了对元数据进行修复操作,并且不用对全部的元数据进行改动,避免业务系统被中断,不影响正常额业务运行,提高了业务系统的可靠性。
下面对本申请实施例提供的元数据修复装置进行介绍,下文描述的元数据修复装置与上文描述的元数据修复方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种元数据修复装置的结构示意图。
本实施例中,该装置可以包括:
关键字范围获取模块100,用于获取元数据中失效节点对应的第一树的关键字范围;
反向树重建模块200,用于根据关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,第二树是与第一树相反类型的树结构;
反向树检验模块300,用于对所有第二树进行校验处理;
第一修复完成模块400,用于当所有第二树的校验处理通过时,将重建树添加至元数据中,以便实现元数据修复处理;
第二修复完成模块500,用于当所有第二树的校验处理不通过时,根据第一树的位图数据对重建树进行修复处理得到位图重建树,将位图重建树添加至元数据中,以便实现元数据修复处理。
可选的,该装置还可以包括:
资源释放模块,用于将第一树对应的所有有效节点的资源进行释放,并将第一树对应的root区的状态修改为失效。
可选的,该装置还可以包括:
继续执行模块,用于当实现元数据修复处理时,发送告警取消消息,并根据元数据执行上线操作。
可选的,该反向树重建模块200具体用于当第一树为LP树且第二树为PL树时,获取所有PL树中在关键字范围内的叶子节点的键值信息;根据LP树格式将键值信息插入到LP树中,得到重建树。
相应的,该第二修复完成模块500具体用于当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的LP树的叶子节点;将所有叶子节点的键值信息插入到重建树中,得到位图重建树;将位图重建树添加至元数据中,以便实现元数据修复处理。
可选的,该反向树重建模块200具体用于当第一树为PL树且第二树为LP树时,获取所有LP树中在关键字范围内的叶子节点的键值信息;根据PL树格式将键值信息插入到PL树中,得到重建树。
相应的,该第二修复完成模块500具体用于当所有第二树的校验处理不通过时,根据关键字范围和第一树的位图确定所有与第一树存在对应关系的PL树的叶子节点;将所有叶子节点的键值信息插入到重建树中,得到位图重建树;将位图重建树添加至元数据中,以便实现元数据修复处理。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的元数据修复方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的元数据修复方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种元数据修复方法、元数据修复装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种元数据修复方法,其特征在于,包括:
获取元数据中失效节点对应的第一树的关键字范围;
根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,所述第二树是与所述第一树相反类型的树结构;
对所有第二树进行校验处理;
当所述所有第二树的校验处理通过时,将所述重建树添加至所述元数据中,以便实现元数据修复处理;
当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
2.根据权利要求1所述的元数据修复方法,其特征在于,在所述获取元数据中失效节点对应的第一树的关键字范围的步骤之前,还包括:
将所述第一树对应的所有有效节点的资源进行释放,并将所述第一树对应的root区的状态修改为失效。
3.根据权利要求1所述的元数据修复方法,其特征在于,还包括:
当实现元数据修复处理时,发送告警取消消息,并根据所述元数据执行上线操作。
4.根据权利要求1所述的元数据修复方法,其特征在于,根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树,包括:
当所述第一树为LP树且所述第二树为PL树时,获取所有所述PL树中在所述关键字范围内的叶子节点的键值信息;
根据LP树格式将所述键值信息插入到LP树中,得到所述重建树。
5.根据权利要求4所述的元数据修复方法,其特征在于,当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理,包括:
当所述所有第二树的校验处理不通过时,根据所述关键字范围和所述第一树的位图确定所有与所述第一树存在对应关系的LP树的叶子节点;
将所有叶子节点的键值信息插入到所述重建树中,得到所述位图重建树;
将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
6.根据权利要求1所述的元数据修复方法,其特征在于,根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树,包括:
当所述第一树为PL树且所述第二树为LP树时,获取所有所述LP树中在所述关键字范围内的叶子节点的键值信息;
根据PL树格式将所述键值信息插入到PL树中,得到所述重建树。
7.根据权利要求6所述的元数据修复方法,其特征在于,当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理,包括:
当所述所有第二树的校验处理不通过时,根据所述关键字范围和所述第一树的位图确定所有与所述第一树存在对应关系的PL树的叶子节点;
将所有叶子节点的键值信息插入到所述重建树中,得到所述位图重建树;
将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
8.一种元数据修复装置,其特征在于,包括:
关键字范围获取模块,用于获取元数据中失效节点对应的第一树的关键字范围;
反向树重建模块,用于根据所述关键字范围对应的第二树中叶子节点的键值信息进行树结构重建处理,得到重建树;其中,所述第二树是与所述第一树相反类型的树结构;
反向树检验模块,用于对所有第二树进行校验处理;
第一修复完成模块,用于当所述所有第二树的校验处理通过时,将所述重建树添加至所述元数据中,以便实现元数据修复处理;
第二修复完成模块,用于当所述所有第二树的校验处理不通过时,根据所述第一树的位图数据对所述重建树进行修复处理得到位图重建树,将所述位图重建树添加至所述元数据中,以便实现元数据修复处理。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的元数据修复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的元数据修复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165301.1A CN112307022A (zh) | 2020-10-27 | 2020-10-27 | 一种元数据修复方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165301.1A CN112307022A (zh) | 2020-10-27 | 2020-10-27 | 一种元数据修复方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112307022A true CN112307022A (zh) | 2021-02-02 |
Family
ID=74331135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165301.1A Withdrawn CN112307022A (zh) | 2020-10-27 | 2020-10-27 | 一种元数据修复方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307022A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885789A (zh) * | 2021-08-20 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 元数据修复后校验数据一致性的方法、系统、设备及介质 |
-
2020
- 2020-10-27 CN CN202011165301.1A patent/CN112307022A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885789A (zh) * | 2021-08-20 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 元数据修复后校验数据一致性的方法、系统、设备及介质 |
CN113885789B (zh) * | 2021-08-20 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 元数据修复后校验数据一致性的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531940B (zh) | 视频文件处理方法及装置 | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
CN103778030B (zh) | 日志子系统写入方法、错误追踪方法及处理器 | |
CN108875061A (zh) | 一种分布式文件系统的一致性测试方法及相关装置 | |
WO2021135280A1 (zh) | 一种分布式存储系统的数据校验方法及相关装置 | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
CN108141229A (zh) | 损坏数据的高效检测 | |
CN106776795B (zh) | 基于Hbase数据库的数据写入方法及装置 | |
CN111367926A (zh) | 分布式系统的数据处理方法和装置 | |
CN112307022A (zh) | 一种元数据修复方法及相关装置 | |
JPWO2015087509A1 (ja) | 状態保存復元装置、状態保存復元方法、および、プログラム | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN112463434B (zh) | 一种基于纠删码的数据重构方法、装置、设备及存储介质 | |
CN114138192A (zh) | 存储节点在线升级方法、装置、系统及存储介质 | |
CN106933707B (zh) | 基于raid技术的数据存储设备数据恢复方法及系统 | |
CN113703673B (zh) | 一种单机数据存储方法及相关装置 | |
CN114003172B (zh) | 存储容量校正方法、装置、计算机设备以及存储介质 | |
CN114625697A (zh) | 文件系统恢复方法、装置、电子设备及存储介质 | |
CN113821377B (zh) | 一种分布式存储集群的数据恢复方法、系统及存储介质 | |
CN113742127B (zh) | 一种裸闪存文件系统的故障恢复方法 | |
CN113885789A (zh) | 元数据修复后校验数据一致性的方法、系统、设备及介质 | |
CN114924914A (zh) | 磁盘分区表信息备份、恢复方法及系统 | |
CN114237967A (zh) | 数据重构方法以及装置 | |
CN114020525A (zh) | 故障隔离方法、装置、设备及存储介质 | |
CN110704412A (zh) | 一种元数据修复方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210202 |