一种元数据落盘方法、装置、设备及计算机可读存储介质与流程

文档序号:16607286发布日期:2019-01-14 21:12阅读:160来源:国知局
一种元数据落盘方法、装置、设备及计算机可读存储介质与流程

本申请涉及存储技术领域,特别涉及一种元数据落盘方法、装置、设备及计算机可读存储介质。



背景技术:

元数据是记录了计算机中数据的详细信息的一类重要数据,它在计算机中经常以特定的数据结构(如各种数据树)存储。

元数据落盘是存储技术领域中的常用术语,是指将因磁盘i/o读写操作而在内存中新生成的元数据树与磁盘中原本存在的元数据树进行合并,以便生成更新后的元数据树并存储在磁盘中。

现有技术中在进行元数据的落盘操作时,具体是将内存元数据树中的最小值与磁盘原有的元数据树中的最小值进行比较,并将两个最小值中的较小值插入新生成的元数据树中,之后便继续更新获取内存元数据树的最小值和磁盘原有的元数据树的最小值,并进行新一轮的比较和插入。可见,现有的元数据落盘操作中,每次写入新生成的元数据树中的数据只有一个,效率较慢。

由此,采用何种元数据落盘技术,以便有效提高元数据落盘效率、减少耗时,是本领域技术人员所亟待解决的技术问题。



技术实现要素:

本申请的目的在于提供一种元数据落盘方法、装置、设备及计算机可读存储介质,以便有效地提高元数据落盘效率、减少耗时。

为解决上述技术问题,本申请提供一种元数据落盘方法,包括:

遍历内存元数据树和磁盘原有元数据树中的数据,直至将所述内存元数据树和所述磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中;

其中,在每次遍历所述内存元数据树和所述磁盘原有元数据树中的数据时,均具体执行以下操作:

确定所述内存元数据树中的当前最小值为第一比较值;

确定所述磁盘原有元数据树中的当前最小值为第二比较值;

确定所述第一比较值和所述第二比较值中的较小值和较大值;

判断所述较小值所在节点中的全部数据是否均小于所述较大值;

若是,则将所述节点中的全部数据均插入所述元数据落盘树的当前节点中。

可选地,在所述判断所述较小值所在节点中的全部数据是否均小于所述较大值之后,还包括:

若否,则将所述较小值插入所述元数据落盘树的当前节点中。

可选地,

所述内存元数据树、所述磁盘原有元数据树和所述元数据落盘树均为b+树。

可选地,在所述遍历内存元数据树和磁盘原有元数据树中的数据之前,还包括:

获取内存元数据树的当前数据量;

判断所述当前数据量是否大于预设阈值;

若是,则执行所述遍历内存元数据树和磁盘原有元数据树中的数据的步骤;

若否,则继续执行所述获取内存元数据树的当前数据量的步骤。

可选地,所述判断所述较小值所在节点中的全部数据是否均小于所述较大值包括:

确定所述节点中的最大值;

判断所述最大值是否小于所述较大值;

若是,则判定所述较小值所在节点中的全部数据均小于所述较大值;

若否,则判定所述较小值所在节点中的全部数据并非均小于所述较大值。

本申请还提供了一种元数据落盘装置,包括遍历模块,

所述遍历模块用于遍历内存元数据树和磁盘原有元数据树中的数据,直至将所述内存元数据树和所述磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中;

其中,所述遍历模块具体包括:

确定单元,用于在每次遍历内存元数据树和磁盘原有元数据树中的数据时,确定所述内存元数据树中的当前最小值为第一比较值;确定所述磁盘原有元数据树中的当前最小值为第二比较值;确定所述第一比较值和所述第二比较值中的较小值和较大值;

比较单元,用于判断所述较小值所在节点中的全部数据是否均小于所述较大值;

落盘单元,用于当所述节点中的全部数据均小于所述较大值时,将所述节点中的全部数据均插入所述元数据落盘树的当前节点中。

可选地,还包括:

获取模块,用于在所述遍历模块每次遍历内存元数据树和磁盘原有元数据树中的数据之前,获取所述内存元数据树的当前数据量;

判断模块,用于判断所述当前数据量是否大于预设阈值;若是,则所述遍历模块用于遍历所述内存元数据树和所述磁盘原有元数据树中的数据;若否,则所述获取模块继续用于获取所述内存元数据树的当前数据量。

可选地,所述比较单元具体用于:

确定所述节点中的最大值;判断所述最大值是否小于所述较大值;若是,则判定所述较小值所在节点中的全部数据均小于所述较大值;若否,则判定所述较小值所在节点中的全部数据并非均小于所述较大值。

本申请还提供了一种元数据落盘设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序以实现如上所述的任一种元数据落盘方法的步骤。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种元数据落盘方法的步骤。

本申请所提供的元数据落盘方法包括:遍历内存元数据树和磁盘原有元数据树中的数据,直至将所述内存元数据树和所述磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中;其中,在每次遍历所述内存元数据树和所述磁盘原有元数据树中的数据时,均具体执行以下操作:确定所述内存元数据树中的当前最小值为第一比较值;确定所述磁盘原有元数据树中的当前最小值为第二比较值;确定所述第一比较值和所述第二比较值中的较小值和较大值;判断所述较小值所在节点中的全部数据是否均小于所述较大值;若是,则将所述节点中的全部数据均插入所述元数据落盘树的当前节点中。

可见,相比于现有技术,本申请所提供的元数据落盘方法中,每次在遍历内存元数据树和磁盘原有元数据树得到第一比较值和第二比较值之后,进一步对第一比较值和第二比较值中的较小值所在节点进行了条件判断,以便在该节点中的数据普遍较小时,将该节点中的所有数据都一次性插入到元数据落盘树中,增加了单次遍历操作中插入到元数据落盘树中的数据的数量,从而减少了对内存元数据树和磁盘原有元数据树的遍历次数,进而可有效提高整个元数据落盘操作中的处理效率,减少耗时。本申请所提供的元数据落盘装置、设备及计算机可读存储介质可以实现上述元数据落盘方法,同样具有上述有益效果。

附图说明

为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。

图1为本申请所提供的一种元数据落盘方法中的遍历操作的流程图;

图2为本申请所提供的又一种元数据落盘方法中的遍历操作的流程图;

图3为本申请所提供的一种元数据落盘装置的结构框图。

具体实施方式

本申请的核心在于提供一种元数据落盘方法、装置、设备及计算机可读存储介质,以便有效地提高元数据落盘效率、减少耗时。

为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请所提供的元数据落盘方法主要包括遍历内存元数据树和磁盘原有元数据树中的数据,直至将所述内存元数据树和所述磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中;

其中,请参考图1,图1为本申请所提供的一种元数据落盘方法中的遍历操作的流程图。如图1所示,在每次遍历所述内存元数据树和所述磁盘原有元数据树中的数据时,均具体执行以下操作:

步骤11:确定内存元数据树中的当前最小值为第一比较值;

步骤12:确定磁盘原有元数据树中的当前最小值为第二比较值;

步骤13:确定第一比较值和第二比较值中的较小值和较大值;

步骤14:判断较小值所在节点中的全部数据是否均小于较大值;若是,则进入步骤15;

步骤15:将节点中的全部数据均插入元数据落盘树的当前节点中。

具体地,元数据又称中介数据、中继数据,为描述数据的数据,即数据的数据,它是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

任何文件装置中的数据分为文件实际数据和元数据,元数据用来描述文件特征,诸如访问权限、文件拥有者以及文件数据块的分布信息等。特别地,在分布式存储集群中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置,而用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

当计算机进行磁盘i/o操作即读/写操作时,其对文件实际数据的改动势必会在内存中产生出对应的新的元数据。元数据的落盘操作即是将内存中新生成的元数据与磁盘中原有的元数据进行合并,并将合并后的元数据代替磁盘中的原有元数据存储在磁盘中。

元数据都是按照一定的数据结构——树结构进行存储的,由此,在本申请中,内存中生成的元数据即称为内存元数据树,磁盘中原有的元数据即称为磁盘原有元数据树,而合并后存储在磁盘中的元数据即称为元数据落盘树。

在树结构中有诸多节点,包括根节点、各阶分支节点和叶子节点,每阶可以有多个节点,每个节点中可以存储有多个数据。每一种树结构都是按照特定的节点规则和各个数据的大小关系而生成的,不同的树结构其节点规则不同。

因此,在对内存元数据树和磁盘原有元数据树进行合并时,需要对内存元数据树和磁盘原有元数据树中的数据进行大小关系的确定。所以,在每次遍历内存元数据树和磁盘原有元数据树中的数据时,需要依据数据大小关系确定出此时可以插入到元数据落盘树的当前节点中的数据,并执行插入操作。

由此,本申请所提供的元数据落盘方法,在每次进行遍历操作时,具体可以确定出内存元数据树中的当前最小值,将其作为本次遍历操作得到的第一比较值;并确定出磁盘原有元数据树中的当前最小值,将其作为本次遍历操作的第二比较值。

需要说明的是,本申请对步骤11和步骤12的先后执行顺序并不进行限定,即,本领域技术人员也可以先执行步骤12的操作再执行步骤11的操作,这对本申请的核心保护内容没有影响。

当确定出第一比较值和第二比较值后,可以确定两者中的较小值和较大值,则该当前可插入到元数据落盘树当前节点中的数据至少可以包括该较小值。当然,该较小值既可能是来自于内存元数据树的第一比较值,也可能是来自于磁盘原有元数据树的第二比较值。

但是,为了进一步提高落盘效率,可以在这一次遍历过程中尽可能多地确定可以插入元数据落盘树中的数据,这是因为,不管是遍历内存元数据树获取第一比较值的过程,还是遍历磁盘原有元数据树获取第二比较值的过程,都较为耗时。因此,如果可以在一次遍历过程中就依据数据大小确定多个可以落盘的数据,必定可以提升整个元数据落盘操作的速度和效率。

由此,本申请所提供的元数据落盘方法在获取到第一比较值和第二比较值的大小关系后,还进一步对两者中的较小值所在节点也进行了大小分析:较小值所在节点中的所有数据如果全都小于较大值,则可以直接使用该节点,即,将该节点中的所有数据全都插入到元数据落盘树的当前节点中。

具体地,由于无论是内存元数据树还是磁盘原有元数据树,它们都是已经生成的有序的树,所以,如果较小值是来自于内存元数据树的第一比较值,那么该节点中的数据与内存元数据树其他节点中数据的大小关系都是已经符合了树结构的生成规则的,而若该节点中所有数据同时还小于第二比较值(即磁盘原有元数据树的当前最小值),则磁盘原有元数据树就不会影响到该节点中各个数据的排序,因此可直接将该节点中的所有数据插入到元数据落盘树的当前节点中。

需要说明的是,元数据落盘树的具体生成过程可依据现有技术中的内容进行,依据对应的树结构的生成规则可自动实现分节点而确定出所说的当前节点,本申请重在保护的内容在于当每次遍历得到第一比较值和第二比较值后,如何确定插入到元数据落盘树当前节点中的数据。

当将本次遍历后确定的数据插入到插入到元数据落盘树当前节点中后,即可继续进行下一次遍历,确定新一轮的第一比较值和第二比较值,并继续完成后续步骤,直至将内存元数据树和磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中。

可见,本申请所提供的元数据落盘方法中,每次在遍历内存元数据树和磁盘原有元数据树得到第一比较值和第二比较值之后,进一步对第一比较值和第二比较值中的较小值所在节点进行了条件判断,以便在该节点中的数据普遍较小时,将该节点中的所有数据都一次性插入到元数据落盘树中,增加了单次遍历操作中插入到元数据落盘树中的数据的数量,从而减少了对内存元数据树和磁盘原有元数据树的遍历次数,进而可有效提高整个元数据落盘操作中的处理效率,减少耗时。

本申请所提供的元数据落盘方法,在上述实施例的基础上:

请参考图2,图2为本申请所提供的又一种元数据落盘方法中的遍历操作的流程图。

如图2所示,作为一种优选实施例,在判断较小值所在节点中的全部数据是否均小于较大值之后,还包括:

若否,则进入步骤16,将较小值插入元数据落盘树的当前节点中。

具体地,若该较小值所在的节点不满足预设条件,即该节点中存在一部分不小于较大值的数据,则无法将该部分不小于较大值的数据也插入元数据落盘树的当前节点中,所以,此时可以只将该较小值插入到元数据落盘树的当前节点中。

作为一种优选实施例,内存元数据树、磁盘原有元数据树和元数据落盘树均为b+树。

具体地,b+树或称为b+tree,是一种存储领域中常用的数据结构,相比于b树、b-树等,它具有更高的查询性能。

如前所述,b+树有对应的节点规则。对于m阶b+tree,树中任一有m个子树的节点包含有m个数据;并且,所有分支节点和根节点的数据都同时存在于子节点中;其根节点和分支节点中不保存数据,只用于索引,所有数据都保存在叶子节点中,叶子节点中包含有指向数据记录的指针,各个叶子节点本身根据数据从小到大的顺序依次链接。

如图2所示,作为一种优选实施例,在遍历内存元数据树和磁盘原有元数据树中的数据之前,还包括:

步骤21:获取内存元数据树的当前数据量;

步骤22:判断当前数据量是否大于预设阈值;若是,则进入步骤11;若否,则继续进入步骤21。

具体地,在进行元数据落盘操作之前,可以先对内存元数据树的当前数据量进行判断,以便在内存元数据树的当前数据量足够大时再进行元数据落盘操作,若当前数据量较少,则可以暂时等待,直至当前数据量大于预设阈值。由此,可有效避免在数据量较少时就频繁进行元数据落盘操作的情况,从而有效减少元数据落盘操作对存储系统性能和资源的消耗,进而保障存储系统的业务运行性能。

当然,所说的预设阈值可由本领域技术人员根据实际应用情况而自行选择并设置实现,本领域技术人员对此并不进行限定。

作为一种优选实施例,判断较小值所在节点中的全部数据是否均小于较大值包括:

确定节点中的最大值;

判断最大值是否小于较大值;

若是,则判定较小值所在节点中的全部数据均小于较大值;

若否,则判定较小值所在节点中的全部数据并非均小于较大值。

具体地,在将较小值所在节点中的全部数据与较大值进行比较时,具体可以利用较小值所在节点中的最大值。如果该最大值都小于所说的较大值,那么必定说明该节点中的所有数据都是小于较大值的,否则反之。

下面对本申请所提供的元数据落盘装置进行介绍。

请参阅图3,图3为本申请所提供的一种元数据落盘装置的结构框图;包括遍历模块1,

遍历模块1用于遍历内存元数据树和磁盘原有元数据树中的数据,直至将内存元数据树和磁盘原有元数据树中的所有数据均插入所生成的元数据落盘树中;

其中,遍历模块1具体包括确定单元11、比较单元12和落盘单元13;

确定单元11用于在每次遍历内存元数据树和磁盘原有元数据树中的数据时,确定内存元数据树中的当前最小值为第一比较值;确定磁盘原有元数据树中的当前最小值为第二比较值;确定第一比较值和第二比较值中的较小值和较大值;

比较单元12用于判断较小值所在节点中的全部数据是否均小于较大值;

落盘单元13用于当节点中的全部数据均小于较大值时,将节点中的全部数据均插入元数据落盘树的当前节点中。

可见,本申请所提供的元数据落盘装置,每次在遍历内存元数据树和磁盘原有元数据树得到第一比较值和第二比较值之后,进一步对第一比较值和第二比较值中的较小值所在节点进行了条件判断,以便在该节点中的数据普遍较小时,将该节点中的所有数据都一次性插入到元数据落盘树中,增加了单次遍历操作中插入到元数据落盘树中的数据的数量,从而减少了对内存元数据树和磁盘原有元数据树的遍历次数,进而可有效提高整个元数据落盘操作中的处理效率,减少耗时。

本申请所提供的元数据落盘装置,在上述实施例的基础上:

作为一种优选实施例,落盘单元13还用于:

在比较单元12判定较小值所在节点中的全部数据并非均小于较大值之后,将较小值插入元数据落盘树的当前节点中。

作为一种优选实施例,内存元数据树、磁盘原有元数据树和元数据落盘树均为b+树。

作为一种优选实施例,还包括获取模块2和判断模块3:

获取模块2用于在遍历模块每次遍历内存元数据树和磁盘原有元数据树中的数据之前,获取内存元数据树的当前数据量;

判断模块3用于判断当前数据量是否大于预设阈值;若是,则遍历模块1用于遍历内存元数据树和磁盘原有元数据树中的数据;若否,则获取模块2继续用于获取内存元数据树的当前数据量。

作为一种优选实施例,比较单元12具体用于:

确定节点中的最大值;判断最大值是否小于较大值;若是,则判定较小值所在节点中的全部数据均小于较大值;若否,则判定较小值所在节点中的全部数据并非均小于较大值。

本申请还提供了一种元数据落盘设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序以实现如上所述的任一种元数据落盘方法的步骤。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种元数据落盘方法的步骤。

本申请所提供的元数据落盘装置、设备及计算机可读存储介质的具体实施方式与上文所描述的元数据落盘方法可相互对应参照,这里就不再赘述。

本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置和设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1