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

一种元数据处理方法、装置、设备及计算机可读存储介质

文献发布时间:2023-06-19 13:29:16


一种元数据处理方法、装置、设备及计算机可读存储介质

技术领域

本申请涉及存储系统技术领域,更具体地说,涉及一种元数据处理方法、装置、设备及计算机可读存储介质。

背景技术

目前,大部分全闪存存储系统均支持在线重删以及全局来及回收的功能,这些功能的实现会不可避免地需要引入元数据,比如LP(逻辑地址指向物理地址)和PL(物理地址指向逻辑地址)。

其中,LP和PL这两种数据需要实现原子性,即使发生故障也不能部分成功和部分失败。通常为了实现两种元数据的原子性,当LP完成之后,若PL尚未完成,则LP需要等待PL完成之后,才一块给上游主机返回成功的消息,而这就会导致系统的时延比较长,处理效率比较低。

综上所述,如何降低系统的时延,以提高系统对数据的处理效率,是目前本领域技术人员亟待解决的技术问题。

发明内容

有鉴于此,本申请的目的是提供一种元数据处理方法、装置、设备及计算机可读存储介质,用于降低系统的时延,以提高系统对数据的处理效率。

为了实现上述目的,本申请提供如下技术方案:

一种元数据处理方法,包括:

接收写入数据,生成与所述写入数据对应的LP元数据及PL元数据;

申请与所述LP元数据及所述PL元数据对应的内存资源;

将所述LP元数据及所述PL元数据写入所述内存资源,并当所述LP元数据完成写入所述内存资源的操作时,则输出完成元数据处理的消息。

优选的,在申请与所述LP元数据及所述PL元数据对应的内存资源之前,还包括:

对逻辑地址进行加锁,以锁住所述逻辑地址。

优选的,在输出完成元数据处理的消息之后,还包括:

若所述PL元数据完成写入所述内存资源的操作,则释放所述逻辑地址。

优选的,在输出完成元数据处理的消息之后,还包括:

若所述PL元数据完成写入所述内存资源的操作,则释放所述内存资源。

优选的,在将所述LP元数据及所述PL元数据写入所述内存资源时,还包括:

对所述LP元数据及所述PL元数据的写入进行实时检测。

优选的,申请与所述LP元数据及所述PL元数据对应的内存资源,包括:

申请与所述LP元数据对应的第一内存资源,并申请与所述PL元数据对应的第二内存资源;

将所述LP元数据及所述PL元数据写入所述内存资源,包括:

将所述LP元数据写入所述第一内存资源,并将所述PL元数据写入所述第二内存资源。

优选的,输出完成元数据处理的消息,包括:

向主机输出完成元数据处理的消息。

一种元数据处理装置,包括:

接收模块,用于接收写入数据,生成与所述写入数据对应的LP元数据及PL元数据;

申请模块,用于申请与所述LP元数据及所述PL元数据对应的内存资源;

确定模块,用于将所述LP元数据及所述PL元数据写入所述内存资源,并当所述LP元数据完成写入所述内存资源的操作时,则输出完成元数据处理的消息。

一种元数据处理设备,包括:

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

处理器,用于执行所述计算机程序时实现如上述任一项所述的元数据处理方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的元数据处理方法的步骤。

本申请提供了一种元数据处理方法、装置、设备及计算机可读存储介质,其中,该方法包括:接收写入数据,生成与写入数据对应的LP元数据及PL元数据;申请与LP元数据及PL元数据对应的内存资源;将LP元数据及PL元数据写入内存资源,并当LP元数据完成写入内存资源的操作时,则输出完成元数据处理的消息。

本申请公开的上述技术方案,在将所生成的LP元数据和PL元数据写入对应的内存资源的过程中,若确定LP元数据完成写入所申请的内存资源的操作,则即使PL元数据未完成写入内存资源的操作,此时也输出完成元数据处理的消息,以使得主机可以在获取该消息之后能够根据LP元数据正常进行数据查询等工作,也即一旦LP元数据完成写入内存资源的操作,则认为元数据完成处理,由于无需在LP元数据完成写入之后再等待PL元数据完成写入之后才认为完成元数据完成处理,因此,则可以减少等待时间,缩短系统的时延,提高系统对数据的处理效率。

附图说明

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

图1为本申请实施例提供的一种元数据处理方法的流程图;

图2为本申请实施例提供的一种元数据处理装置的结构示意图;

图3为本申请实施例提供的一种元数据处理设备的结构示意图。

具体实施方式

当前对于大部分全闪存存储系统都会支持在线重删以及全局开机回收的功能,这些功能的实现不可避免地需要引入元数据,例如HP(重删指纹指向物理地址实现数据缩减的)、LP以及PL等。

对于LP和PL这两类元数据而言,需要实现原子性,即使发生故障也不能部分成功部分失败,必须保证这两个请求原子的完成。通常为了实现两种请求的原子性,如果LP先完成元数据的落盘操作,而PL后完成元数据的落盘操作,此时,LP则会等待PL完成之后才一块给上游主机返回成功的消息通知,但是进行等待的过程会导致存储系统的时延比较长,处理效率比较低。

为此,本申请提供一种元数据处理方法、装置、设备及计算机可读存储介质,用于降低系统的时延,提高系统对数据的处理效率。

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

参见图1,其示出了本申请实施例提供的一种元数据处理方法的流程图,本申请实施例提供的一种元数据处理方法,可以包括:

S11:接收写入数据,生成与写入数据对应的LP元数据及PL元数据。

在本申请中,在发生一次数据写入时,存储系统可以接收所写入的写入数据,并根据写入数据对应的逻辑地址以及物理地址生成与写入数据对应的LP元数据及PL元数据,其中,LP元数据中存储的是逻辑地址指向物理地址,PL元数据中存储中的是物理地址指向逻辑地址。

S12:申请与LP元数据及PL元数据对应的内存资源。

在生成LP元数据及PL元数据之后,为了使LP元数据及PL元数据能够正常落入存储系统中,则可以在存储系统中申请与LP元数据及PL元数据对应的内存资源,以便于将LP元数据及PL元数据写入所申请到的与二者对应的内存资源中。

其中,LP元数据及PL元数据二者可以作为一个事务而申请与该事务对应的内存资源(此时,也可以称为事务资源),以将上述事务插入到所申请的内存资源中。

S13:将LP元数据及PL元数据写入内存资源,并当LP元数据完成写入内存资源的操作时,则输出完成元数据处理的消息。

在申请到与LP元数据及PL元数据对应的内存资源之后,可以将LP元数据及PL元数据写入所申请到的内存资源。其中,在将LP元数据及PL元数据写入到所申请的对应内存资源时,可以对LP元数据的写入、PL元数据的写入分别进行检测,以确定LP元数据及PL元数据是否完成写入。若确定LP元数据完成写入内存资源的操作,此时,即使PL元数据尚未完成写入内存资源的操作,也即即使PL元数据仍在进行写入内存资源的操作,存储系统也会对外输出完成元数据处理的消息,以使从外界角度认为存储系统已完成元数据的处理,从而使得外界在获取到存储系统所输出的完成元数据处理的消息后可以利用完成写入的LP元数据进行对应目标数据的查询和获取。

由上述可知,本申请是只要LP元数据完成写入内存资源的操作,则就输出完成元数据处理的消息,而不再等待PL元数据完成之后才对外进行通知,因此,则可以缩短存储系统的时延,提高存储系统对数据的处理效率及可用性,且使得外界可以根据存储系统所输出的消息及自身需要而能够及时基于完成写入的LP元数据进行数据查询和获取等工作,以提高外界进行数据获取等工作的效率。

本申请公开的上述技术方案,在将所生成的LP元数据和PL元数据写入对应的内存资源的过程中,若确定LP元数据完成写入所申请的内存资源的操作,则即使PL元数据未完成写入内存资源的操作,此时也输出完成元数据处理的消息,以使得主机可以在获取该消息之后能够根据LP元数据正常进行数据查询等工作,也即一旦LP元数据完成写入内存资源的操作,则认为元数据完成处理,由于无需在LP元数据完成写入之后再等待PL元数据完成写入之后才认为完成元数据完成处理,因此,则可以减少等待时间,缩短系统的时延,提高系统对数据的处理效率。

本申请实施例提供的一种元数据处理方法,在申请与LP元数据及PL元数据对应的内存资源之前,还可以包括:

对逻辑地址进行加锁,以锁住逻辑地址。

在本申请中,在申请与LP元数据及PL元数据对应的内存资源之前,还可以对与写入数据对应的逻辑地址进行加锁,也即可以对LP元数据及PL元数据中所对应的逻辑地址进行加锁,以锁住该逻辑地址,从而使得再次接收需要利用上述逻辑地址的写入数据时可以不对再次写入的写入数据进行处理,而是进行等待、排队,以保证数据的一致性。

本申请实施例提供的一种元数据处理方法,在输出完成元数据处理的消息之后,还可以包括:

若PL元数据完成写入内存资源的操作,则释放逻辑地址。

在本申请中,在对逻辑地址进行加锁的基础上,在存储系统输出完成元数据处理的消息之后,若确定PL元数据完成写入内存资源的操作,此时,则表明存储系统真正完成了元数据的处理,因此,存储系统则可以释放被加锁的逻辑地址,即在本申请中,在LP元数据先完成写入操作时,并不进行逻辑地址的释放,而是等待PL元数据完成写入操作之后才进行逻辑地址的释放,也即只有等元数据真正完成处理之后才进行逻辑地址的释放,以使得对进行等待、排队的写入数据可以按照顺序依次采用上述方式进行处理,并对该逻辑地址进行使用,从而避免造成数据混乱,保证数据的一致性。

本申请实施例提供的一种元数据处理方法,在输出完成元数据处理的消息之后,还可以包括:

若PL元数据完成写入内存资源的操作,则释放内存资源。

在本申请中,存储系统在输出完成元数据处理的消息之后,若PL元数据完成写入内存资源的操作,此时,则表明存储系统真正完成了元数据的处理,因此,存储系统则可以释放所申请到的与LP元数据及PL元数据对应的内存资源,即在LP元数据先完成写入操作时,并不进行内存资源的释放,而是等待PL元数据完成写入操作之后才进行内存资源的释放,以减少对内存资源的无效占用,提高存储系统可用的内存资源量,且便于在PL元数据完成写入内存资源的操作之前存储系统发生故障时可以进行掉电保护而对已写入内存资源中的元数据进行保护,并在故障恢复时基于所保护的元数据对未完成写入的元数据进行重做,以保证LP元数据和PL元数据的原子性。

其中,若在PL元数据完成写入内存资源的操作之前,存储系统出现故障,则将所申请到的内存资源中的已写入元数据持久化到磁盘上,并在存储系统从故障中恢复并进行上电之后,申请与LP元数据和PL元数据对应的内存资源,将持久化到磁盘上的已写入元数据读取到新申请的内存资源中,且当确定存在未写完的元数据时,则将未写完的元数据重新写入到新申请的内存资源中,例如若仅PL元数据未写完,则将PL元数据重新写入到新申请的内存资源中,若LP元数据和PL元数据均未写完,则将二者均重新写入到新申请的内存资源中,以保证LP元数据和PL元数据的原子性。

本申请实施例提供的一种元数据处理方法,在将LP元数据及PL元数据写入内存资源时,还可以包括:

对LP元数据及PL元数据的写入进行实时检测。

在本申请中,在将LP元数据及PL元数据写入内存资源时,为了便于能够及时获取LP元数据及PL元数据的写入情况,则可以对LP元数据的写入及PL元数据的写入均进行实时检测,以便于在LP元数据完成写入内存资源的操作时可以及时被发现,从而便于及时输出完成元数据处理的消息,以便于进一步缩短系统的时延,提高系统的可靠性。

当然,也可以对LP元数据的写入、PL元数据的写入分别进行定时检测,以降低检测所耗费的资源。

本申请实施例提供的一种元数据处理方法,申请与LP元数据及PL元数据对应的内存资源,可以包括:

申请与LP元数据对应的第一内存资源,并申请与PL元数据对应的第二内存资源;

将LP元数据及PL元数据写入内存资源,可以包括:

将LP元数据写入第一内存资源,并将PL元数据写入第二内存资源。

在本申请中,在申请与LP元数据及PL元数据对应的内存资源时,可以分别申请与LP元数据对应的第一内存资源,并申请与PL元数据对应的第二内存资源,相应地,在将LP元数据及PL元数据写入内存资源时,则可以将LP元数据写入对应的第一内存资源,并将PL元数据写入对应的第二内存资源,以提高存储性能,并便于后续进行两种元数据的读取。

当然,也可以将LP元数据及PL元数据申请到的对应内存资源放在一起,也降低申请和写入的复杂度。

本申请实施例提供的一种元数据处理方法,输出完成元数据处理的消息,可以包括:

向主机输出完成元数据处理的消息。

在本申请中,在输出完成元数据处理的消息时,具体可以直接向主机输出完成元数据处理的消息,以使得主机可以及时获取该效率,并便于主机后续可以根据需要而基于LP元数据进行目标数据的查询和获取等工作。

本申请实施例还提供了一种元数据处理装置,参见图2,其示出了本申请实施例提供的一种元数据处理装置的结构示意图,可以包括:

接收模块21,用于接收写入数据,生成与写入数据对应的LP元数据及PL元数据;

申请模块22,用于申请与LP元数据及PL元数据对应的内存资源;

确定模块23,用于将LP元数据及PL元数据写入内存资源,并当LP元数据完成写入内存资源的操作时,则输出完成元数据处理的消息。

本申请实施例提供的一种元数据处理装置,还可以包括:

加锁模块,用于在申请与LP元数据及PL元数据对应的内存资源之前,对逻辑地址进行加锁,以锁住逻辑地址。

本申请实施例提供的一种元数据处理装置,还可以包括:

第一释放模块,用于在输出完成元数据处理的消息之后,若PL元数据完成写入内存资源的操作,则释放逻辑地址。

本申请实施例提供的一种元数据处理装置,还可以包括:

第二释放模块,用于在输出完成元数据处理的消息之后,若PL元数据完成写入内存资源的操作,则释放内存资源。

本申请实施例提供的一种元数据处理装置,还可以包括:

实时检测模块,用于在将LP元数据及PL元数据写入内存资源时,对LP元数据及PL元数据的写入进行实时检测。

本申请实施例提供的一种元数据处理装置,申请模块22可以包括:

申请单元,用于申请与LP元数据对应的第一内存资源,并申请与PL元数据对应的第二内存资源;

确定模块23可以包括:

写入单元,用于将LP元数据写入第一内存资源,并将PL元数据写入第二内存资源。

本申请实施例提供的一种元数据处理装置,确定模块23可以包括:

输出单元,用于向主机输出完成元数据处理的消息。

本申请实施例还提供了一种元数据处理设备,参见图3,其示出了本申请实施例提供的一种元数据处理设备的结构示意图,可以包括:

存储器31,用于存储计算机程序;

处理器32,用于执行存储器31存储的计算机程序时可实现如下步骤:

接收写入数据,生成与写入数据对应的LP元数据及PL元数据;申请与LP元数据及PL元数据对应的内存资源;将LP元数据及PL元数据写入内存资源,并当LP元数据完成写入内存资源的操作时,则输出完成元数据处理的消息。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

接收写入数据,生成与写入数据对应的LP元数据及PL元数据;申请与LP元数据及PL元数据对应的内存资源;将LP元数据及PL元数据写入内存资源,并当LP元数据完成写入内存资源的操作时,则输出完成元数据处理的消息。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种元数据处理方法、装置、设备及计算机可读存储介质
  • 元数据处理方法、装置、设备及计算机可读存储介质
技术分类

06120113693896