本申请涉及数据处理技术领域,尤其涉及一种元数据存储方法及装置。
背景技术:
随着固态硬盘技术的快速进步,固态硬盘的成本逐渐降低,由固态硬盘所组成的全闪存储系统越来越受广大用户的青睐。为了适应固态硬盘的存储特性,现有的全闪存储系统采用追加写+垃圾回收的数据存储方式。全闪存储系统在使用追加写+垃圾回收的过程中,会生成大量的元数据,大量的元数据经由缓存后,会再次写入固态硬盘中。然而,在现有的元数据存储方式中,依据随机小块的元数据写入操作,无序地将缓存内的元数据写入固态硬盘中,基于固态硬盘追加写的存储特性,采取这种写入方式会使得固态硬盘的写入效率明显降低,从而降低全闪存储系统的数据处理效率和性能。
因此,亟需一种元数据存储方法,用于提高元数据写入固态硬盘的效率,从而提升全闪存储系统的数据处理效率和性能。
技术实现要素:
本申请提供了一种元数据存储方法及装置,目的在于提高元数据写入固态硬盘的效率,从而提升全闪存储系统的数据处理效率和性能。
为了实现上述目的,本申请提供了以下技术方案:
本申请实施例第一方面公开了一种元数据存储方法,所述元数据存储方法包括:
确定预设写缓存中刷盘目录下的待刷盘队列,所述待刷盘队列中存储有缓存树,所述缓存树包括刷盘树和接收树,所述刷盘树和所述接收树为b+树数据结构;
控制所述接收树从等待队列中获取待写入元数据的地址信息,所述等待队列用于存储元数据写入请求,所述元数据写入请求包括所述待写入元数据的地址信息;
控制所述刷盘树从所述接收树中获取待写入元数据的地址信息,依据所述地址信息,将所述待写入元数据写入固态硬盘。
可选的,在上述元数据存储方法中,所述预设写缓存的预设过程包括:
在非掉电保护内存中选取预设范围的存储空间,将所述存储空间作为所述预设写缓存。
可选的,在上述元数据存储方法中,所述控制所述接收树从等待队列中获取待写入元数据的地址信息,包括:
基于与所述接收树同属于一所述缓存树中的刷盘树获取待写入元数据的地址信息个数,控制所述接收树从等待队列中获取相应个数的待写入元数据的地址信息;
在所述刷盘树从所述接收树中获取所述待写入元数据的地址信息之后,控制所述接收树继续从所述等待队列中获取相应个数的待写入元数据的地址信息,直至所述等待队列中无可获取的待写入元数据的地址信息。
可选的,在上述元数据存储方法中,所述控制所述刷盘树从所述接收树中获取待写入元数据的地址信息,依据所述地址信息,将所述待写入元数据写入固态硬盘,包括:
控制所述刷盘树依次从所述接收树中获取待写入元数据的地址信息,并依据每次获取到的所述地址信息,将对应所述地址信息的待写入元数据写入固态硬盘,直至所述接收树中无可获取待写入元数据的地址信息。
本申请实施例第二方面公开了一种元数据存储装置,所述元数据存储装置包括:
确定单元,用于确定预设写缓存中刷盘目录下的待刷盘队列,所述待刷盘队列中存储有缓存树,所述缓存树包括刷盘树和接收树,所述刷盘树和所述接收树为b+树数据结构;
控制单元,用于控制所述接收树从等待队列中获取待写入元数据的地址信息,所述等待队列用于存储元数据写入请求,所述元数据写入请求包括所述待写入元数据的地址信息;
写入单元,用于控制所述刷盘树从所述接收树中获取待写入元数据的地址信息,依据所述地址信息,将所述待写入元数据写入固态硬盘。
可选的,在上述元数据存储装置中,所述确定单元包括:
选取模块,用于在非掉电保护内存中选取预设范围的存储空间,将所述存储空间作为所述预设写缓存。
可选的,在上述元数据存储装置中,所述控制单元包括:
第一控制模块,用于基于与所述接收树同属于一所述缓存树中的刷盘树获取待写入元数据的地址信息个数,控制所述接收树从等待队列中获取相应个数的待写入元数据的地址信息;
第二控制模块,用于在所述刷盘树从所述接收树中获取所述待写入元数据的地址信息之后,控制所述接收树继续从所述等待队列中获取相应个数的待写入元数据的地址信息,直至所述等待队列中无可获取的待写入元数据的地址信息。
可选的,在上述元数据存储装置中,所述写入单元包括:
写入模块,用于控制所述刷盘树依次从所述接收树中获取待写入元数据的地址信息,并依据每次获取到的所述地址信息,将对应所述地址信息的待写入元数据写入固态硬盘,直至所述接收树中无可获取待写入元数据的地址信息。
本申请实施例第三方面公开了一种全闪存储系统,所述全闪存储系统包括上述本申请实施例第二方面公开的元数据存储装置。
本申请提供的元数据存储方法及装置,确定预设写缓存中刷盘目录下的待刷盘队列,待刷盘队列中存储有缓存树,缓存树包括刷盘树和接收树,刷盘树和接收树为b+树数据结构。控制接收树从等待队列中获取待写入元数据的地址信息,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。控制刷盘树从接收树中获取待写入元数据的地址信息,依据地址信息,将待写入元数据写入固态硬盘。可见本申请中,基于预设写缓存中刷盘队列中存储的缓存树,实现从等待队列中获取待写入元数据的地址信息,并依据地址信息,将待写入元数据写入固态硬盘中,由此能够将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种元数据存储方法的示意图;
图2为本申请实施例提供的一种控制接收树从等待队列中获取待写入元数据的地址信息的具体实现方式的示意图;
图3为本申请实施例提供的一种元数据存储装置的结构示意图;
图4为本申请实施例提供的另一种元数据存储装置的结构示意图;
图5为本申请实施例提供的另一种元数据存储装置的结构示意图;
图6为本申请实施例提供的另一种元数据存储装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种元数据存储方法的示意图,该方法应用于全闪存储系统,包括如下步骤:
s101:确定预设写缓存中刷盘目录下的待刷盘队列。
在s101中,待刷盘队列中存储有缓存树,缓存树包括刷盘树和接收树,刷盘树和接收树为b+树数据结构。
需要说明的是,元数据缓存于掉电保护内存中,因掉电保护内存的内存资源十分有限,为了提高掉电保护内存的内存利用率。
可选的,在非掉电保护内存中选取预设范围的存储空间,将存储空间作为预设写缓存。
需要说明的是,预设写缓存包括多个目录,刷盘目录为多个目录中满足刷盘条件的目录。刷盘目录下的待刷盘队列中存储有一个或多个缓存树。
s102:控制接收树从等待队列中获取待写入元数据的地址信息。
在s102中,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。
需要说明的是,接收树从等待队列中获取待写入元数据的地址信息,并将该地址信息存储于自身的节点中。
s103:控制刷盘树从接收树中获取待写入元数据的地址信息,依据地址信息,将待写入元数据写入固态硬盘。
在s103中,控制刷盘树依次从接收树中获取待写入元数据的地址信息,并依据每次获取到的地址信息,将对应地址信息的待写入元数据写入固态硬盘,直至接收树中无可获取待写入元数据的地址信息。
在本申请实施例中,确定预设写缓存中刷盘目录下的待刷盘队列,待刷盘队列中存储有缓存树,缓存树包括刷盘树和接收树,刷盘树和接收树为b+树数据结构。控制接收树从等待队列中获取待写入元数据的地址信息,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。控制刷盘树从接收树中获取待写入元数据的地址信息,依据地址信息,将待写入元数据写入固态硬盘。可见本申请中,基于预设写缓存中刷盘队列中存储的缓存树,实现从等待队列中获取待写入元数据的地址信息,并依据地址信息,将待写入元数据写入固态硬盘中,将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
可选的,上述图1示出的s102中,控制接收树从等待队列中获取待写入元数据的地址信息这一过程在具体实现中,如图2所示,为本申请实施例提供的一种控制接收树从等待队列中获取待写入元数据的地址信息的具体实现方式的示意图,包括如下步骤:
s201:基于与接收树同属于一缓存树中的刷盘树获取待写入元数据的地址信息个数,控制接收树从等待队列中获取相应个数的待写入元数据的地址信息。
在s201中,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。
具体的,若与接收树同属于一缓存树中的刷盘树获取待写入元数据的地址信息个数为10个,则控制接收树从等待队列中获取10个待写入元数据的地址信息。
需要说明的是,上述具体实现过程仅仅用于举例说明。
s202:在刷盘树从接收树中获取待写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,直至等待队列中无可获取的待写入元数据的地址信息。
在s202中,接收树每次从等待队列获取地址信息的个数,与刷盘树从接收树中获取地址信息的个数是一一对应的。
在本申请实施例中,基于与接收树同属于一缓存树中的刷盘树获取待写入元数据的地址信息个数,控制接收树从等待队列中获取相应个数的待写入元数据的地址信息。在刷盘树从接收树中获取待写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,直至等待队列中无可获取的待写入元数据的地址信息。可见本申请中,刷盘树从接收树中获取待相应个数的写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,由此能够实现批量地将元数据写入固态硬盘中,换而言之,能够将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
基于上述本申请实施例提供的元数据存储方法,本申请实施例还对应提供了一种元数据存储装置的结构示意图,如图3所示,该装置适用于全闪存储系统,该装置包括:
确定单元100,用于确定预设写缓存中刷盘目录下的待刷盘队列,待刷盘队列中存储有缓存树,缓存树包括刷盘树和接收树,刷盘树和接收树为b+树数据结构。
控制单元200,用于控制接收树从等待队列中获取待写入元数据的地址信息,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。
写入单元300,用于控制刷盘树从接收树中获取待写入元数据的地址信息,依据地址信息,将待写入元数据写入固态硬盘。
在本申请实施例中,确定预设写缓存中刷盘目录下的待刷盘队列,待刷盘队列中存储有缓存树,缓存树包括刷盘树和接收树,刷盘树和接收树为b+树数据结构。控制接收树从等待队列中获取待写入元数据的地址信息,等待队列用于存储元数据写入请求,元数据写入请求包括待写入元数据的地址信息。控制刷盘树从接收树中获取待写入元数据的地址信息,依据地址信息,将待写入元数据写入固态硬盘。可见本申请中,基于预设写缓存中刷盘队列中存储的缓存树,实现从等待队列中获取待写入元数据的地址信息,并依据地址信息,将待写入元数据写入固态硬盘中,由此能够将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
可选的,如图4所示,为本申请实施例提供的另一种元数据存储装置的结构示意图,其中,确定单元100包括:
选取模块101,用于在非掉电保护内存中选取预设范围的存储空间,将存储空间作为预设写缓存。
在本申请实施例中,元数据缓存于掉电保护内存中,因掉电保护内存的内存资源十分有限。在非掉电保护内存中选取预设范围的存储空间,将存储空间作为预设写缓存,能够提高掉电保护内存的内存利用率,从而提升全闪存储系统的数据处理效率和性能。
可选的,如图5示,为本申请实施例提供的另一种元数据存储装置的结构示意图,其中,控制单元200包括:
第一控制模块201,用于基于与接收树同属于一缓存树中的刷盘树获取待写入元数据的地址信息个数,控制接收树从等待队列中获取相应个数的待写入元数据的地址信息。
第二控制模块202,用于在刷盘树从接收树中获取待写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,直至等待队列中无可获取的待写入元数据的地址信息。
在本申请实施例中,基于与接收树同属于一缓存树中的刷盘树获取待写入元数据的地址信息个数,控制接收树从等待队列中获取相应个数的待写入元数据的地址信息。在刷盘树从接收树中获取待写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,直至等待队列中无可获取的待写入元数据的地址信息。可见本申请中,刷盘树从接收树中获取待相应个数的写入元数据的地址信息之后,控制接收树继续从等待队列中获取相应个数的待写入元数据的地址信息,由此能够实现批量地将元数据写入固态硬盘中,换而言之,能够将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
可选的,如图6示,为本申请实施例提供的另一种元数据存储装置的结构示意图,其中,写入单元300包括:
写入模块301,用于控制刷盘树依次从接收树中获取待写入元数据的地址信息,并依据每次获取到的地址信息,将对应地址信息的待写入元数据写入固态硬盘,直至接收树中无可获取待写入元数据的地址信息。
在本申请实施例中,控制刷盘树依次从接收树中获取待写入元数据的地址信息,并依据每次获取到的地址信息,将对应地址信息的待写入元数据写入固态硬盘,直至接收树中无可获取待写入元数据的地址信息。可见本申请中,基于预设写缓存中刷盘队列中存储的缓存树,实现从等待队列中获取待写入元数据的地址信息,并依据地址信息,将待写入元数据写入固态硬盘中由此能够实现批量地将元数据写入固态硬盘中,换而言之,能够将随机小块的元数据写入操作,转换为连续大块的元数据写入操作,从而显著提高了元数据写入固态硬盘的效率,提升全闪存储系统的数据处理效率和性能。
可选的,本申请实施例还提供了一种全闪存储系统,该全闪存储系统包括上述本申请实施例提供的元数据存储装置。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。