本申请涉及分布式对象存储技术领域,更具体地说,涉及一种异步io数据处理方法、装置、设备及计算机可读存储介质。
背景技术:
在分布式对象存储系统中,通过nfs(networkfilesystem,网络文件系统)导出目录挂载分布式对象存储系统,以实现上层应用的文件系统访问和底层数据的分布式对象存储机制。其中,基于对象存储的nfs协议访问支持同步io(iuput/output,输入/输出)和异步io这两种形式。
目前,对于异步io数据的处理,具体是在接收到异步io数据之后,将异步io数据中错序的io数据片段在缓存中重新进行排序,以得到正常序列的异步io数据,并使得后续可以按照重新排序的io数据片段来对异步io数据进行存储和读取。上述这种对异步io数据进行处理的方式虽然可以保证异步io数据能够得到正常处理,但是,由于需要对错序的io数据片段进行重新排序,因此,则会降低异步io数据的处理效率。
综上所述,如何提高异步io数据的处理效率,是目前本领域技术人员亟待解决的技术问题。
技术实现要素:
有鉴于此,本申请的目的是提供一种异步io数据处理方法、装置、设备及计算机可读存储介质,用于提高异步io数据的处理效率。
为了实现上述目的,本申请提供如下技术方案:
一种异步io数据处理方法,包括:
接收异步io数据存储请求;其中,所述异步io数据存储请求中包括多个异步io数据片段;
获取每个所述异步io数据片段的标签信息,并将所述标签信息存储在预先创建的数据标签存储池中,且将所述异步io数据片段存储在数据池中;其中,所述标签信息包括所述异步io数据存储请求的对象名、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
当接收到异步io数据读取请求时,获取所述异步io数据读取请求的对象名;
在所述数据标签存储池中获取与所述异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与所述异步io数据读取请求对应的异步io数据。
优选的,获取每个所述异步io数据片段的标签信息,包括:
在接收到所述异步io数据存储请求时,获取每个所述异步io数据片段的第一标签信息;其中,所述第一标签信息包括所述异步io数据存储请求的id信息、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
当所述异步io数据存储请求结束时,将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名,以获取每个所述异步io数据片段的标签信息。
优选的,在将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名之前,还包括:
解析每个所述异步io数据片段的元数据信息,从所述元数据信息中获取所述异步io数据存储请求的对象名。
优选的,接收异步io数据存储请求,包括:
接收nfs协议下的所述异步io数据存储请求。
一种异步io数据处理装置,包括:
接收模块,用于接收异步io数据存储请求;其中,所述异步io数据存储请求中包括多个异步io数据片段;
第一获取模块,用于获取每个所述异步io数据片段的标签信息,并将所述标签信息存储在预先创建的数据标签存储池中,且将所述异步io数据片段存储在数据池中;其中,所述标签信息包括所述异步io数据存储请求的对象名、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
第二获取模块,用于当接收到异步io数据读取请求时,获取所述异步io数据读取请求的对象名;
读取模块,用于在所述数据标签存储池中获取与所述异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与所述异步io数据读取请求对应的异步io数据。
优选的,所述第一获取模块包括:
获取单元,用于在接收到所述异步io数据存储请求时,获取每个所述异步io数据片段的第一标签信息;其中,所述第一标签信息包括所述异步io数据存储请求的id信息、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
更改单元,用于当所述异步io数据存储请求结束时,将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名,以获取每个所述异步io数据片段的标签信息。
优选的,还包括:
解析模块,用于在将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名之前,解析每个所述异步io数据片段的元数据信息,从所述元数据信息中获取所述异步io数据存储请求的对象名。
优选的,所述接收模块包括:
接收单元,用于接收nfs协议下的所述异步io数据存储请求。
一种异步io数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的异步io数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的异步io数据处理方法的步骤。
本申请提供了一种异步io数据处理方法、装置、设备及计算机可读存储介质,其中,该方法包括:接收异步io数据存储请求;其中,异步io数据存储请求中包括多个异步io数据片段;获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且将异步io数据片段存储在数据池中;其中,标签信息包括异步io数据存储请求的对象名、异步io数据片段的偏移量、异步io数据片段的存储位置;当接收到异步io数据读取请求时,获取异步io数据读取请求的对象名;在数据标签存储池中获取与异步io数据存储请求的对象名对应的所有的标签信息,并根据标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与异步io数据读取请求对应的异步io数据。
本申请公开的上述方案,通过获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且在接收到异步io数据读取请求时,在数据标签存储池中获取与异步io数据读取请求的对象名对应的标签信息,并根据标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取异步io数据,以无需再对错序的异步io数据片段进行重新排序处理,从而可以缩短异步io数据的处理时间,提高异步io数据的处理效率和处理性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种异步io数据处理方法的流程图;
图2为本申请实施例提供的一种异步io数据处理装置的结构示意图;
图3为本申请实施例提供的一种异步io数据处理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种异步io数据处理方法的流程图,本申请实施例提供的一种异步io数据处理方法,可以包括:
s11:接收异步io数据存储请求;其中,异步io数据存储请求中包括多个异步io数据片段。
在分布式对象存储系统中,当需要对异步io数据进行处理时,对象网关接收异步io数据存储请求,其中,该异步io数据存储请求中可以包括多个异步io数据片段,且这些异步io数据片段可能并未按照其在异步io数据的顺序进行排列,也就是说,这些异步io数据片段是错序排列的。
s12:获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且将异步io数据片段存储在数据池中;其中,标签信息可以包括异步io数据存储请求的对象名、异步io数据片段的偏移量、异步io数据片段的存储位置。
在接收到异步io数据存储请求中包含的多个异步io数据片段时,获取每个异步io数据片段的标签信息,并将这些异步io数据片段的标签信息存储在预先创建的数据标签存储池中,同时可以将异步io数据片段存储在数据池中。其中,该数据标签存储池可以预先创建在分布式对象存储系统的底层,以用于存储异步io数据片段的标签信息。
另外,这里提及的标签信息具体可以包括异步io数据存储请求的对象名(具体为异步io数据存储请求中包含的要进行存储的异步io数据的对象名,且同属一个异步io数据的异步io数据片段具有相同的对象名)、异步io数据片段的偏移量及异步io数据片段的存储位置,以便于通过标签信息中的异步io数据存储请求的对象名确定其所属的对象,通过标签信息中的异步io数据片段的偏移量确定该异步io数据片段在异步io数据中所属的位置,并通过异步io数据片段的存储位置确定该异步io数据片段所存储的位置。
由上述可知,其并没有对所接收到的异步io数据片段进行重新排序,然后,再进行存储,因此,可以缩短异步io数据存储所花费的时间,从而可以提高异步io数据的存储效率,而且通过创建数据标签存储池来对异步io数据片段的标签信息进行存储的方式可以保证异步io数据的完整性和一致性,从而可以提高异步io数据存储的性能。
s13:当接收到异步io数据读取请求时,获取异步io数据读取请求的对象名。
在完成对异步io数据片段标签信息和异步io数据的存储之后,若接收到异步io数据读取请求,则可以获取该异步io数据读取请求的对象名(具体为异步io数据读取请求中包含的要进行读取的异步io数据的对象名),以便于通过异步io数据读取请求的对象名对异步io数据进行读取。
s14:在数据标签存储池中获取与异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与异步io数据读取请求对应的异步io数据。
在获取到异步io数据读取请求的对象名时,可以在数据标签存储池中获取与异步io数据读取请求的对象名对应的所有的标签信息,以保证可以获取到完整的异步io数据。之后,则可以根据所获取到所有的标签信息来读取与异步io数据读取请求对应的异步io数据。具体地,可以根据所获取到的每个标签信息中的异步io数据片段的偏移量分别确定每个异步io数据片段在异步io数据中所处的位置,并根据每个标签信息中的异步io数据片段的存储位置确定异步io数据片段所存储的位置,然后,按照异步io数据片段的偏移量的顺序及异步io数据片段的存储位置顺序地且依次地读取异步io数据片段,从而提高异步io数据的读取效率。
本申请公开的上述方案,通过获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且在接收到异步io数据读取请求时,在数据标签存储池中获取与异步io数据读取请求的对象名对应的标签信息,并根据标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取异步io数据,以无需再对错序的异步io数据片段进行重新排序处理,从而可以缩短异步io数据的处理时间,提高异步io数据的处理效率和处理性能。
本申请实施例提供的一种异步io数据处理方法,获取每个异步io数据片段的标签信息,可以包括:
在接收到异步io数据存储请求时,获取每个异步io数据片段的第一标签信息;其中,第一标签信息可以包括异步io数据存储请求的id信息、异步io数据片段的偏移量、异步io数据片段的存储位置;
当异步io数据存储请求结束时,将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名,以获取每个异步io数据片段的标签信息。
具体可以通过以下方式获取每个异步io数据片段的标签信息:
考虑到在接收到异步io数据存储请求初期,会为异步io数据存储请求分配对应的请求id,因此,在接收到异步io数据存储请求时,可以获取每个异步io数据片段的第一标签信息,其中,第一标签信息包括异步io数据存储请求的id信息(同属一个异步io数据的异步io数据片段具有相同的请求id信息)、异步io数据片段的偏移量、异步io数据片段的存储位置,而当异步io数据完成存储之后,请求id信息即会释放,为了便于后续可以准确地读取异步io数据,则当异步io数据存储请求结束时,可以将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名,以便于通过对象名获取每个异步io数据片段的标签信息。
本申请实施例提供的一种异步io数据处理方法,在将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名之前,还可以包括:
解析每个异步io数据片段的元数据信息,从元数据信息中获取异步io数据存储请求的对象名。
在将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名之前,对象网关可以解析出每个异步io数据片段的元数据信息,并从元数据信息中获取异步io数据存储请求的对象名,以便于利用所获取到的对象名对第一标签信息中的请求id信息进行更改。
本申请实施例提供的一种异步io数据处理方法,接收异步io数据存储请求,可以包括:
接收nfs协议下的异步io数据存储请求。
具体可以接收nfs协议下的异步io数据存储请求,以在实现分布式对象存储系统对nfs协议下异步io数据的支持的同时,还提高了提高对象存储的nfs协议访问效率及对象存储对接nfs接口的存储性能。
本申请实施例还提供了一种异步io数据处理装置,参见图2,其示出了本申请实施例提供的一种异步io数据处理装置的结构示意图,可以包括:
接收模块21,用于接收异步io数据存储请求;其中,异步io数据存储请求中可以包括多个异步io数据片段;
第一获取模块22,用于获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且将异步io数据片段存储在数据池中;其中,标签信息可以包括异步io数据存储请求的对象名、异步io数据片段的偏移量、异步io数据片段的存储位置;
第二获取模块23,用于当接收到异步io数据读取请求时,获取异步io数据读取请求的对象名;
读取模块24,用于在数据标签存储池中获取与异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与异步io数据读取请求对应的异步io数据。
本申请实施例提供的一种异步io数据处理装置,第一获取模块22可以包括:
获取单元,用于在接收到异步io数据存储请求时,获取每个异步io数据片段的第一标签信息;其中,第一标签信息可以包括异步io数据存储请求的id信息、异步io数据片段的偏移量、异步io数据片段的存储位置;
更改单元,用于当异步io数据存储请求结束时,将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名,以获取每个异步io数据片段的标签信息。
本申请实施例提供的一种异步io数据处理装置,还可以包括:
解析模块,用于在将第一标签信息中的异步io数据存储请求的id信息更改为异步io数据存储请求的对象名之前,解析每个异步io数据片段的元数据信息,从元数据信息中获取异步io数据存储请求的对象名。
本申请实施例提供的一种异步io数据处理装置,接收模块21可以包括:
接收单元,用于接收nfs协议下的异步io数据存储请求。
本申请实施例还提供了一种异步io数据处理设备,参见图3,其示出了本申请实施例提供的一种异步io数据处理设备的结构示意图,可以包括:
存储器31,用于存储计算机程序;
处理器32,用于执行存储器31存储的计算机程序时可实现如下步骤:
接收异步io数据存储请求;其中,异步io数据存储请求中包括多个异步io数据片段;获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且将异步io数据片段存储在数据池中;其中,标签信息包括异步io数据存储请求的对象名、异步io数据片段的偏移量、异步io数据片段的存储位置;当接收到异步io数据读取请求时,获取异步io数据读取请求的对象名;在数据标签存储池中获取与异步io数据存储请求的对象名对应的所有的标签信息,并根据标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与异步io数据读取请求对应的异步io数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
接收异步io数据存储请求;其中,异步io数据存储请求中包括多个异步io数据片段;获取每个异步io数据片段的标签信息,并将标签信息存储在预先创建的数据标签存储池中,且将异步io数据片段存储在数据池中;其中,标签信息包括异步io数据存储请求的对象名、异步io数据片段的偏移量、异步io数据片段的存储位置;当接收到异步io数据读取请求时,获取异步io数据读取请求的对象名;在数据标签存储池中获取与异步io数据存储请求的对象名对应的所有的标签信息,并根据标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与异步io数据读取请求对应的异步io数据。
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种异步io数据处理装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种异步io数据处理方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种异步io数据处理方法,其特征在于,包括:
接收异步io数据存储请求;其中,所述异步io数据存储请求中包括多个异步io数据片段;
获取每个所述异步io数据片段的标签信息,并将所述标签信息存储在预先创建的数据标签存储池中,且将所述异步io数据片段存储在数据池中;其中,所述标签信息包括所述异步io数据存储请求的对象名、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
当接收到异步io数据读取请求时,获取所述异步io数据读取请求的对象名;
在所述数据标签存储池中获取与所述异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与所述异步io数据读取请求对应的异步io数据。
2.根据权利要求1所述的异步io数据处理方法,其特征在于,获取每个所述异步io数据片段的标签信息,包括:
在接收到所述异步io数据存储请求时,获取每个所述异步io数据片段的第一标签信息;其中,所述第一标签信息包括所述异步io数据存储请求的id信息、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
当所述异步io数据存储请求结束时,将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名,以获取每个所述异步io数据片段的标签信息。
3.根据权利要求2所述的异步io数据处理方法,其特征在于,在将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名之前,还包括:
解析每个所述异步io数据片段的元数据信息,从所述元数据信息中获取所述异步io数据存储请求的对象名。
4.根据权利要求1所述的异步io数据处理方法,其特征在于,接收异步io数据存储请求,包括:
接收nfs协议下的所述异步io数据存储请求。
5.一种异步io数据处理装置,其特征在于,包括:
接收模块,用于接收异步io数据存储请求;其中,所述异步io数据存储请求中包括多个异步io数据片段;
第一获取模块,用于获取每个所述异步io数据片段的标签信息,并将所述标签信息存储在预先创建的数据标签存储池中,且将所述异步io数据片段存储在数据池中;其中,所述标签信息包括所述异步io数据存储请求的对象名、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
第二获取模块,用于当接收到异步io数据读取请求时,获取所述异步io数据读取请求的对象名;
读取模块,用于在所述数据标签存储池中获取与所述异步io数据读取请求的对象名对应的所有的标签信息,并根据述标签信息中异步io数据片段的偏移量及异步io数据片段的存储位置读取与所述异步io数据读取请求对应的异步io数据。
6.根据权利要求5所述的异步io数据处理装置,其特征在于,所述第一获取模块包括:
获取单元,用于在接收到所述异步io数据存储请求时,获取每个所述异步io数据片段的第一标签信息;其中,所述第一标签信息包括所述异步io数据存储请求的id信息、所述异步io数据片段的偏移量、所述异步io数据片段的存储位置;
更改单元,用于当所述异步io数据存储请求结束时,将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名,以获取每个所述异步io数据片段的标签信息。
7.根据权利要求6所述的异步io数据处理装置,其特征在于,还包括:
解析模块,用于在将所述第一标签信息中的所述异步io数据存储请求的id信息更改为所述异步io数据存储请求的对象名之前,解析每个所述异步io数据片段的元数据信息,从所述元数据信息中获取所述异步io数据存储请求的对象名。
8.根据权利要求5所述的异步io数据处理装置,其特征在于,所述接收模块包括:
接收单元,用于接收nfs协议下的所述异步io数据存储请求。
9.一种异步io数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的异步io数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的异步io数据处理方法的步骤。
技术总结