掌桥专利:专业的专利平台
掌桥专利
首页

元数据访问方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


元数据访问方法、装置、电子设备及存储介质

技术领域

本发明涉及数据存储技术领域,具体涉及元数据访问方法、装置、电子设备及存储介质。

背景技术

存储系统可以将大量的各类存储介质以池化的方式统一管理起来,并根据前端需求,提供块、文件、对象等不同的服务方式。存储系统通过创建磁盘阵列(Redundant ArraysofIndependent Disks,RAID)等方式,将介质池化后,需要依靠元数据将池化后的空间与对外提供的服务建立映射关系,从而在主机侧进行读写访问时,可以通过元数据读取或写入到合适的存储介质中。

由于空间映射关系依靠元数据来组织和管理,因此,存储系统的性能很大程度上依赖元数据访问的性能。但由于存储系统中的元数据量级非常大,元数据无法全量存放到内存中,进而导致绝大部分的元数据最终需要保存到后端硬盘中。

相关技术中,存储系统为提高元数据访问性能,会利用缓存存储元数据,以缩短元数据访问路径,提高元数据的访问性能。但存储系统中的缓存资源有限,因此,如何使缓存资源分配更合理成为待解决的问题。

发明内容

有鉴于此,本发明提供了一种元数据访问方法、装置、电子设备及存储介质,以解决因缓存资源有限,影响元数据访问性能的问题。

第一方面,本发明提供了一种元数据访问方法,方法包括:

接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象;

获取目标存储对象的目标b+树,目标b+树为目标存储对象的数据结构;

根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点;

基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域;

从目标缓存区域中获取目标元数据,以响应数据访问请求。

在该方式中,能够预先将目标存储对象所使用的存储资源根据目标存储对象的目标b+树的层结构进行划分,进而当确定存储目标元数据的目标节点在目标b+树中的目标层时,可以从对应的目标缓存区域中获取目标元数据,从而能够有效提高元数据访问效率,达到提升存储系统性能的目的。

在一种可选的实施方式中,基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域,包括:

根据目标b+树的层结构,分别确定层结构中每一层对应的缓存区域;

根据各层对应的缓存区域,确定目标层对应的目标缓存区域。

在该方式中,可以根据各节点的访问频率采用不同的缓存区域缓存对应的元数据,以对目标存储对象的缓存资源进行合理利用,进而访问目标存储对象的元数据时,能够提高目标存储对象的缓存资源的利用率,从而提高存储系统的性能。

在一种可选的实施方式中,目标b+树的层结构包括固定写缓存层、可变写缓存层以及读缓存层,固定写缓存层对应的缓存区域为固定写缓存区域,可变写缓存层对应的缓存区域为可变写缓存区域,读缓存层对应的缓存区域为读缓存区域,固定写缓存层高于可变写缓存层,可变写缓存层高于读缓存层;

根据各层对应的缓存区域,确定目标层对应的目标缓存区域,包括:

若目标层处于固定写缓存层内,则确定目标缓存区域为固定写缓存区域;

若目标层处于可变写缓存层内,则确定目标缓存区域为可变写缓存区域;

若目标层处于读缓存层内,则确定目标缓存区域为读缓存区域。

在一种可选的实施方式中,方法还包括:

监测目标b+树的访问参数;

基于访问参数在指定使用周期内的变化,调节目标b+树对应配置的缓存资源,缓存资源包括:写缓存资源和/或读缓存资源。

在该方式中,能够基于目标b+树在指定时间周期内的访问参数,对为目标b+树配置的缓存资源进行针对性调节,进而使目标b+树的缓存资源能够满足目标b+树的运行需求,从而提高元数据的访问性能,增强存储系统的性能。

在一种可选的实施方式中,访问参数包括元数据的写访问热度;基于访问参数在指定使用周期内的变化,调节目标b+树对应配置的缓存资源,包括:

获取目标b+树中存储的多个元数据的历史数据命中率;

若历史数据命中率大于或者等于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则扩增写缓存资源;

若历史数据命中率小于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则缩减写缓存资源。

在一种可选的实施方式中,方法还包括:

获取目标b+树在单位时间内的读访问热度;

获取目标b+树在单位时间内的写访问热度;

基于读访问热度与写访问热度之间的比值,配置目标b+树的缓存资源。

在一种可选的实施方式中,方法还包括:

若目标b+树在单位时间内的数据命中率高于其他b+树在单位时间内的数据命中率,则扩增缓存资源,其他b+树为其他存储对象的数据结构,目标存储对象和其他存储对象存储于同一存储系统内;

若目标b+树在单位时间内的数据命中率低于其他b+树在单位时间内的数据命中率,则缩减缓存资源。

第二方面,本发明提供了一种元数据访问装置,装置包括:

第一确定模块,用于接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象;

第一获取模块,用于获取目标存储对象的目标b+树,目标b+树为目标存储对象的数据结构;

第二确定模块,用于根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点;

第三确定模块,用于基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域;

第二获取模块,用于从目标缓存区域中获取目标元数据,以响应数据访问请求。

第三方面,本发明提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的元数据访问方法。

第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的元数据访问方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据相关技术提供的元数据访问系统的结构示意图;

图2是根据本发明实施例的元数据访问方法的流程示意图;

图3是根据本发明实施例的另一元数据访问方法的流程示意图;

图4是根据本发明实施例的b+树节点划分示意图;

图5是根据本发明实施例的又一元数据访问方法的流程示意图;

图6是根据本发明实施例的缓存资源调节的流程示意图;

图7是根据本发明实施例的元数据访问装置的结构框图;

图8是本发明实施例的电子设备的硬件结构示意图。

具体实施方式

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

相关技术中,存储系统对存储介质进行池化管理,以组成数据存储池,进而可以根据用户需求创建大量的存储对象(例如:逻辑卷(LUN)、创建文件或者对象等),并基于远程协议(例如:Fabric,一种开源的分布式账本技术协议),通过光纤或者网际互连协议(Internet Protocol,IP)网络将缓存对象映射到主机端,以供用户根据需求进行针对性调用。

如图1所示,以缓存对象为LUN为例,存储系统中包括n个LUN,n>0,n为正整数。当主机侧向存储系统中的某个LUN写入数据后,在存储系统中会将该LUN接收到的数据写入数据池中,并将该数据在数据池中分配合适的写入位置,最后由元数据负责记录这些数据从LUN到数据存储池之间的映射关系。存储系统利用缓存存储元数据,以缩短元数据访问路径,提高元数据的访问性能。但由于存储系统中的缓存资源有限,因此,如何使缓存资源分配更合理成为待解决的问题。

鉴于此,本发明实施例提供了一种元数据访问方法,包括:接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象;获取目标存储对象的目标b+树,目标b+树为目标存储对象的数据结构;根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点;基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域;从目标缓存区域中获取目标元数据,以响应数据访问请求。通过本发明提供的元数据访问方法,能够预先将目标存储对象所使用的存储资源根据目标存储对象的目标b+树的层结构进行划分,进而当确定存储目标元数据的目标节点在目标b+树中的目标层时,可以从对应的目标缓存区域中获取目标元数据,从而能够有效提高元数据访问效率,达到提升存储系统性能的目的。

根据本发明实施例,提供了一种元数据访问方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中提供了一种元数据访问方法,可用于上述存储系统,图2是根据本发明实施例的元数据访问方法的流程图,如图2所示,该流程包括如下步骤:

步骤S201,接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象。

在本发明实施例中,目标存储对象可以为存储系统中已创建的逻辑卷、创建文件或者对象。不同存储对象对应的元数据不同。为便于提高元数据的访问效率,则响应接收到的访问目标元数据的数据访问请求,确定存储该目标元数据的目标存储对象,以便确定该目标存储对象可以使用的存储资源。

步骤S202,获取目标存储对象的目标b+树。

在本发明实施例中,目标b+树为目标存储对象的数据结构。为便于管理目标存储对象的元数据,则利用目标b+树对目标存储对象的元数据进行存储和管理,以提高该目标元数据的查询效率。

步骤S203,根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点。

在本发明实施例中,在目标B+树的内部节点(非叶子节点)中包含多个键值对(Key-Value,KV,或称为索引项),每个键值对包括一个关键字(Key)和一个指针(Value)。关键字用于进行节点间的查找和比较操作,指针用于指向下一级节点、指向同级节点或者指向叶子节点。叶子节点内存储着真实的元数据内容。它们包含关键字和指向实际元数据的指针。这些指针可以指向磁盘块或者数据存放的目标缓存区域。

因此,为便于实现对目标元数据的快速查找和访问,则根据该目标元数据的关键字,确定目标b+树中存储该目标元数据的目标节点,以便可以快速定位存储该目标元数据的目标缓存区域。

步骤S204,基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域。

在本发明实施例中,根据目标b+树的层结构,针对不同层的节点采用不同缓存区域存储对应的元数据。因此,为提高目标元数据的访问性能,则基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域。

步骤S205,从目标缓存区域中获取目标元数据,以响应数据访问请求。

在本发明实施例中,目标缓存区域可以是目标存储对象对应使用的部分缓存区域,也可以是全部缓存区域。当确定目标元数据存在目标缓存区域中,则从该目标缓存区域中获取目标元数据,以响应接收到的数据访问请求。

本实施例提供的元数据访问方法,能够预先将目标存储对象所使用的存储资源根据目标存储对象的目标b+树的层结构进行划分,进而当确定存储目标元数据的目标节点在目标b+树中的目标层时,可以从对应的目标缓存区域中获取目标元数据,从而能够有效提高元数据访问效率,达到提升存储系统性能的目的。

在本实施例中提供了一种元数据访问方法,可用于上述存储系统,图3是根据本发明实施例的元数据访问方法的流程图,如图3所示,该流程包括如下步骤:

步骤S301,接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象。详细请参见图1所示实施例的步骤S201,在此不再赘述。

步骤S302,获取目标存储对象的目标b+树。详细请参见图1所示实施例的步骤S202,在此不再赘述。

步骤S303,根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点。详细请参见图1所示实施例的步骤S203,在此不再赘述。

步骤S304,基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域。

具体地,上述步骤S304包括:

步骤S3041,根据目标b+树的层结构,分别确定层结构中每一层对应的缓存区域。

在本发明实施例中,根据目标b+树的层结构,能够确定目标b+树的层数量,进而为便于合理利用目标存储对象对应可调用的存储资源,则预先为目标b+树每一层的节点分配对应的缓存区域。其中,相邻的两层节点可以与同一缓存区域对应,也可以对应不同的缓存区域,可以根据实际需求进行设定。

当确定目标元数据是由目标b+树管理后,则分别确定层结构中每一层对应的缓存区域,以便当确定目标节点后,可以快速定位置存储该目标元数据的目标缓存区域。

步骤S3042,根据各层对应的缓存区域,确定目标层对应的目标缓存区域。

在本发明实施例中,在确定目标节点所在的目标层后,根据各层与缓存区域之间的对应关系,确定该目标层对应的目标缓存区域。

在一可选的实施方式中,为提高确定目标缓存区域的确定效率,则可以根据各层与与缓存区域之间的对应关系,直接确定目标缓存区域。

在一些可选的实施方式中,目标b+树的层结构包括固定写缓存层、可变写缓存层以及读缓存层,固定写缓存层对应的缓存区域为固定写缓存区域,可变写缓存层对应的缓存区域为可变写缓存区域,读缓存层对应的缓存区域为读缓存区域,固定写缓存层高于可变写缓存层,可变写缓存层高于读缓存层,上述步骤S3042包括:

步骤a1,若目标层处于固定写缓存层内,则确定目标缓存区域为固定写缓存区域。

步骤a2,若目标层处于可变写缓存层内,则确定目标缓存区域为可变写缓存区域。

步骤a3,若目标层处于读缓存层内,则确定目标缓存区域为读缓存区域。

在该方式中,用于提高元数据访问性能的缓存资源可以包括读缓存资源和写缓存资源。读缓存区域用于提供读缓存资源,写缓存区域用于提供写缓存资源。写缓存区域包括固定写缓存区域和可变写缓存区域。

由于目标存储对象的写缓存资源有限,且目标b+树层结构中层级越高,对应的节点访问量越频繁,因此,需要将访问量最高的节点中的元数据存储至固定写缓存区域内。由于元数据访问是由目标b+树的根节点发起,根节点及其相邻的上层中间节点是K-V访问的毕竟路径,故,可以将目标b+树中的根节点以及根节点以下的一层至两层中间节点划分为固定写缓存层,进而避免高访问节点因元数据频繁读写而影响访问性能的情况发生。

由于中间节点的访问频率相对较高,且当元数据的K-V发生改变时在内存中完成即可,因此,为避免频繁读写盘,则可以将中下层的中间节点所在的层划分为可变写缓存层,并将可变写缓存层内的元数据存储至可变写缓存区域内。可变写缓存层可以包括部分叶子节点。

由于叶子节点修改的频率相对较低,且元数据的量级较小,长期放置在写缓存区域内会降低写缓存资源的利用率,因此,可以将叶子节点所在层划分为读缓存层,以利用写缓存区域存储该部分的元数据,从而有助于提高元数据的读效率。

其中,固定写缓存层表示固定给目标b+树配置的写缓存,属于目标b+树的专有配置,不能减少;可变写缓存层表示存储系统中所有存储对象对应b+树可共用的写缓存,不是某b+树的专用缓存资源,可以根据需要分配给目标b+树使用,也可从目标b+树中回收;读缓存层则用于存放目标b+树的节点,可以降低节点访问时延,提高访问效率,读缓存也非目标b+树专有,也是可以根据需求,分配给目标b+树或从目标b+树中回收。

进而当若目标层处于固定写缓存层内,则确定目标缓存区域为固定写缓存区域;若目标层处于可变写缓存层内,则确定目标缓存区域为可变写缓存区域;若目标层处于读缓存层内,则确定目标缓存区域为读缓存区域。

步骤S305,从目标缓存区域中获取目标元数据,以响应数据访问请求。详细请参见图1所示实施例的步骤S205,在此不再赘述。

本实施例提供的元数据访问方法,可以根据各节点的访问频率采用不同的缓存区域缓存对应的元数据,以对目标存储对象的缓存资源进行合理利用,进而访问目标存储对象的元数据时,能够提高目标存储对象的缓存资源的利用率,从而提高存储系统的性能。

在一些可选的实施场景中,目标存储对象的目标b+树结构可以如图4所示,将根节点和第一层中间节点划分为固定写缓存层,采用固定写缓存区域存储对应的元数据。将第二层中间节点划分为可变写缓存层,采用可变写缓存区域存储对应的元数据。将叶子节点划分为读缓存层,采用读缓存区域存储对应的元数据。

在另一可选的实施场景中,当出现K-V修改时,可以从根节点定位到叶子节点后,修改叶子节点中的数据,进而后续将叶子节点重新落盘。但需要注意的是,叶子节点如果采用覆盖原位置的覆盖写方式落盘,则可能因故障等原因概率性出现盘中数据半新半旧的情况,导致数据损坏甚至丢失,因此叶子节点会采用重定向(ROW)写的方式重新落盘。即,当元数据内容发生变化且再次写池时,会写到新的位置,同时将变化后的节点新地址更新到上一级的中间节点中。由于中间节点在写缓存区域中并不需要立即落盘,因此,在写缓存区域中更新中间节点数据即可,但如果出现目标b+树中,因能分配到的写缓存不足,导致必须将靠下层的中间节点落盘等情况时,中间节点也是以ROW写方式,写到盘中的新位置,同时将新地址更新到其上一层的中间节点,同理,上一层中间节点因位于写缓存中,也只需要在写缓存中更新即可。

在又一可选的实施场景中,对于盘上已经失效的节点,存储系统会对其执行回收操作,从而不会出现因长期ROW写盘,导致盘中空间耗尽的情况发生。

在本实施例中提供了一种元数据访问方法,可用于上述存储系统,图5是根据本发明实施例的元数据访问方法的流程图,如图5所示,该流程包括如下步骤:

步骤S501,接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象。

步骤S502,获取目标存储对象的目标b+树。

步骤S503,根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点。

步骤S504,基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域。

步骤S505,从目标缓存区域中获取目标元数据,以响应数据访问请求。

步骤S506,监测目标b+树的访问参数。

在本发明实施例中,为监测目标b+树在运行过程中,分配至其的缓存资源是否能够满足各节点元数据的访问需求,则监测目标b+树的访问参数。其中,访问参数可以包括但不限于以下类型参数:目标b+树的读写访问占比、读写访问热度(读写访问频率)、读写缓存的节点命中率、以及业务优先级(通常由用户根据实际需要自行指定,也可以没有)。

步骤S507,基于访问参数在指定使用周期内的变化,调节目标b+树对应配置的缓存资源。

在本发明实施例中,基于访问参数在指定使用周期内的变化,能够了解该目标存储对象内的各元数据的访问情况,进而确定当前为目标b+树对应配置的缓存资源是否合理,以当目标b+树对应配置的缓存资源不满足目标缓存对象的调用需求时,能够及时调节,保障存储资源的分配合理性,从而提高存储系统的性能。其中,缓存资源可以包括:写缓存资源和/或读缓存资源。单个使用周期内的时长可以以小时或者天为单位进行设置。

具体地,若访问参数包括元数据的写访问热度,则上述步骤S507包括:

步骤b1,获取目标b+树中存储的多个元数据的历史数据命中率。

步骤b2,若历史数据命中率大于或者等于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则扩增写缓存资源。

步骤b3,若历史数据命中率小于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则不调节写缓存资源。

步骤b4,若历史数据命中率小于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度小于指定写访问热度,则缩减写缓存资源。

在该方式中,获取目标b+树中存储的多个元数据的历史数据命中率,以明确目标b+树中存储的多个元数据的历史访问情况。若历史数据命中率大于或者等于指定命中率阈值,则表征目标b+树中存储的多个元数据的访问热度一直处于上升状态。且当目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度时,表征需要提前为目标b+树增加写缓存,因此,扩增为目标b+树配置的写缓存资源,以满足目标b+树的写缓存需求。

若历史数据命中率小于指定命中率阈值,则表征目标b+树中存储的多个元数据的访问热度较低,当前为目标b+树配置的缓存资源能够满足需求。但当目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度时,表征目标b+树的访问热度增加,但可能因元数据的关键字相对较为分散,实际命中效果不好,即使增加写缓存资源也不能达到预期效果,因此,为避免资源浪费,则可以缩减为目标b+树配置的写缓存资源。

本实施例提供的元数据访问方法,能够基于目标b+树在指定时间周期内的访问参数,对为目标b+树配置的缓存资源进行针对性调节,进而使目标b+树的缓存资源能够满足目标b+树的运行需求,从而提高元数据的访问性能,增强存储系统的性能。

在一些可选的实施方式中,上述元数据访问方法还包括:

步骤S508,获取目标b+树在单位时间内的读访问热度。

在本发明实施例中,为便于对目标b+树所调用的缓存资源进行针对性分配,满足读和写的需求,则先获取b+树在单位时间内的读访问热度,以确定读元数据的访问情况。单位时间的单位可以为小时或者天。

步骤S509,获取目标b+树在单位时间内的写访问热度。

在本发明实施例中,获取目标b+树在单位时间内的写访问热度,以确定写元数据的访问情况。

步骤S510,基于读访问热度与写访问热度之间的比值,配置目标b+树的缓存资源。

在本发明实施例中,基于读访问热度与写访问热度之间的比值,可以确定目标b+树在运行的过程中,更偏向调用读缓存资源还是写缓存资源,进而可以针对性配置。若目标b+树在运行的过程中,更偏向调用读缓存资源,则在配置目标b+树的缓存资源的过程中,增加读缓存资源的占比。若目标b+树在运行的过程中,更偏向调用写缓存资源,则在配置目标b+树的缓存资源的过程中,增加写缓存资源的占比。若出现极端情况,则可以只配置读缓存资源或者写缓存资源。

在上述实施例提供的元数据访问方法中,使目标b+树的资源配置更具有针对性。

在另一些可选的实施方式中,上述元数据访问方法还包括:

步骤S511,若目标b+树在单位时间内的数据命中率高于其他b+树在单位时间内的数据命中率,则扩增缓存资源。

在本发明实施例中,其他b+树为其他存储对象的数据结构,目标存储对象和其他存储对象存储于同一存储系统内。若目标b+树在单位时间内的数据命中率高于其他b+树在单位时间内的数据命中率,则表征目标b+树的访问热度相对较高,则扩增缓存资源,以便能够有效提高目标存储对象的读写性能。

步骤S512,若目标b+树在单位时间内的数据命中率低于其他b+树在单位时间内的数据命中率,则缩减缓存资源。

在本发明实施例中,若目标b+树在单位时间内的数据命中率低于其他b+树在单位时间内的数据命中率,则表征目标b+树的访问热度相对较低,元数据的关键字较为分散,此时大量访问(特别是读操作)是透过缓存直接与盘交互,缓存对性能提升的作用不大,因此,缩减缓存资源,以降低缓存占比,为其他b+树预留更多的缓存资源,从而提高存储系统的整体性能。

在上述实施例提供的元数据访问方法中,能够基于各b+树的数据命中情况,对存储系统内的缓存资源进行合理分配,从而能够有效提升存储系统的整体性能。

在一些可选的实施场景中,如图6所示,存储系统中配置有缓存监控单元,可以通过该缓存监控单元分别检测每一个b+树在运行过程中的访问情况,进而对各b+树可变写缓存资源进行针对性调节,从而提高存储系统的整体性能。

在另一些可选的实施场景中,各存储对象的b+树可以分别采用不同的线程进行监管,进而能够实现各b+树的独立维护和管理,且能够有效避免各b+树在工作中出现线程竞争以及锁冲突等情况,从而提高元数据的并发处理能力并维持多线程的负载均衡。

进一步地,b+树的大小和数量不是一成不变的,可以结合业务需求进行设定。例如:根据Key值的范围等比例划分,如在1~10000范围内的Key值组成一颗b+树、100001~20000范围内的Key值组成一颗b+树……,以此类推,从而得到多颗b+树。又例如:可以根据业务存在明显冷热取余关系的可采用非等比例划分,即热区域每颗子树涵盖的Key范围小、冷区域每颗子树涵盖的Key范围大。如逻辑卷中地址为100~500的区域为热区域,也就是访问频繁的区域,则划分b+树时,可以在该区域以50为粒度划分,即地址为100~150范围为一个子树,以此类推;而非热点区域可以500为粒度划分,即地址500~1000范围为一个子树。需要注意的是,这里的地址就等同于Key值,因此地址100~150,相当于Key在100~150的元数据划分为一个b+树。再例如:可以根据业务范围访问的特定规律性进行跳跃划分,即非相邻的Key区域组成b+树等。这里划分的关键是基于业务实际情况,保持每颗子树的访问尽量均衡。

其中,针对缓存使用的检测和调控,可以采用相对简单的阈值设置的方法,即为每个因素定义阈值,通过对多个因素的加权计算得出,这也是比较通用的方法;也可以采用一些新型的AI算法,可能使缓存配置更精准,但复杂度也会更高,可根据业务需要决定。

在本实施例中还提供了一种元数据访问装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种元数据访问装置,如图7所示,包括:

第一确定模块701,用于接收访问目标元数据的数据访问请求,确定存储目标元数据的目标存储对象;

第一获取模块702,用于获取目标存储对象的目标b+树,目标b+树为目标存储对象的数据结构;

第二确定模块703,用于根据目标元数据的关键字,确定目标b+树中存储目标元数据的目标节点;

第三确定模块704,用于基于目标节点在目标b+树中的目标层,确定目标层对应的目标缓存区域;

第二获取模块705,用于从目标缓存区域中获取目标元数据,以响应数据访问请求。

在一些可选的实施方式中,第三确定模块704包括:第一确定单元,用于根据目标b+树的层结构,分别确定层结构中每一层对应的缓存区域;第二确定单元,用于根据各层对应的缓存区域,确定目标层对应的目标缓存区域。

在一些可选的实施方式中,目标b+树的层结构包括固定写缓存层、可变写缓存层以及读缓存层,固定写缓存层对应的缓存区域为固定写缓存区域,可变写缓存层对应的缓存区域为可变写缓存区域,读缓存层对应的缓存区域为读缓存区域,固定写缓存层高于可变写缓存层,可变写缓存层高于读缓存层;第二确定单元包括:第一区域确定单元,用于若目标层处于固定写缓存层内,则确定目标缓存区域为固定写缓存区域;第二区域确定单元,用于若目标层处于可变写缓存层内,则确定目标缓存区域为可变写缓存区域;第三区域确定单元,用于若目标层处于读缓存层内,则确定目标缓存区域为读缓存区域。

在一些可选的实施方式中,装置还包括:监测模块,用于监测目标b+树的访问参数;调节模块,用于基于访问参数在指定使用周期内的变化,调节目标b+树对应配置的缓存资源,缓存资源包括:写缓存资源和/或读缓存资源。

在一些可选的实施方式中,访问参数包括元数据的写访问热度;调节模块,包括:参数获取单元,用于获取目标b+树中存储的多个元数据的历史数据命中率;第一调节单元,用于若历史数据命中率大于或者等于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则扩增写缓存资源;第二调节单元,用于若历史数据命中率小于指定命中率阈值,且目标b+树在目标使用时长内的写访问热度大于或者等于指定写访问热度,则缩减写缓存资源。

在一些可选的实施方式中,装置还包括:第一热度获取模块,用于获取目标b+树在单位时间内的读访问热度;第二热度获取模块,用于获取目标b+树在单位时间内的写访问热度;第一配置模块,用于基于读访问热度与写访问热度之间的比值,配置目标b+树的缓存资源。

在一些可选的实施方式中,装置还包括:第二配置模块,用于若目标b+树在单位时间内的数据命中率高于其他b+树在单位时间内的数据命中率,则扩增缓存资源,其他b+树为其他存储对象的数据结构,目标存储对象和其他存储对象存储于同一存储系统内;第三配置模块,用于若目标b+树在单位时间内的数据命中率低于其他b+树在单位时间内的数据命中率,则缩减缓存资源。

上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本实施例中的元数据访问装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

本发明实施例还提供一种电子设备,具有上述图7所示的元数据访问装置。

请参阅图8,图8是本发明可选实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器10为例。

处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。

其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。

存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。

该电子设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图8中以通过总线连接为例。

输入装置30可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。

本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 跨平台访问方法、装置、电子设备及存储介质
  • 数据访问方法、装置、电子设备及计算机存储介质
  • 信息访问方法、装置、电子设备及计算机可读存储介质
  • 数据访问方法、装置、电子设备及计算机可读存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 元数据访问方法、装置、电子设备及存储介质
  • 元数据访问权限控制方法、系统、电子设备及存储介质
技术分类

06120116498851