CN111814003B - 用于建立元数据索引的方法、电子设备和计算机程序产品 - Google Patents
用于建立元数据索引的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111814003B CN111814003B CN201910293914.4A CN201910293914A CN111814003B CN 111814003 B CN111814003 B CN 111814003B CN 201910293914 A CN201910293914 A CN 201910293914A CN 111814003 B CN111814003 B CN 111814003B
- Authority
- CN
- China
- Prior art keywords
- metadata
- index
- electronic device
- indication
- item
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 title claims abstract description 20
- 230000008569 process Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000007689 inspection Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及一种用于建立元数据索引的方法、电子设备和计算机程序产品。在此公开的方法包括:生成用于索引元数据项的一级索引;向一级索引插入第一指示,第一指示用于指示元数据项在元数据集合中的位置;生成用于索引一级索引集合的二级索引;以及向二级索引插入第二指示,第二指示用于指示元数据集合的位置集合。以此方式,本公开的实施例可以建立能够指示元数据项位置的索引结构,以便于快速确定元数据项的位置。
Description
技术领域
本公开的实施例涉及存储领域,更具体地,涉及用于建立元数据索引的方法、电子设备和计算机可读介质。
背景技术
在包含多个电子设备的多节点系统中,保持各电子设备之间的元数据一致是至关重要的。如果电子设备之间存在元数据不一致的情况,会导致系统发生各种不可预知的错误。一些系统通过使每个电子设备中都备份有其他电子设备中的元数据来为整个系统的元数据提供备份。系统可以在维护期间对每个电子设备中的元数据进行比较检查,并且对检查期间发现的不一致的元数据进行处理。然而,由于系统中的电子设备的数量、每个电子设备中元数据的数量通常非常庞大,在每个电子设备之间进行元数据比较会消耗大量的时间和资源。
发明内容
本公开的实施例提供了一种用于建立元数据索引的方法、电子设备和计算机可读介质。
在本公开的第一方面,提供了一种用于建立元数据索引的方法。该方法包括:生成用于索引元数据项的一级索引;向一级索引插入第一指示,第一指示用于指示元数据项在元数据集合中的位置;生成用于索引一级索引集合的二级索引;以及向二级索引插入第二指示,第二指示用于指示元数据集合的位置集合。
在本公开的第二方面,提供了一种用于索引元数据的方法。该方法包括:确定与目标元数据项相关联的二级索引,二级索引用于索引一级索引集合,一级索引集合用于索引第一元数据集合;获取二级索引中包含的第二指示,第二指示用于指示第一元数据集合的位置集合;确定一级索引集合中的、用于索引目标元数据项的一级索引;获取一级索引中包含的第一指示,第一指示用于指示目标元数据项在第一元数据集合中的位置;以及基于第一指示和第二指示,确定目标元数据项的位置。
在本公开的第三方面,提供了一种电子设备。该电子设备包括:处理器;以及存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,动作包括:生成用于索引元数据项的一级索引;向一级索引插入第一指示,第一指示用于指示元数据项在元数据集合中的位置;生成用于索引一级索引集合的二级索引;以及向二级索引插入第二指示,第二指示用于指示元数据集合的位置集合。
在本公开的第四方面,提供了一种电子设备。该电子设备包括:处理器;以及存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,动作包括:确定与目标元数据项相关联的二级索引,二级索引用于索引一级索引集合,一级索引集合用于索引第一元数据集合;获取二级索引中包含的第二指示,第二指示用于指示第一元数据集合的位置集合;确定一级索引集合中的、用于索引目标元数据项的一级索引;获取一级索引中包含的第一指示,第一指示用于指示目标元数据项在第一元数据集合中的位置;以及基于第一指示和第二指示,确定目标元数据项的位置。
在本公开的第五方面,提供了一种计算机可读介质。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使计算机执行动作,动作包括:生成用于索引元数据项的一级索引;向一级索引插入第一指示,第一指示用于指示元数据项在元数据集合中的位置;生成用于索引一级索引集合的二级索引;以及向二级索引插入第二指示,第二指示用于指示元数据集合的位置集合。
在本公开的第六方面,提供了一种计算机可读介质。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使计算机执行动作,动作包括:确定与目标元数据项相关联的二级索引,二级索引用于索引一级索引集合,一级索引集合用于索引第一元数据集合;获取二级索引中包含的第二指示,第二指示用于指示第一元数据集合的位置集合;确定一级索引集合中的、用于索引目标元数据项的一级索引;获取一级索引中包含的第一指示,第一指示用于指示目标元数据项在第一元数据集合中的位置;以及基于第一指示和第二指示,确定目标元数据项的位置。
应当理解,发明内容部分并非旨在标识本公开的实施例的关键或重要特征,亦非旨在用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
通过参照附图的以下详细描述,本公开实施例的上述和其他目的、特征和优点将变得更容易理解。在附图中,将以示例以及非限制性的方式对本公开的多个实施例进行说明,其中:
图1示出了根据本公开的实施例的用于建立元数据索引130和用于索引元数据的示例环境100的示意图;
图2示出了根据本公开的实施例的用于建立元数据索引130的方法200的流程图;
图3示出了根据本公开的实施例的用于索引元数据的方法300的流程图;
图4示出了根据本公开的实施例的用于建立元数据索引130的示意性框图;
图5示出了根据本公开的实施例的用于索引元数据的示意性框图;以及。
图6示出了可以用来实施本公开的实施例的设备600的示意性框图
具体实施方式
现在将参照附图中所示的各种示例性实施例对本公开的构思进行说明。应当理解,这些实施例的描述仅仅为了使得本领域的技术人员能够更好地理解并进一步实现本公开,而并不旨在以任何方式限制本公开的范围。应当注意的是,在可行情况下可以在图中使用类似或相同的附图标记,并且类似或相同的附图标记可以表示类似或相同的元素。本领域的技术人员将理解,从下面的描述中,本文中所说明的结构和/或方法的替代实施例可以被采用而不脱离所描述的本公开的原理和构思。
在本公开的语境中,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”;术语“基于”可以被理解为“至少部分地基于”;术语“一个实施例”可以被理解为“至少一个实施例”;术语“另一实施例”可以被理解为“至少一个其它实施例”。其他可能出现但在此处未提及的术语,除非明确说明,否则不应以与本公开的实施例所基于的构思相悖的方式做出解释或限定。
如上所述,在包含多个电子设备的多节点系统中,保持各电子设备之间的元数据一致是至关重要的。如果电子设备之间存在元数据不一致的情况,会导致系统发生各种不可预知的错误。一些系统通过使每个电子设备中都备份有其他电子设备中的元数据来为整个系统的元数据提供备份。系统可以在维护期间对每个电子设备中的元数据进行比较检查,并且确定不一致的元数据项的具体位置,然后可以对检查期间发现的不一致的元数据项进行单独处理。然而,系统中的电子设备的数量、每个电子设备中元数据的数量通常会非常庞大,如果将每个电子设备中的每个元数据项逐一地与其他电子设备中的每个元数据项进行比较来确定不一致的元数据项的具体位置,将会消耗大量的时间和资源。
为了解决上述问题和/或其他潜在的问题,本公开的实施例提出了一种用于建立元数据索引的方案。该方案能够生成用于索引元数据项的一级索引。该方案能够向一级索引插入第一指示,第一指示用于指示元数据项在元数据集合中的位置。该方案能够生成用于索引一级索引集合的二级索引。该方案能够向二级索引插入第二指示,第二指示用于指示元数据集合的位置集合。以此方式,该方案能够指示元数据项的位置的索引结构,以便于快速确定元数据项的位置。
以下参考附图来说明本公开的基本原理和实现方式。应当理解,给出的示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的用于建立元数据索引130和用于索引元数据的示例环境100的示意图。如图1所示,环境100包括电子设备120和140。电子设备120和140可以通过网络150实现各种数据的传输。网络150可以为有线网络、无线网络、或者有线网络和无线网络的组合,例如,网络150可以包括但不限于因特网、广域网、城域网、局域网、虚拟专用网络(VPN)网络、无线通信网络,等等。
电子设备120和140可以是计算机、服务器或者可用于建立元数据索引130或用于索引元数据的任意其他设备。尽管在图1中示出了两个电子设备,然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。在一些实施例中,还可以包括不同数目和/或功能的其他设备。
如图1所示,电子设备120可以对元数据集合110进行处理来建立元数据索引130。元数据集合110包括一个或多个元数据项110-1、110-2、……、110-N,N为大于1的正整数。每个元数据项可以包括一段元数据。电子设备120可以对每个元数据项进行处理,生成用于索引元数据项110-1、110-2、……、110-N的一级索引132-1、132-2、……、132-N。电子设备120可以向一级索引132-1、132-2、……、132-N分别插入指示134-1、134-2、……、134-N,指示134-1、134-2、……、134-N分别指示元数据项110-1、110-2、……、110-N在元数据集合110中的位置。
电子设备120可以对包含指示134-1、134-2、……、134-N的一级索引集合132进行处理,生成用于索引一级索引集合132的二级索引136。电子设备120可以向二级索引136-1插入指示138-1,指示138-1可以指示元数据集合110的位置集合。
如图1所示,电子设备120通过向所生成的一级索引132-1、132-2、……、132-N和二级索引136-1插入相应的指示来建立元数据索引130。尽管在图1中仅示出了一个元数据集合110,一个一级索引集合132和一个二级索引136-1,然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。在一些实施例中,元数据索引130可以包括彼此关联的多个元数据集合,多个一级索引集合和多个二级索引。
尽管在图1中示出的元数据索引130只包括两级索引,然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。例如,在包括多个二级索引的情况下,可以对多个二级索引进行处理来生成一个或多个三级索引。在包括多个三级索引的情况下,也可以对多个三级索引进行处理来生成一个或多个四级处理,等等,本公开对索引的级数没有限制。
电子设备120建立元数据索引130后,可以通过网络150将元数据索引130发送给电子设备140。电子设备140可以利用元数据索引130来索引元数据,从而获得目标元数据项的位置160。目标元数据项的位置160可以是目标元数据项的地址,也可以是与目标元数据项的地址相关联的编号等。尽管在图1中示出了电子设备120用于建立元数据索引130,电子设备140用于索引元数据,然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。在一些实施例中,电子设备120和140均可以用于建立元数据索引130和用于索引元数据。
电子设备120和140还可以包括处理器以及存储器。在某些实施例中,存储器中可以存储有计算机程序,这些程序的指令可由处理器来执行从而控制电子设备的操作。应当理解,电子设备120和140还可以包括在图1中未示出的一些其他模块和/或设备,诸如通信模块、输入输出设备,等等。
图2示出了根据本公开的实施例的建立元数据索引130的方法200的流程图。应当理解,方法200中的至少一部分可以由以上参考图1所描述的电子设备120来执行。方法200还可以包括未示出的框和/或可以省略所示出的框。本公开的范围在此方面不受限制。
在框210处,电子设备120生成用于索引元数据项110-1的一级索引132-1。在一些实施例中,电子设备120可以对元数据项110-1执行哈希算法,从而生成与元数据项110-1相关联的字符串,所生成的字符串可以作为用于索引元数据项110-1的一级索引。哈希算法(例如SHA-1、SHA-2等)可以将任何数据转换为一串字符串,对于不同的数据,其可以被转换为不同的字符串,而对于相同的数据,其可以被转换为相同的字符串。在一些实施例中,可以对元数据项集合110中的每个元数据项执行哈希算法来生成包括一个或多个一级索引132-1、132-2、……、132-N的一级索引集合132。应当理解,也可以对每个元数据项执行其他适当的算法来获得相应的一级索引,例如,信息摘要算法MD4、MD5等,本公开的范围对此不进行限制。以此方式,可以将复杂的元数据项转换为字符串。
在框220处,电子设备120向一级索引132-1插入指示134-1,指示134-1用于指示元数据项110-1在元数据集合110中的位置。电子设备120可以向每个一级索引132-1分别插入用于指示相应元数据项在元数据集合中的位置的指示。例如,如果元数据项110-1是元数据集合110中的第一个元数据项,指示134-1可以指示元数据集合110中的第一个位置。以此方式,可以将与元数据项的位置相关联的信息插入一级索引中。
在框230处,电子设备120生成用于索引一级索引集合132的二级索引136-1。在一些实施例中,电子设备120可以对一级索引集合132执行哈希算法,从而生成与一级索引集合132相关联的字符串。由于一级索引集合132中的每个一级索引已经被分别插入用于指示相应元数据项在元数据集合中的位置的指示134-1、134-2、……、134-N,因此,所生成的字符串也与插入一级索引集合中的指示134-1、134-2、……、134-N相关联。所生成的字符串可以作为与一级索引集合132相关联的二级索引。一级索引集合132可以包括一个或多个一级索引132-1、132-2、……、132-N。在一些实施例中,如果存在多个一级索引集合,可以对每个一级索引集合分别执行哈希算法来获得多个二级索引。以此方式,可以将复杂的一级索引集合132转换为具有固定长度的字符串。
在框240处,电子设备120向二级索引136-1插入指示138-1,指示138-1用于指示元数据集合110的位置集合。在一些实施例中,元数据集合110的位置集合可以包括一个或多个元数据项的地址,或者与一个或多个元数据项的地址相关联的一个或多个编号。以此方式,电子设备120可以将与元数据集合110相关联的位置信息插入二级索引136-1中,从而建立能够指示元数据项位置的元数据索引130。
图3示出了根据本公开的实施例的用于索引元数据的方法300的流程图。应当理解,方法300中的至少一部分可以由以上参考图1所描述的电子设备140来执行。方法300还可以包括未示出的框和/或可以省略所示出的框。本公开的范围在此方面不受限制。
在框310处,电子设备140确定与目标元数据项110-2相关联的二级索引136-1。在一些实施例中,可以将元数据集合110与其他元数据集合进行比较,然后将元数据集合110中与其他元数据集合不匹配的元数据项110-2作为目标元数据。在一些实施例中,电子设备140可以将元数据索引130中的二级索引136-1与其他元数据索引中的二级索引进行比较,如果二级索引136-1与其他元数据索引中的二级索引不匹配,则将二级索引136-1确定为与目标元数据110-2相关联的二级索引。以此方式,电子设备140可以确定与目标元数据项110-2相关联的二级索引136-1以便于后续获取目标元数据项110-2的位置。
如前所述,一级索引是对元数据项执行哈希算法而生成的字符串,而二级索引136-1是对一级索引集合132执行哈希算法生成的字符串。由于哈希算法可以针对相同的数据生成相同的字符串,针对不同的数据生成不同的字符串,因此,如果两个元数据项是彼此不相同的,那么分别与这两个元数据项相关联的两个一级索引也是彼此不相同的。类似地,如果两个一级索引是彼此不相同的,那么与这两个一级索引相关联的二级索引也是彼此不同的。因此,通过将不同元数据集合中的、具有相同级数的索引进行比较,可以确定不同元数据集合中是否存在不匹配的元数据项。以此方式,电子设备140无需将所有元数据项进行比较,而是只需要比较相关联的索引即可确定不一致的元数据项,从而大大提高了电子设备140的工作效率。
在框320处,电子设备140可以获取二级索引136-1中包含的指示138-1。指示138-1用于指示元数据集合110的位置集合。在一些实施例中,元数据集合110的位置集合可以包括一个或多个元数据项的地址,或者与一个或多个元数据项的地址相关联的一个或多个编号。以此方式,可以确定与目标元数据项110-2相关联的位置集合。
在框330处,电子设备140确定一级索引集合132中的、用于索引目标元数据项110-2的一级索引132-2。在一些实施例中,电子设备140可以将元数据索引130中的一级索引集合132与其他元数据索引中的一级索引集合进行比较,如果一级索引集合132与其他元数据索引中的一级索引集合不匹配,则将一级索引集合132中的、与其他一级索引不匹配的一级索引132-2确定为与目标元数据110-2相关联的一级索引。以此方式,电子设备140可以确定与目标元数据110-2相关联的一级索引132-2,从而便于后续获取目标元数据项110-2的位置。
在框340处,电子设备140获取一级索引132-2中包含的指示134-2。指示134-2用于指示目标元数据项110-2在元数据集合110中的位置。例如,如果元数据项110-2是元数据集合110中的第二个元数据项,指示134-2可以指示元数据集合110中的第二个位置。以此方式,电子设备140可以获得与目标元数据项110-2的位置有关的信息。
在框350处,电子设备140基于指示元数据集合110的位置集合的指示138-1以及指示目标元数据项110-2在元数据集合110中的位置的指示134-2,可以确定目标元数据项110-2的位置。在一些实施例中,目标元数据项110-2的位置可以包括目标元数据项110-2的地址,或者与目标元数据项110-2的地址相关联的编号。例如,如果指示138-1指示了与元数据集合110相关联的地址集合或编号集合,指示134-2指示了元数据集合110中的第二个位置02,则将该地址集合或编号集合中的第二个地址或编号作为目标元数据项110-2的地址或编号。以此方式,可以在多节点系统的数据检查期间快速确定每个电子设备中彼此不一致的元数据项的具体位置,从而便于系统对该元数据项执行预定的操作以保持每个电子设备中的元数据一致。
尽管在以上的描述中,方法200和方法300分别由不同的电子设备执行,然而应当理解,方法200和方法300也可以由同一电子设备执行,本公开的范围对此不进行限制。
图4示出了根据本公开的实施例的用于建立元数据索引130的示意性框图,表1示出了与元数据项的地址相关联的编号的位图。以下将结合图4和表1来描述建立元数据索引130的具体实施例。
表1元数据项编号的位图
表1中的每一项表示一个元数据项的位置,数值1表示在该位置存储有元数据,数值0表示在该位置尚未存储元数据。每个列号(例如0、1、2、3、4、5、……、31)表示在一个元数据集合中的每个元数据项的编号,该编号可以对应于元数据项在元数据集合中的位置,例如编号#0表示相应的元数据项位于元数据集合中的第1个位置,编号#1表示相应的元数据项位于元数据集合中的第2个位置,等等。表1中的每个行号(例如0、1、2、3、4、5、……)表示一个元数据集合整体的编号,该编号可以对应于一个位置集合。因此,基于一个行号和一个列号可以确定出一个元数据项的位置。
表1所示的位图中记录了电子设备120的所有元数据项的位置。例如,以多节点系统包括16个电子设备为例,如果电子设备120是该多节点系统中的一个电子设备,那么电子设备120中不仅存储有电子设备120自身运行所需要的元数据,还存储有其他15个电子设备中的每个电子设备的元数据,从而为其他电子设备提供元数据备份。为了确定电子设备120中存储的16个电子设备的每个元数据项的位置,可以将行号为0、16、32、64……的行中的32个存储位置定义为16个电子设备中的第1个电子设备的元数据存储位置,将行号为1、17、33、65……的行中的32个存储位置定义为16个电子设备中的第2个电子设备的元数据存储位置,将行号为2、18、34、66……的行中的32个存储位置定义为第3个电子设备的元数据存储位置,以此类推。以这样的方式,电子设备120中存储的所有元数据的位置都可以对应于表1所示的位图。
例如,如果将表1中的行号设为X,列号设为Y,多节点系统中的电子设备的总数设为Z,则通过X mod Z(求X除以Z的余数)可以获得电子设备的编号,通过X/Z*32+Y,其中X/Z向下取整数,可以进一步获得第X行的第Y列所对应的元数据项在该电子设备中的编号。例如,电子设备的数目为16,如果想要确定位图中行号为7、列号为8的一个元数据的位置,则通过7mod 16=7,可以确定该元数据属于电子设备120存储的编号为8的一个电子设备的元数据,再通过7/16*32+8=8,可以确定该元数据项是编号为8的电子设备中的第9个元数据。以此方式,通过表1所示的位图,可以确定行号为X、列号为Y的元数据项所对应的位置。
虽然表1示出的位图中包括32个列,但是应当理解,位图可以包括任何合适的列的数目,例如,16个列、64个列,等等,本公开的范围对此不进行限制。
图4示出了根据本公开的实施例的用于建立元数据索引130的示意性框图。电子设备120首先对所存储的每个元数据项110-1、110-2、……、110-32、……、410-1、……、410-32执行哈希算法,分别生成用于索引相应元数据项的一级索引132-1、132-2、……、132-32、……、432-1、……、432-32,每个一级索引是用于索引相应元数据项的字符串。在该示例中,元数据项在图4中的排列顺序与在表1中的排列顺序相对应。例如,将表1中对应于编号为0的电子设备的元数据项按照表1中的先后顺序进行排列,之后将表1中对应于编号为1的电子设备的元数据项进行排列,然后再将对应于编号为2的电子设备的元数据项进行排列,等等。以此方式,可以将电子设备120中的所有元数据项按照预定的顺序进行排列,并且所生成的一级索引也该按照预定的顺序进行排列。
如图4所示,电子设备120可以向每个一级索引132-1、132-2、……、132-32、……、432-1、……、432-32分别插入用于指示表1中的列号的指示134-1、134-2、……、134-32、……、434-1、……、434-32,该列号是相应元数据项在表1中所对应的列号。然后,电子设备120可以对包含有相应指示集合的每个一级索引集合分别执行哈希算法来生成一个或多个二级索引,每个一级索引集合可以包括32个一级索引,每个二级索引是用于索引相应一级索引集合的字符串。因此,每一行中的32个元数据项所对应的32个一级索引及相应指示被共同转换为一个二级索引。与一级索引类似,电子设备120可以向每个二级索引分别插入用于指示表1中的行号的指示,该行号是与该二级索引相关联的32个元数据项在表中所对应的行号。以此方式,可以将与每个元数据项的位置相关联的信息插入元数据索引130中,以便于在索引元数据时确定目标元数据项的位置。
与一级索引集合类似,电子设备120可以对包含有相应指示集合的每个二级索引集合分别执行哈希算法来生成多个三级索引,每个二级索引集合可以包括例如25个二级索引,每个三级索引是用于索引相应二级索引集合的字符串。可以看出,三级索引的数目已经远远小于元数据项的总数。然后,电子设备120可以继续对每个三级索引集合分别执行哈希算法来生成多个四级索引,每个三级索引集合可以包括例如25个三级索引,每个四级索引是用于索引相应三级索引集合的字符串。电子设备120可以继续对每个四级索引集合分别执行哈希算法来生成多个五级索引,每个四级索引集合可以包括例如5个四级索引,每个五级索引是用于索引相应四级索引集合的字符串。应当理解,每个二级索引集合、三级索引集合、四级索引集合可以分别包括任何适当数目的二级、三级索引、四级索引,本公开的范围对此不进行限制。以此方式,电子设备120可以将索引的数目逐级压缩,以便于在索引元数据的过程中提高索引效率。
在图4所示的示例中,五级索引的数目可以被压缩至16个,其中五级索引450-1与电子设备120中存储的编号为0的第1个电子设备的所有元数据项相关联,五级索引450-2与电子设备120中存储的编号为1的第2个电子设备的所有元数据项相关联,以此类推,五级索引450-16与电子设备120中存储的编号为15的第16个电子设备的所有元数据项相关联。最后,电子设备120可以对包括这16个五级索引的五级索引集合再执行一次哈希算法,从而获得一个六级索引460,六级索引460是用于索引五级索引集合的字符串。以此方式,电子设备120创建了能够用于索引所有元数据项的索引结构,使得在进行多个电子设备之间的元数据比较时,电子设备120能够快速确定不一致的元数据项。
虽然在图4的示例中元数据索引130包括了六个级别的索引,但是应当理解,由于多节点系统中需要相互备份元数据项的电子设备的数目不同、每个电子设备中的元数据项的数目不同,元数据索引130可以包括任何适当级别数的索引,每个级别的索引可以包括任何适当的索引数目,本公开的范围对此不进行限制。
图5示出了根据本公开的实施例的用于索引元数据的示意性框图。当多节点系统需要进行各个电子设备之间的元数据检查时,任何一个电子设备可以作为检查发起者,此处以电子设备140为例,向其他电子设备发出检查请求。如果其他电子设备正在执行任务而不适合进行元数据检查时,则决绝电子设备140的请求。如果其他电子设备均同意电子设备140的检查请求,则每个电子设备(包括发起者)将分别建立如图4所示的元数据索引。一旦创建完成,其他电子设备都将各自建立好的元数据索引发送给电子设备140。应当理解,每个电子设备可以将建立好的元数据索引一次全部发送给电子设备140,也可以将每级索引逐级分别发送给电子设备140。以此方式,电子设备140可以仅对每个电子设备中的元数据索引进行比较即可完成整个系统的元数据检查,大大减少了系统内部的数据交互量。
电子设备140接收到其他电子设备发来的元数据索引后,可以首先将每个元数据索引中的六级索引(即最高级索引)进行比较。由于哈希算法可以将不同的数据转换为不同的字符串,而将相同的数据转换为相同的字符串,因此,如果每个电子设备中的六级索引均彼此相同,则表示每个电子设备中的所有元数据项均完全一致。如果存在某个电子设备中的六级索引与其他电子设备中的六级索引不相同,则表示该电子设备存在与其他电子设备不一致的元数据项。以此方式,电子设备140可以快速确定多节点系统中存在元数据项不一致的一个或多个电子设备。
如图5所示,如果电子设备140确定来自电子设备120的六级索引460与其他电子设备的六级索引不相同,则继续将与六级索引460相关联的五级索引集合与其他其他电子设备的五级索引集合进行比较,来确定该五级索引集合中的哪个五级索引是不一致的五级索引。如果确定五级索引450-1是不一致的五级索引,则继续将与五级索引450-1相关联的四级索引集合与其他电子设备中对应的四级索引集合进行比较,来确定该四级索引集合中的哪个四级索引是不一致的四级索引。如果确定四级索引440-1是不一致的四级索引,则继续将与四级440-1相关联的三级索引集合与其他电子设备中对应的三级索引集合进行比较。以此类推,通过逐级索引的方式可以最终确定不一致的元数据项是目标元数据项110-2。以此方式,电子设备140无需比较每个电子设备中的所有元数据项就可以确定不一致的元数据项。
由于目标元数据项110-2本身不包含其被存储的位置信息,因此仅仅通过元数据索引130找出目标元数据项110-2还不能最终定位目标元数据项110-2。如图5所示,电子设备140可以确定与目标元数据项110-2相关联的二级索引136-1和一级索引132-2,然后获取二级索引136-1中包含的指示138-1以及一级索引132-2包含的指示134-2。由于指示138-1和指示132-2分别指示表1所示的位图中的行号0和列号1,则可以确定目标元数据项110-2是编号为0的电子设备中的第2个元数据项。以此方式,电子设备140根据目标元数据项110-2的编号可以确定目标元数据项110-2的位置,从而可以对该元数据项执行后续操作以使得各个电子设备中的元数据项保持一致。
虽然在图5的示例中仅仅示出了一个不一致的元数据项110-2,然而应当理解,每个电子设备中都可以具有任意数目的不一致的元数据项,针对每个不一致的元数据项都可以采用与图5所示出的方法类似的方法来确定不一致的元数据的位置,本公开在此不进行赘述。
图6示出了可以用来实施本公开的实施例的设备600的示意性框图,设备600可以为以上参考图1所描述的电子设备120和140。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元601执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种用于建立多节点系统的元数据的元数据索引的方法,,其中所述多节点系统的操作依赖于所述元数据在所述多节点系统上的一致,所述方法包括:
识别所述多节点系统内的元数据项的副本的所有位置,其中所述位置中的一个位置位于所述多节点系统的第一电子设备上,所述位置中的第二个位置位于所述多节点系统的第二电子设备上;
生成针对所述元数据项的每个副本的一级索引;
向每个一级索引插入指示,所述指示用于指示所述元数据项的对应副本的位置,所述位置能够用于识别所述元数据项的所述对应副本的位置;
生成所述元数据索引的第一二级索引,所述第一二级索引用于索引第一组一级索引,所述第一组一级索引全部与具有所述第一电子设备的位置的所述元数据项的副本相关联;以及
向所述第一二级索引插入第二指示,所述第二指示直接指定第一位置集合,所述第一位置集合与具有所述第一电子设备的位置的所述元数据项的副本相关联;
生成所述元数据索引的第二二级索引,所述第二二级索引用于索引第二组一级索引,所述第二组一级索引全部与具有所述第二电子设备的位置的所述元数据项的副本相关联;
向所述第二二级索引插入第三指示,所述第三指示直接指定第二位置集合,所述第二位置集合与具有所述第二电子设备的位置的所述元数据项的副本相关联;
识别所述元数据索引和来自所述第二电子设备的远程元数据索引之间的不一致,所述不一致是基于所述元数据索引的所述第二二级索引不同于所述远程元数据索引的对应的第二二级索引,其中所述元数据索引和所述远程元数据索引是通过相同过程而生成的;以及
基于识别出的不一致,更新所述元数据索引以获得与所述远程元数据索引一致的更新后的元数据索引。
2.根据权利要求1所述的方法,其中生成所述一级索引包括:
对所述元数据项的一个副本执行哈希算法,以生成与所述元数据项的所述一个副本相关联的第一字符串作为所述一级索引。
3.根据权利要求1所述的方法,其中生成所述第一二级索引包括:
对所述第一组一级索引执行哈希算法,以生成与所述第一组一级索引相关联的第二字符串作为所述第一二级索引。
4.根据权利要求1所述的方法,其中,所述远程元数据索引的所述对应的第二二级索引包含第三指示,所述第三指示直接指定与具有所述第二电子设备的位置的所述元数据项的副本相关联的第三位置集合。
5.一种用于索引多节点计算系统的元数据的方法,其中所述多节点计算系统的操作依赖于所述元数据在所述多节点计算系统上的一致,所述方法包括:
由所述多节点计算系统的电子设备获取用于提供元数据不一致识别的元数据索引;
由所述电子设备从所述多节点计算系统的第二电子设备获取远程元数据索引,所述元数据索引和所述远程元数据索引对分布在所述多节点计算系统上的同一组元数据的进行索引,所述一组元数据在所述多节点计算系统上冗余存储;
由所述电子设备识别所述元数据索引的二级索引和所述远程元数据索引的对应的二级索引;
由所述电子设备识别所述元数据索引和所述远程元数据索引之间的不一致,所述不一致是基于所述二级索引不同于所述对应的二级索引;
获取所述二级索引中包含的第二指示,所述第二指示指示针对所述第二电子设备而被冗余存储在所述电子设备中的元数据项的位置,所述元数据项与被存储在所述第二电子设备中的对应的元数据项不一致;以及
基于位置来访问所述元数据项。
6.权利要求5所述的方法,其中,所述二级索引是与一组一级索引相关联的第二字符串,所述第二字符串通过对所述一组一级索引执行哈希算法而生成。
7.权利要求5所述的方法,其中,所述对应的二级索引包含第三指示,所述第三指示直接指定与最初存储在所述第二电子设备中的元数据项相关联的位置。
8.一种电子设备,包括:
处理器;以及
存储器,存储有计算机程序指令,所述处理器运行所述存储器中的所述计算机程序指令控制所述电子设备执行如权利要求1-4中任一项或者权利要求5-7中任一项所述的方法。
9.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行如权利要求1-4中任一项或者权利要求5-7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910293914.4A CN111814003B (zh) | 2019-04-12 | 2019-04-12 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
US16/510,826 US11379449B2 (en) | 2019-04-12 | 2019-07-12 | Method, electronic device and computer program product for creating metadata index |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910293914.4A CN111814003B (zh) | 2019-04-12 | 2019-04-12 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111814003A CN111814003A (zh) | 2020-10-23 |
CN111814003B true CN111814003B (zh) | 2024-04-23 |
Family
ID=72749292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910293914.4A Active CN111814003B (zh) | 2019-04-12 | 2019-04-12 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11379449B2 (zh) |
CN (1) | CN111814003B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598823A (zh) * | 2002-07-23 | 2005-03-23 | 三星电子株式会社 | 使用元数据的索引的元数据搜索方法和装置 |
CN1949221A (zh) * | 2006-11-27 | 2007-04-18 | 北京金山软件有限公司 | 存储元素的方法与系统及查找元素的方法与系统 |
CN102890682A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 构建索引的方法、检索方法、装置及系统 |
CN104965845A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种小文件的定位方法及系统 |
CN107870919A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 管理索引的方法和设备 |
CN108255958A (zh) * | 2017-12-21 | 2018-07-06 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218176A1 (en) * | 2005-03-24 | 2006-09-28 | International Business Machines Corporation | System, method, and service for organizing data for fast retrieval |
JP5579195B2 (ja) * | 2008-12-22 | 2014-08-27 | グーグル インコーポレイテッド | 複製されたコンテンツアドレス可能ストレージクラスタのための非同期分散型重複排除 |
US9110727B2 (en) * | 2010-10-05 | 2015-08-18 | Unisys Corporation | Automatic replication of virtual machines |
US10311021B1 (en) * | 2012-02-08 | 2019-06-04 | Veritas Technologies Llc | Systems and methods for indexing backup file metadata |
US9104675B1 (en) * | 2012-05-01 | 2015-08-11 | Emc Corporation | Inode to pathname support with a hard link database |
US9081821B2 (en) * | 2012-07-25 | 2015-07-14 | Ebay Inc. | Spell check using column cursor |
US9514171B2 (en) * | 2014-02-11 | 2016-12-06 | International Business Machines Corporation | Managing database clustering indices |
US9971850B2 (en) * | 2015-12-29 | 2018-05-15 | International Business Machines Corporation | Hash table structures |
-
2019
- 2019-04-12 CN CN201910293914.4A patent/CN111814003B/zh active Active
- 2019-07-12 US US16/510,826 patent/US11379449B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598823A (zh) * | 2002-07-23 | 2005-03-23 | 三星电子株式会社 | 使用元数据的索引的元数据搜索方法和装置 |
CN1949221A (zh) * | 2006-11-27 | 2007-04-18 | 北京金山软件有限公司 | 存储元素的方法与系统及查找元素的方法与系统 |
CN102890682A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 构建索引的方法、检索方法、装置及系统 |
CN104965845A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种小文件的定位方法及系统 |
CN107870919A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 管理索引的方法和设备 |
CN108255958A (zh) * | 2017-12-21 | 2018-07-06 | 百度在线网络技术(北京)有限公司 | 数据查询方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11379449B2 (en) | 2022-07-05 |
US20200327109A1 (en) | 2020-10-15 |
CN111814003A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111247518B (zh) | 用于数据库分片的方法和系统 | |
US10726356B1 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
US10802923B2 (en) | Method and apparatus for incremental backup based on file paths and a prefix tree | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN111858146B (zh) | 用于恢复数据的方法、设备和计算机程序产品 | |
US9043275B2 (en) | Data synchronization using string matching | |
CN111143113B (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
US10983718B2 (en) | Method, device and computer program product for data backup | |
US10726015B1 (en) | Cache-aware system and method for identifying matching portions of two sets of data in a multiprocessor system | |
CN111857539A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110399545B (zh) | 管理文档索引的方法和设备 | |
CN112579591B (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
US11947958B2 (en) | Method, device, and program product for managing object in software development project | |
US9684668B1 (en) | Systems and methods for performing lookups on distributed deduplicated data systems | |
CN111814003B (zh) | 用于建立元数据索引的方法、电子设备和计算机程序产品 | |
US10922001B2 (en) | Vector-based storage management | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
CN113742332A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN118210811A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
Rahman et al. | HaVec: an efficient de Bruijn graph construction algorithm for genome assembly | |
CN116089527A (zh) | 一种数据校验方法、存储介质与设备 | |
US10936241B2 (en) | Method, apparatus, and computer program product for managing datasets | |
CN112181974B (zh) | 标识信息分配方法、系统及存储设备 | |
CN112559497A (zh) | 一种数据处理方法、一种信息传输方法、装置及电子设备 | |
CN109165208B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |