一种用于提高对象存储系统中对象上传速度的方法和系统与流程

文档序号:11930929阅读:213来源:国知局
一种用于提高对象存储系统中对象上传速度的方法和系统与流程

本发明涉及计算机存储技术领域,特别是涉及一种用于提高对象存储系统中对象上传速度的方法。



背景技术:

随着大数据和互联网的不断发展,人们每天在各种社交网站上上传海量的视频、图片、语音,每天发送数亿封电子邮件,数据规模日益扩大。为了满足用户大数据量和非结构化数据,对象存储作为一种新型的存储系统应育而生。

对象存储是一种基于对象的存储系统,具备智能、自我管理能力,通过web服务协议(如:REST、SOAP)实现对象的读写和存储资源的访问。对象存储系统中包含两种数据描述:容器(bucket)、对象(object),其中,容器和对象都有全局唯一的ID。对象存储采用扁平化结构管理所有数据,用户/应用通过接入码认证后,只需要通过ID就可以访问容器/对象及相关的数据(Data)和元数据(metadata)。对象存储系统通常在一个横向扩展架构上构建一个统一命名空间。

通常情况下,认为大小在1MB以内的数据为小对象。社交活动、移动通信、网络视频音频、电子商务、传感器网络、科学实验等各种应用往往会产生大量小对象,这些海量小对象在上传到对象存储时,由于受限于网络交互,导致小对象上传速度存在瓶颈。

因此,如何提高对象的上传速度,并提高网络利用率,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种用于提高对象存储系统中对象上传速度的方法和系统,可以提高对象的上传速度,并提高网络利用率。

为解决上述技术问题,本发明提供了如下技术方案:

一种用于提高对象存储系统中对象上传速度的方法,包括:

根据对象上传请求,获取所需上传的各对象的文件大小;

根据各所述对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包;

将各所述数据包进行上传;

对上传的各所述数据包进行解析,并进行存储。

优选地,所述根据对象上传请求,获取所需上传的各对象的文件大小,包括:

根据所述对象上传请求,通过多线程并发访问客户端所需上传的对象数据;

对所述对象数据中的各对象进行分析,获取各所述对象的文件大小。

优选地,所述根据各所述对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包,包括:

筛选出文件大小小于预设阈值的对象,并定义为小对象;

对各所述小对象的对象数据、元数据和对象描述信息进行编码;

将编码后的小对象合并整合成若干个数据包。

优选地,将各所述数据包进行上传,包括:

判断上传的对象数据是否为由若干所述小对象合并成的数据包;

若是,则按照预设的合并对象上传协议对该数据包进行上传。

优选地,所述对上传的各所述数据包进行解析,并进行存储,包括:

通过对象存储网关对上传的对象数据进行解析;

判断该对象数据的上传协议是否为所述合并对象上传协议;

若是,则对该对象数据进行拆解和处理,解析出数据包中的所有对象的对象数据、元数据和对象描述信息;

对经过解析的各所述对象进行并行写入处理,并将对象上传结果返回至所述客户端。

一种用于提高对象存储系统中对象上传速度的系统,包括:

获取模块,用于根据对象上传请求,获取所需上传的各对象的文件大小;

对象合并模块,用于根据各所述对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包;

数据上传模块,用于将各所述数据包进行上传;

处理模块,用于对上传的各所述数据包进行解析,并进行存储。

优选地,所述获取模块包括:

访问单元,用于根据所述对象上传请求,通过多线程并发访问客户端所需上传的对象数据;

对象大小获取单元,对所述对象数据中的各对象进行分析,获取各所述对象的文件大小。

优选地,所述对象合并模块包括:

筛选单元,用于筛选出文件大小小于预设阈值的对象,并定义为小对象;

编码单元,用于对各所述小对象的对象数据、元数据和对象描述信息进行编码;

整合单元,用于将编码后的小对象合并整合成若干个数据包。

优选地,所述数据上传模块包括:

第一判断单元,用于判断上传的对象数据是否为由若干所述小对象合并成的数据包;

上传单元,用于在所述第一判断单元判定上传的对象数据为由若干所述小对象合并成的数据包时,按照预设的合并对象上传协议对该数据包进行上传。

优选地,所述处理模块包括:

第一解析单元,用于通过对象存储网关对上传的对象数据进行解析;

第二判断单元,用于判断该对象数据的上传协议是否为所述合并对象上传协议;

第二解析单元,用于在所述第二判断单元判定该对象数据的上传协议为所述合并对象上传协议时,对该对象数据进行拆解和处理,解析出数据包中的所有对象的对象数据、元数据和对象描述信息;

存储单元,用于对经过解析的各所述对象进行并行写入处理,并将对象上传结果返回至所述客户端。

与现有技术相比,上述技术方案具有以下优点:

本发明所提供的一种用于提高对象存储系统中对象上传速度的方法,包括:根据对象上传请求,获取所需上传的各对象的文件大小;根据各对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包;将各数据包进行上传;对上传的各数据包进行解析,并进行存储。在本技术方案中,将若干对象进行合并,整合成一个数据包,这样在进行对象上传时,就可以将一些符合预设合并条件的对象,如小对象,合并成若干个数据包,然后将这些数据包进行上传。对于一个数据包的上传操作而言,将多次对象的上传操作转化为一次数据包的上传操作,极大地降低了网络交互,从而提高了对象的上传速度以及网络利用率。

附图说明

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

图1为本发明一种具体实施方式所提供的用于提高对象存储系统中对象上传速度的方法流程图;

图2为本发明一种具体实施方式所提供的用于提高对象存储系统中对象上传速度的系统结构示意图。

具体实施方式

本发明的核心是提供一种用于提高对象存储系统中对象上传速度的方法和系统,可以提高对象的上传速度,并提高网络利用率。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图1,图1为本发明一种具体实施方式所提供的用于提高对象存储系统中对象上传速度的方法流程图。

本发明的一种具体实施方式提供了一种用于提高对象存储系统中对象上传速度的方法,包括:

S11:根据对象上传请求,获取所需上传的各对象的文件大小。

在本发明的一种实施方式中,根据对象上传请求,获取所需上传的各对象的文件大小,包括:根据对象上传请求,通过多线程并发访问客户端所需上传的对象数据;对对象数据中的各对象进行分析,获取各对象的文件大小。

在本实施方式中,对客户端进行海量对象上传的分析,并获取各需要上传的对象的文件大小,以为后续的对象合并提供整合基础。

S12:根据各对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包。

在本发明的一种实施方式中,根据各对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包,包括:筛选出文件大小小于预设阈值的对象,并定义为小对象;对各小对象的对象数据、元数据和对象描述信息进行编码;将编码后的小对象合并整合成若干个数据包。

在本实施方式中,优选地将预设阈值定为1MB,正如背景技术部分所述,目前人们认为大小在1MB以内的数据为小对象。社交活动、移动通信、网络视频音频、电子商务、传感器网络、科学实验等各种应用往往会产生大量小对象,这些海量小对象在上传到对象存储时,由于受限于网络交互,导致小对象上传速度存在瓶颈。因此,提升对象的上传速度,主要是提升小对象的上传速度。通过客户端对小对象进行多线程并发访问,将小对象整合成多干个数据包,每个数据包包含若干个完成的小对象的对象数据、元数据以及对象描述,对象描述包括对象名和对象大小等信息。通过客户端利用多线程并发访问海量小对象,高速地实现了小对象的打包。

S13:将各数据包进行上传。

在本发明的一种实施方式中,将各数据包进行上传,包括:判断上传的对象数据是否为由若干小对象合并成的数据包;若是,则按照预设的合并对象上传协议对该数据包进行上传。

在本实施方式中,由于上传的对象并不仅仅包括小对象,还包括许多的大对象,在此所谓的大对象是相对小对象而言,指的是文件大小大于上述预设阈值的上传对象。

因此,当上传的对象为大对象时,则按照现有的普通对象上传协议对各大对象进行上传;当上传的对象是由多干小对象合并成的数据包时,则按照异于普通对象上传协议的预设的合并对象上传协议进行上传。即大对象按照原有流程进行处理。

S14:对上传的各数据包进行解析,并进行存储。

在本发明的一种实施方式中,对上传的各数据包进行解析,并进行存储,包括:通过对象存储网关对上传的对象数据进行解析;判断该对象数据的上传协议是否为合并对象上传协议;若是,则对该对象数据进行拆解和处理,解析出数据包中的所有对象的对象数据、元数据和对象描述信息;对经过解析的各对象进行并行写入处理,并将对象上传结果返回至客户端。

由于上传的对象均是由客户端上传至对象存储系统中,而对象存储系统通过对象存储网关来接收各对象。对象存储网关通过各对象数据的上传协议来辨别上传的是大对象还是由若干小对象合并的数据包。当上传的是大对象时,按照原有的流程将大对象写入对象存储;若上传的是数据包,则需要对数据包进行拆解,然后解析出所有对象的对象名、对象大小、数据、元数据,并利用对象存储系统的并发对象处理能力,将解析出来的对象写入对象存储系统中。

上述的各实施方式,主要针对有大量小对象上传的情况,对整个传输过程进行优化,通过在对象上传的起始端充分利用了多线程的并行处理能力对海量的对象尤其是小对象的流量进行整合,并在传输的接收端进行拆解处理,降低传输过程中的网络交互次数,从而大幅的提升海量小对象的上传速度,提升网络利用率。

请参考图2,图2为本发明一种具体实施方式所提供的用于提高对象存储系统中对象上传速度的系统结构示意图。

相应地,本发明一种实施方式还提供了一种用于提高对象存储系统中对象上传速度的系统,包括:获取模块21,用于根据对象上传请求,获取所需上传的各对象的文件大小;对象合并模块22,用于根据各对象的文件大小,将符合预设合并条件的对象进行合并,整合成若干个数据包;数据上传模块23,用于将各数据包进行上传;处理模块24,用于对上传的各数据包进行解析,并进行存储。

进一步地,获取模块包括:访问单元,用于根据对象上传请求,通过多线程并发访问客户端所需上传的对象数据;对象大小获取单元,对对象数据中的各对象进行分析,获取各对象的文件大小。

更进一步地,对象合并模块包括:筛选单元,用于筛选出文件大小小于预设阈值的对象,并定义为小对象;编码单元,用于对各小对象的对象数据、元数据和对象描述信息进行编码;整合单元,用于将编码后的小对象合并整合成若干个数据包。

在本实施方式中,优选地将预设阈值定为1MB,正如背景技术部分所述,目前人们认为大小在1MB以内的数据为小对象。通过客户端对小对象进行多线程并发访问,将小对象整合成多干个数据包,每个数据包包含若干个完成的小对象的对象数据、元数据以及对象描述,对象描述包括对象名和对象大小等信息。通过客户端利用多线程并发访问海量小对象,高速地实现了小对象的打包。

数据上传模块包括:第一判断单元,用于判断上传的对象数据是否为由若干小对象合并成的数据包;上传单元,用于在第一判断单元判定上传的对象数据为由若干小对象合并成的数据包时,按照预设的合并对象上传协议对该数据包进行上传。

在本实施方式中,由于上传的对象并不仅仅包括小对象,还包括许多的大对象,在此所谓的大对象是相对小对象而言,指的是文件大小大于上述预设阈值的上传对象。

因此,当上传的对象为大对象时,则按照现有的普通对象上传协议对各大对象进行上传;当上传的对象是由多干小对象合并成的数据包时,则按照异于普通对象上传协议的预设的合并对象上传协议进行上传。即大对象按照原有流程进行处理。

处理模块包括:第一解析单元,用于通过对象存储网关对上传的对象数据进行解析;第二判断单元,用于判断该对象数据的上传协议是否为合并对象上传协议;第二解析单元,用于在第二判断单元判定该对象数据的上传协议为合并对象上传协议时,对该对象数据进行拆解和处理,解析出数据包中的所有对象的对象数据、元数据和对象描述信息;存储单元,用于对经过解析的各对象进行并行写入处理,并将对象上传结果返回至客户端。

由于上传的对象均是由客户端上传至对象存储系统中,而对象存储系统通过对象存储网关来接收各对象。对象存储网关通过各对象数据的上传协议来辨别上传的是大对象还是由若干小对象合并的数据包。当上传的是大对象时,按照原有的流程将大对象写入对象存储;若上传的是数据包,则需要对数据包进行拆解,然后解析出所有对象的对象名、对象大小、数据、元数据,并利用对象存储系统的并发对象处理能力,将解析出来的对象写入对象存储系统中。

综上所述,本发明所提供的用于提高对象存储系统中对象上传速度的方法和系统,主要针对有大量小对象上传的情况,对整个传输过程进行优化,通过在对象上传的起始端充分利用了多线程的并行处理能力对海量的对象尤其是小对象的流量进行整合,并在传输的接收端进行拆解处理,降低传输过程中的网络交互次数,从而大幅的提升海量小对象的上传速度,提升网络利用率。

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

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