CN104967640A - 一种数据存储方法、装置和系统 - Google Patents

一种数据存储方法、装置和系统 Download PDF

Info

Publication number
CN104967640A
CN104967640A CN201410373406.4A CN201410373406A CN104967640A CN 104967640 A CN104967640 A CN 104967640A CN 201410373406 A CN201410373406 A CN 201410373406A CN 104967640 A CN104967640 A CN 104967640A
Authority
CN
China
Prior art keywords
memory device
server
packet
data
slice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410373406.4A
Other languages
English (en)
Inventor
查冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410373406.4A priority Critical patent/CN104967640A/zh
Publication of CN104967640A publication Critical patent/CN104967640A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据存储方法、装置和系统;本发明实施例的服务器可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,以及生成相应的索引信息,然后才将该切片得到的切片数据发送给存储设备,以进行存储;采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。

Description

一种数据存储方法、装置和系统
技术领域
本发明涉及通信技术领域,具体涉及一种数据存储方法、装置和系统。
背景技术
随着通信技术的发展,数据的交互量也越来越为庞大,如何更好更高效地对数据进行存储以便后续读取,也成为提高整个通信系统性能的一个极为关键的问题。
在现有技术中,在存储数据时,一般会将数据压缩为数据包并发送给存储设备,由存储设备自行对该数据包进行处理,比如,由存储设备直接进行存储或按照固定的分片大小对该数据包进行切片,然后逐片进行存储。
在对现有技术的研究和实践过程中,本发明的发明人发现,在现有的存储方案中,若数据包过大,则可能会冲击到网络传输,引起网络拥塞,而且,在触发写盘或拉取数据时,响应速度也会较慢,大大影响存储介质的性能。
发明内容
本发明实施例提供一种数据存储方法、装置和系统,不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
本发明实施例提供一种数据存储方法,包括:
服务器接收客户端发送的存储请求,所述存储请求携带需要存储的数据包和数据包标识;
服务器确定切片格式大小;
服务器确定所述数据包的大小大于所述切片格式大小时,根据所述切片格式大小对所述数据包进行切片,得到切片数据;
服务器根据所述切片数据生成索引信息,并保存所述索引信息,所述索引信息包括数据包标识和分片标识;
服务器将所述切片数据发送给存储设备,以便存储设备对所述切片数据进行存储。
相应的,本发明实施例还提供一种服务器,其特征在于,包括接收单元、确定单元、切片单元和发送单元;
接收单元,用于接收客户端发送的存储请求,所述存储请求携带需要存储的数据包和数据包标识;
确定单元,用于确定切片格式大小;
切片单元,用于在确定所述数据包的大小大于所述切片格式大小时,根据所述切片格式大小对所述数据包进行切片,得到切片数据;
生成单元,用于根据所述切片数据生成索引信息,并保存所述索引信息,所述索引信息包括数据包标识和分片标识
发送单元,用于将所述切片数据发送给存储设备,以便存储设备对所述切片数据进行存储。
此外,本发明实施例还提供一种数据存储系统,包括本发明实施例提供的任一种服务器。
本发明实施例的服务器可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,以及生成相应的索引信息,然后才将该切片得到的切片数据发送给存储设备,以进行存储,从而避免了现有技术中由于数据包过大所导致的对服务器和存储设备之间的网络传输造成冲击的问题,采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供;
图2a是本发明实施例提供的数据存储系统的场景示意图;
图2b是本发明实施例提供的服务器的结构示意图;
图2c是本发明实施例提供的数据存储方法中写入数据的示意图;
图2d是本发明实施例提供的数据存储方法中下载数据的示意图;
图2e是本发明实施例提供的数据存储方法的另一流程图;
图2f是本发明实施例提供的数据存储方法中索引信息的数据结构示意图;
图3a是本发明实施例提供的服务器的另一结构示意图;
图3b是本发明实施例提供的服务器的又一结构示意图;
图4是本发明实施例提供的服务器的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据存储方法、装置和系统。以下分别进行详细说明。
实施例一、
本实施例将从服务器的角度进行描述。
一种数据存储方法,包括:服务器接收客户端发送的存储请求,其中,该存储请求携带需要存储的数据包和数据包标识,确定切片格式大小,在确定该数据包的大小大于切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据,并根据该切片数据生成索引信息,以及保存该索引信息,然后将切片数据发送给存储设备,以便存储设备对该切片数据进行存储。
如图1所示,该数据存储方法的具体流程可以如下:
101、服务器接收客户端发送的存储请求。
其中,该存储请求携带需要存储的数据包,以及携带数据包标识等信息。
102、服务器确定切片格式大小。
其中,切片格式大小指的是每一个切片可以承载的数据的大小,其中,该切片格式大小可以由服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息等因素来确定,即步骤“服务器确定切片格式大小(即步骤102)”具体可以如下:
A1、服务器获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延、以及存储设备的属性信息等。
其中,该存储设备的属性信息可以包括存储设备的写入速度,还可以包括存储设备的可用存储空间大小等信息。
A2、服务器根据该传输带宽、时延和属性信息等信息计算切片格式大小,例如,具体可以如下:
服务器分别确定时延(即服务器与存储设备之间传输数据时的时延)最大时服务器与存储设备之间的传输带宽,以及确定此时(即时延最大时)存储设备的写入速度;
若该传输带宽(即时延最大时,服务器与存储设备之间的传输带宽)大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小;
若该传输带宽(即时延最大时,服务器与存储设备之间的传输带宽)小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
需说明的是,该切片格式的大小可以在需要时实时进行确定,也可以设置每隔一个周期确定一次,即每隔一周期更新一次,比如,每隔1分钟则重新确定一次,等等,在此不再赘述。
103、服务器确定该数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据。
需说明的是,如果服务器确定该数据包的大小小于等于该切片格式大小,则可以不对数据包进行切片,而是直接将该数据包发送给存储设备,以便存储设备对该数据包进行存储。
104、服务器根据该切片数据生成索引信息,并保存该索引信息。
其中,该索引信息可以包括数据包标识和分片标识,该索引信息还可以包括该切片数据的写入时间等信息,从而可以根据该写入时间来确定该数据包是否已写入或是否过期等等,在此不再赘述。
其中,该分片标识可以包括分片编号等信息,该分片标识可以指示出该切片数据在整个数据包的位置,这样,后续便可以根据给分片标识对该数据包的所有切片数据进行拼凑,以复原该数据包。
此外,需说明的是,数据包标识和分片标识可以分别设置为独立的标识,也可以进行组合,作为一个统一的标识,比如,可以设置为一个用于计数拼凑计算的消息摘要算法第五版(MD5,Message Digest Algorithm)值,通过该MD5值,不仅可以识别出该切片数据是属于哪一个数据包,而且可以识别出该切片数据位于该数据包中的哪个位置。
105、服务器将该切片数据发送给存储设备,以便存储设备对该切片数据进行存储。
此外,在将数据包存储到存储设备中之后,后续客户端还可以通过服务器来下载该数据包,即在步骤“服务器将所述切片数据发送给存储设备”之后,还可以包括如下步骤:
B1、服务器接收客户端发送的下载请求,其中,该存储请求指示需要下载的数据包的数据包标识。
B2、服务器根据该数据包标识从存储设备中下载对应的分片数据,例如,具体可以如下:
服务器根据该数据包标识获取相应的索引信息,然后,根据该索引信息从存储设备中下载对应的分片数据。
比如,如果之前将数据包标识所对应的数据包分成了3个切片:切片1、切片2和切片3,则此时,可以根据该数据包标识获取相应的索引信息,然后,根据该索引信息从存储设备中下载切片1、切片2和切片3。
B3、服务器将下载到的所有分片数据进行拼凑,得到拼凑后数据包,例如,具体可以如下:
服务器将下载到的所有分片数据按照索引信息中的分片标识进行拼凑,得到拼凑后数据包。
比如,还是以数据包包括切片1、切片2和切片3为例进行说明,如果切片1的分片标识指示其为第一个切片,切片2的分片标识指示其为第二个切片,切片3的分片标识指示其为第三个切片,则可以按照“切片1—>切片2—>切片3”的顺序将这三个切片进行拼凑,得到拼凑后数据包即为完整的数据包,即之前保存的数据包。
B4、服务器将该拼凑后数据包发送给客户端。
由上可知,本实施例的服务器可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,以及生成相应的索引信息,然后才将该切片得到的切片数据发送给存储设备,以进行存储,从而避免了现有技术中由于数据包过大所导致的对服务器和存储设备之间的网络传输造成冲击的问题,采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
参见图2a,该图为该数据存储系统的场景示意图,由图2a可知,该数据存储系统可以包括服务器,还可以包括客户端和存储设备,比如存储设备1、存储设备2……存储设备n,等等,如下:
(一)客户端;
客户端,用于发送存储请求给服务器,其中,该存储请求携带需要存储的数据包,以及携带数据包标识等信息。
此外,客户端还可以发送下载请求给服务器其中,该存储请求指示需要下载的数据包的数据包标识,并接收服务器返回的数据包。
(二)服务器;
服务器,用于接收客户端发送的存储请求,确定切片格式大小,在确定该数据包的大小大于切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据,并根据该切片数据生成索引信息,以及保存该索引信息,然后将切片数据发送给存储设备。
需说明的是,如果确定该数据包的大小小于等于切片格式大小,则无需对数据包进行切片,而是将整个数据包直接发送给存储设备。
此外,服务器,还用于接收客户端发送的下载请求,根据该下载请求中携带的数据包标识从存储设备中下载对应的分片数据,将下载到的所有分片数据进行拼凑,得到拼凑后数据包,然后将该拼凑后数据包发送给客户端。
当然,如果所请求下载的数据包在之前存储时并没有分成切片数据,则此时可以直接获取该数据包,而无需进行拼凑,在此不再赘述。
例如,如图2b所示,该服务器可以包括接收模块、分片模块、下载模块和发送模块,具体可以如下:
1、写入数据;
如图2c所示,此时,接收模块可以接收客户端发送的存储请求,并将该存储请求发送给分片模块,由分片模块确定切片格式大小,在确定该数据包的大小大于切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据,比如,可以得到切片数据1、切片数据2……切片数据n,等等,并根据该切片数据生成索引信息,以及保存该索引信息,然后通过发送模块将切片数据发送给存储设备。
需说明的是,如果分片模块确定该数据包的大小小于等于切片格式大小,则可以直接通过发送单元将数据包发送给存储设备,而无需进行切片,在此不再赘述。
2、下载数据;
如图2d所示,此时,接收模块可以接收客户端发送的下载请求,然后将该下载请求发送给下载模块,由下载模块根据该下载请求中携带的数据包标识从存储设备中下载对应的分片数据,将下载到的所有分片数据进行拼凑,得到拼凑后数据包,然后由发送模块将该拼凑后数据包发送给客户端。
当然,如果所请求下载的数据包在之前存储时并没有分成切片数据,则此时可以由下载模块直接获取该数据包,然后又发送模块将该数据包发送给客户端,而无需进行拼凑,在此不再赘述。
(三)存储设备;
存储设备,用于接收服务器发送的数据包或切片数据,对数据包和切片数据进行存储,以及,将存储的数据包或切片数据提供给服务器。
基于上述数据存储系统的结构,以下将举例对其执行流程进行详细说明。
如图2e所示,一种数据存储方法,具体流程可以如下:
201、客户端发送存储请求给服务器。
其中,该存储请求携带需要存储的数据包,以及携带数据包标识等信息。
202、服务器接收到客户端发送的存储请求后,确定切片格式大小。
其中,切片格式大小指的是每一个切片可以承载的数据的大小,其中,该切片格式大小可以由服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息等因素来确定,例如,具体可以如下:
服务器获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延、以及存储设备的属性信息等,然后根据该传输带宽、时延和属性信息计算切片格式大小,比如,可以分别确定时延最大时服务器与存储设备之间的传输带宽,以及确定此时存储设备的写入速度;若该传输带宽大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小,若该传输带宽小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
其中,该存储设备的属性信息可以包括存储设备的写入速度,还可以包括存储设备的可用存储空间大小等信息。
需说明的是,该切片格式的大小可以在需要时实时进行确定,也可以设置每隔一个周期确定一次,即每隔一周期更新一次,比如,每隔1分钟则重新确定一次,等等,在此不再赘述。
203、服务器确定该数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据。
比如,如果该数据包的大小大于两倍的切片格式大小,而小于等于三倍的切片格式大小,则可以将该数据包切成三个切片数据:切片数据1、切片数据2和切片数据3,又比如,如果该数据包的大小大于一倍的切片格式大小,而小于等于两倍的切片格式大小,则可以将该数据包切成两个切片数据:切片数据1和切片数据2,等等,以此类推。
需说明的是,如果服务器确定该数据包的大小小于等于该切片格式大小,则可以不对数据包进行切片,而是直接将该数据包发送给存储设备,以便存储设备对该数据包进行存储。
204、服务器根据该切片数据生成索引信息,并保存该索引信息。
其中,该索引信息可以包括数据包标识和分片标识,该索引信息还可以包括该切片数据的存储信息和写入时间等信息,从而可以根据该写入时间来确定该数据包是否已写入或是否过期等等,在此不再赘述。
其中,该分片标识可以包括分片编号等信息,该分片标识可以指示出该切片数据在整个数据包的位置,这样,后续便可以根据给分片标识对该数据包的所有切片数据进行拼凑,以复原该数据包。
此外,需说明的是,数据包标识和分片标识可以分别设置为独立的标识,也可以进行组合,作为一个统一的标识,比如,可以设置为一个用于计数拼凑计算的MD5值,通过该MD5值,不仅可以识别出该切片数据是属于哪一个数据包,而且可以识别出该切片数据位于该数据包中的哪个位置。
例如,图2f所示,该索引信息可以包括“Flag”、“Head Len”和“Head”,其中,Flag用于指示存储信息,比如,可以设置为32位(bit),其中,前16位为备用字段,中间6位用于标识所属的互联网数据中心(IDC,Internet DataCenter)地域信息,而后10位则可以用于标识该分片数据所使用的存储模块,当然,也可以设置为其他位数,在此不作限定。“Head Len”指的是头部长度,而“Head”则为头部,其可以用于指示该切片数据的所属数据包标识和分片标识,还可以用于指示数据长度和/或数据的写入时间(即存储时间),等等,在此不再赘述。
205、服务器将该切片数据发送给存储设备。
206、存储设备对接收到的切片数据进行存储。
此外,在将数据包存储到存储设备中之后,后续客户端还可以通过服务器来下载该数据包,即还可以执行步骤207~210,如下:
207、服务器接收客户端发送的下载请求,其中,该存储请求指示需要下载的数据包的数据包标识。
208、服务器根据该数据包标识获取相应的索引信息,并根据该索引信息从存储设备中下载对应的分片数据。
比如,如果之前将数据包标识所对应的数据包分成了3个切片:切片1、切片2和切片3,则此时,可以根据该数据包标识获取相应的索引信息,然后,根据该索引信息从存储设备中下载切片1、切片2和切片3。
209、服务器将下载到的所有分片数据按照索引信息中的分片标识进行拼凑,得到拼凑后数据包。
比如,还是以数据包包括切片1、切片2和切片3为例进行说明,如果切片1的分片标识指示其为第一个切片,切片2的分片标识指示其为第二个切片,切片3的分片标识指示其为第三个切片,则可以按照“切片1—>切片2—>切片3”的顺序将这三个切片进行拼凑,得到拼凑后数据包即为完整的数据包,即之前保存的数据包。
210、服务器将该拼凑后数据包发送给客户端。
需说明的是,步骤201~206中的客户端与步骤207~210中的客户端可以为相同的客户端,也可以为不同的客户端,在此不再赘述。
由上可知,本实施例的服务器可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,以及生成相应的索引信息,然后才将该切片得到的切片数据发送给存储设备,以进行存储,从而避免了现有技术中由于数据包过大所导致的对服务器和存储设备之间的网络传输造成冲击的问题,采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
实施例三、
为了更好地实现以上方法,本发明实施例还提供一种服务器,如图3a所示,该服务器可以包括接收单元301、确定单元302、切片单元303、生成单元304和发送单元305,如下:
接收单元301,用于接收客户端发送的存储请求。
其中,该存储请求携带需要存储的数据包,以及携带数据包标识等信息。
确定单元302,用于确定切片格式大小。
切片单元303,用于在确定该数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据。
生成单元304,用于根据该切片数据生成索引信息,并保存该索引信息。
其中,该索引信息可以包括数据包标识和分片标识,该索引信息还可以包括该切片数据的写入时间等信息,具体可参见前面的实施例,在此不再赘述。
此外,需说明的是,数据包标识和分片标识可以分别设置为独立的标识,也可以进行组合,作为一个统一的标识,比如,可以设置为一个用于计数拼凑计算的MD5值,通过该MD5值,不仅可以识别出该切片数据是属于哪一个数据包,而且可以识别出该切片数据位于该数据包中的哪个位置。
发送单元305,用于将该切片数据发送给存储设备,以便存储设备对该切片数据进行存储。
需说明的是,如果服务器确定该数据包的大小小于等于该切片格式大小,则可以不对数据包进行切片,而是直接由发送单元305将该数据包发送给存储设备,以便存储设备对该数据包进行存储。
其中,切片格式大小指的是每一个切片可以承载的数据的大小,其中,该切片格式大小可以由服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息等因素来确定,即确定单元302可以包括获取子单元和运算子单元,如下:
获取子单元,用于获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延、以及存储设备的属性信息等。
其中,该存储设备的属性信息可以包括存储设备的写入速度,还可以包括存储设备的可用存储空间大小等信息。
运算子单元,用于根据该传输带宽、时延和属性信息等信息计算切片格式大小,例如,具体可以如下:
分别确定所述时延最大时服务器与存储设备之间的传输带宽和此时存储设备的写入速度;
若所述时延最大时服务器与存储设备之间的传输带宽大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小;
若所述时延最大时服务器与存储设备之间的传输带宽小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
需说明的是,该切片格式的大小可以在需要时实时进行确定,也可以设置每隔一个周期确定一次,即每隔一周期更新一次,比如,每隔1分钟则重新确定一次,等等,在此不再赘述。
此外,在将数据包存储到存储设备中之后,后续客户端还可以通过服务器来下载该数据包,即如图3b所示,该服务器还可以包括下载单元306和拼凑单元307,如下:
接收单元301,还可以用于接收客户端发送的下载请求,其中,该存储请求指示需要下载的数据包的数据包标识;
下载单元306,可以用于根据所述数据包标识从存储设备中下载对应的分片数据,例如,具体可以如下:
下载单元306,具体可以用于根据该数据包标识获取相应的索引信息,根据该索引信息从存储设备中下载对应的分片数据。
比如,如果之前将数据包标识所对应的数据包分成了3个切片:切片1、切片2和切片3,则此时,可以根据该数据包标识获取相应的索引信息,然后,根据该索引信息从存储设备中下载切片1、切片2和切片3。
拼凑单元307,可以用于将获取到的所有分片数据进行拼凑,得到拼凑后数据包,例如,具体可以如下:
拼凑单元307,具体可以用于将下载到的所有分片数据按照索引信息中的分片标识进行拼凑,得到拼凑后数据包。
比如,还是以数据包包括切片1、切片2和切片3为例进行说明,如果切片1的分片标识指示其为第一个切片,切片2的分片标识指示其为第二个切片,切片3的分片标识指示其为第三个切片,则可以按照“切片1—>切片2—>切片3”的顺序将这三个切片进行拼凑,得到拼凑后数据包即为完整的数据包,即之前保存的数据包。
发送单元305,还可以用于将所述拼凑后数据包发送给客户端。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,比如,确定单元302、切片单元303和生成单元304可以作为实施例二中的分片模块来实现,而下载单元306和拼凑单元307可以作为实施例二中的下载模块来实现,等等,以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的服务器的确定单元302可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,由切片单元303根据该切片格式大小对该数据包进行切片,以及由生成单元304生成相应的索引信息,然后才由发送单元305将该切片得到的切片数据发送给存储设备,以进行存储,从而避免了现有技术中由于数据包过大所导致的对服务器和存储设备之间的网络传输造成冲击的问题,采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
实施例四、
相应的,本发明实施例还提供一种数据存储系统,包括本发明实施例提供的任一种服务器,例如,具体可以如下:
服务器,用于接收客户端发送的存储请求,确定切片格式大小,在确定该数据包的大小大于切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据,并根据该切片数据生成索引信息,以及保存该索引信息,然后将切片数据发送给存储设备。
需说明的是,如果确定该数据包的大小小于等于切片格式大小,则无需对数据包进行切片,而是将整个数据包直接发送给存储设备。
此外,在将数据包存储到存储设备中之后,后续客户端还可以通过服务器来下载该数据包,即:
服务器,还用于接收客户端发送的下载请求,根据该下载请求中携带的数据包标识从存储设备中下载对应的分片数据,将下载到的所有分片数据进行拼凑,得到拼凑后数据包,然后将该拼凑后数据包发送给客户端。
当然,如果所请求下载的数据包在之前存储时并没有分成切片数据,则此时可以直接获取该数据包,而无需进行拼凑,在此不再赘述。
另外,该数据存储系统还可以包括客户端和存储设备,如下:
客户端,用于发送存储请求给服务器,其中,该存储请求携带需要存储的数据包,以及携带数据包标识等信息。以及,还可以用于发送下载请求给服务器其中,该存储请求指示需要下载的数据包的数据包标识,并接收服务器返回的数据包。
存储设备,用于接收服务器发送的数据包或切片数据,对数据包和切片数据进行存储,以及,将存储的数据包或切片数据提供给服务器。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由于该数据存储系统包括本发明实施例提供的任一种服务器,因此,可以实现本发明实施例所提供的任一种服务器的有益效果,详见前面的实施例,在此不再赘述。
实施例五、
此外,本发明实施例还提供另一种服务器,如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(Radio Frequency,RF)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
RF电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理;另外,将涉及上行的数据发送给基站。通常,RF电路403包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路403还可以通过无线通信与网络和其他设备通信。
服务器还包括给各个部件供电的电源404(比如电池),优选的,电源可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元405可包括触敏表面以及其他输入设备。
该服务器还可包括显示单元406,该显示单元408可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收客户端发送的存储请求,确定切片格式大小,在确定该数据包的大小大于切片格式大小时,根据该切片格式大小对该数据包进行切片,得到切片数据,并根据该切片数据生成索引信息,以及保存该索引信息,然后将切片数据发送给存储设备。
其中,该切片格式大小可以由服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息等因素来确定,即步骤“服务器确定切片格式大小”具体可以如下:
A1、获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延、以及存储设备的属性信息等。
其中,该存储设备的属性信息可以包括存储设备的写入速度,还可以包括存储设备的可用存储空间大小等信息。
A2、根据该传输带宽、时延和属性信息等信息计算切片格式大小,例如,具体可以如下:
服务器分别确定时延(即服务器与存储设备之间传输数据时的时延)最大时服务器与存储设备之间的传输带宽,以及确定此时(即时延最大时)存储设备的写入速度;
若该传输带宽(即时延最大时,服务器与存储设备之间的传输带宽)大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小;
若该传输带宽(即时延最大时,服务器与存储设备之间的传输带宽)小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
需说明的是,该切片格式的大小可以在需要时实时进行确定,也可以设置每隔一个周期确定一次,即每隔一周期更新一次,比如,每隔1分钟则重新确定一次,等等,在此不再赘述。
此外,还需说明的是,如果确定该数据包的大小小于等于切片格式大小,则无需对数据包进行切片,而是将整个数据包直接发送给存储设备。
另外,在将数据包存储到存储设备中之后,后续客户端还可以通过服务器来下载该数据包,即处理器401还可以执行如下操作:
接收客户端发送的下载请求,根据该下载请求中携带的数据包标识从存储设备中下载对应的分片数据,将下载到的所有分片数据进行拼凑,得到拼凑后数据包,然后将该拼凑后数据包发送给客户端。
当然,如果所请求下载的数据包在之前存储时并没有分成切片数据,则此时可以直接获取该数据包,而无需进行拼凑,在此不再赘述。
以上各个操作具体可参见前面的实施例,在此不再赘述。
由上可知,本实施例的服务器可以实时确定切片格式大小,并在数据包的大小大于该切片格式大小时,根据该切片格式大小对该数据包进行切片,以及生成相应的索引信息,然后才将该切片得到的切片数据发送给存储设备,以进行存储,从而避免了现有技术中由于数据包过大所导致的对服务器和存储设备之间的网络传输造成冲击的问题,采用该方案不仅可以便于数据传输,避免网络拥塞,而且,可以大大提高写盘或拉取数据时的响应速度,提高存储介质的性能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种数据存储方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种数据存储方法,其特征在于,包括:
服务器接收客户端发送的存储请求,所述存储请求携带需要存储的数据包和数据包标识;
服务器确定切片格式大小;
服务器确定所述数据包的大小大于所述切片格式大小时,根据所述切片格式大小对所述数据包进行切片,得到切片数据;
服务器根据所述切片数据生成索引信息,并保存所述索引信息,所述索引信息包括数据包标识和分片标识;
服务器将所述切片数据发送给存储设备,以便存储设备对所述切片数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述服务器确定切片格式大小,包括:
服务器获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息,所述属性信息包括存储设备的写入速度;
服务器根据所述传输带宽、所述时延和所述属性信息计算切片格式大小。
3.根据权利要求2所述的方法,其特征在于,所述服务器根据所述传输带宽、所述时延和所述属性信息计算切片格式大小,包括:
服务器分别确定所述时延最大时服务器与存储设备之间的传输带宽和此时存储设备的写入速度;
若所述时延最大时服务器与存储设备之间的传输带宽大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小;
若所述时延最大时服务器与存储设备之间的传输带宽小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述服务器将所述切片数据发送给存储设备之后,还包括:
服务器接收客户端发送的下载请求,所述存储请求指示需要下载的数据包的数据包标识;
服务器根据所述数据包标识从存储设备中下载对应的分片数据;
服务器将下载到的所有分片数据进行拼凑,得到拼凑后数据包;
服务器将所述拼凑后数据包发送给客户端。
5.根据权利要求4所述的方法,其特征在于,所述服务器根据所述数据包标识从存储设备中下载对应的分片数据,包括:
服务器根据所述数据包标识获取相应的索引信息;
服务器根据所述索引信息从存储设备中下载对应的分片数据;
所述服务器将下载到的所有分片数据进行拼凑,得到拼凑后数据包,包括:服务器将下载到的所有分片数据按照索引信息中的分片标识进行拼凑,得到拼凑后数据包。
6.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
服务器确定所述数据包的大小小于等于所述切片格式大小时,将所述数据包发送给存储设备,以便存储设备对所述数据包进行存储。
7.一种服务器,其特征在于,包括:
接收单元,用于接收客户端发送的存储请求,所述存储请求携带需要存储的数据包和数据包标识;
确定单元,用于确定切片格式大小;
切片单元,用于在确定所述数据包的大小大于所述切片格式大小时,根据所述切片格式大小对所述数据包进行切片,得到切片数据;
生成单元,用于根据所述切片数据生成索引信息,并保存所述索引信息,所述索引信息包括数据包标识和分片标识;
发送单元,用于将所述切片数据发送给存储设备,以便存储设备对所述切片数据进行存储。
8.根据权利要求7所述的服务器,其特征在于,所述确定单元包括获取子单元和运算子单元;
获取子单元,用于获取服务器与存储设备之间的传输带宽、服务器与存储设备之间传输数据时的时延和存储设备的属性信息,所述属性信息包括存储设备的写入速度;
运算子单元,用于根据所述传输带宽、所述时延和所述属性信息计算切片格式大小。
9.根据权利要求8所述的服务器,其特征在于,所述运算子单元,具体用于:
分别确定所述时延最大时服务器与存储设备之间的传输带宽和此时存储设备的写入速度;
若所述时延最大时服务器与存储设备之间的传输带宽大于此时存储设备的写入速度,则将此时存储设备的写入速度所对应的数据长度作为切片格式大小;
若所述时延最大时服务器与存储设备之间的传输带宽小于等于此时存储设备的写入速度,则将所述时延最大时服务器与存储设备之间的传输带宽所对应的数据长度作为切片格式大小。
10.根据权利要求7至9任一项所述的服务器,其特征在于,还包括下载单元和拼凑单元;
所述接收单元,还用于接收客户端发送的下载请求,所述存储请求指示需要下载的数据包的数据包标识;
下载单元,用于根据所述数据包标识从存储设备中下载对应的分片数据;
拼凑单元,用于将获取到的所有分片数据进行拼凑,得到拼凑后数据包;
所述发送单元,还用于将所述拼凑后数据包发送给客户端。
11.根据权利要求10所述的服务器,其特征在于,
所述下载单元,具体用于根据所述数据包标识获取相应的索引信息,根据所述索引信息从存储设备中下载对应的分片数据;
所述拼凑单元,具体用于将下载到的所有分片数据按照索引信息中的分片标识进行拼凑,得到拼凑后数据包。
12.根据权利要求7至9任一项所述的服务器,其特征在于,
所述发送单元,还用于在确定所述数据包的大小小于等于所述切片格式大小时,将所述数据包发送给存储设备,以便存储设备对所述数据包进行存储。
13.一种数据存储系统,其特征在于,包括权利要求7至12任一项所述的服务器。
CN201410373406.4A 2014-07-31 2014-07-31 一种数据存储方法、装置和系统 Pending CN104967640A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410373406.4A CN104967640A (zh) 2014-07-31 2014-07-31 一种数据存储方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410373406.4A CN104967640A (zh) 2014-07-31 2014-07-31 一种数据存储方法、装置和系统

Publications (1)

Publication Number Publication Date
CN104967640A true CN104967640A (zh) 2015-10-07

Family

ID=54221581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410373406.4A Pending CN104967640A (zh) 2014-07-31 2014-07-31 一种数据存储方法、装置和系统

Country Status (1)

Country Link
CN (1) CN104967640A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067415A1 (zh) * 2015-10-22 2017-04-27 阿里巴巴集团控股有限公司 数据传输方法及装置
WO2023159347A1 (zh) * 2022-02-22 2023-08-31 华为技术有限公司 一种控制数据读写的方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038681A1 (en) * 2005-08-10 2007-02-15 Spare Backup, Inc. System and method of remote storage of data through connection from a server to a client
CN101043294A (zh) * 2007-03-15 2007-09-26 华为技术有限公司 数据帧的切片方法和光网络单元
CN101145933A (zh) * 2007-10-26 2008-03-19 北大方正集团有限公司 发布系统、媒体数据的发送方法、接收方法及相应装置
CN101188544A (zh) * 2007-12-04 2008-05-28 浙江大学 分布式文件服务器基于缓冲区的文件传输方法
CN101447856A (zh) * 2007-11-28 2009-06-03 新奥特(北京)视频技术有限公司 一种大容量文件传输方法
CN101453478A (zh) * 2007-11-28 2009-06-10 新奥特(北京)视频技术有限公司 一种在文件传输中的完整性校验方法
CN102170475A (zh) * 2011-04-22 2011-08-31 中兴通讯股份有限公司 一种基于p2p的文件分发系统及分片方法
CN102714633A (zh) * 2012-03-06 2012-10-03 华为技术有限公司 业务报文的发送、接收方法、装置及系统
CN102833294A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
CN102882960A (zh) * 2012-09-21 2013-01-16 东软集团股份有限公司 一种资源文件的发送方法及装置
CN103873507A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块上传与存储系统及方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038681A1 (en) * 2005-08-10 2007-02-15 Spare Backup, Inc. System and method of remote storage of data through connection from a server to a client
CN101043294A (zh) * 2007-03-15 2007-09-26 华为技术有限公司 数据帧的切片方法和光网络单元
CN101145933A (zh) * 2007-10-26 2008-03-19 北大方正集团有限公司 发布系统、媒体数据的发送方法、接收方法及相应装置
CN101447856A (zh) * 2007-11-28 2009-06-03 新奥特(北京)视频技术有限公司 一种大容量文件传输方法
CN101453478A (zh) * 2007-11-28 2009-06-10 新奥特(北京)视频技术有限公司 一种在文件传输中的完整性校验方法
CN101188544A (zh) * 2007-12-04 2008-05-28 浙江大学 分布式文件服务器基于缓冲区的文件传输方法
CN102170475A (zh) * 2011-04-22 2011-08-31 中兴通讯股份有限公司 一种基于p2p的文件分发系统及分片方法
CN102833294A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
CN102714633A (zh) * 2012-03-06 2012-10-03 华为技术有限公司 业务报文的发送、接收方法、装置及系统
CN102882960A (zh) * 2012-09-21 2013-01-16 东软集团股份有限公司 一种资源文件的发送方法及装置
CN103873507A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块上传与存储系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067415A1 (zh) * 2015-10-22 2017-04-27 阿里巴巴集团控股有限公司 数据传输方法及装置
CN106612308A (zh) * 2015-10-22 2017-05-03 阿里巴巴集团控股有限公司 数据传输方法及装置
US10735295B2 (en) 2015-10-22 2020-08-04 Alibaba Group Holding Limited Data transmission method and apparatus
US11201810B2 (en) 2015-10-22 2021-12-14 Alibaba Group Holding Limited Data transmission method and apparatus
WO2023159347A1 (zh) * 2022-02-22 2023-08-31 华为技术有限公司 一种控制数据读写的方法和装置

Similar Documents

Publication Publication Date Title
KR102513998B1 (ko) 통신 방법 및 장치, 엔티티 및 컴퓨터 판독가능 저장 매체
CN107911249B (zh) 一种网络设备的命令行发送方法、装置和设备
US11409819B2 (en) Method and device for recommending social user
CN105491067A (zh) 基于密钥的业务安全性验证方法及装置
CN105119806A (zh) 消息更新方法及装置
CN108200180B (zh) 一种用于限制请求频率的方法、装置及计算机设备
CN103781055A (zh) 一种数据下载方法及相关设备
CN104980416A (zh) 一种内容分布网络中的数据访问方法、装置和系统
CN104980399A (zh) 一种文件传输方法、客户端及代理服务器
CN105363201A (zh) 提示信息的显示方法及装置
CN104980455A (zh) 一种基于云存储的多终端数据同步方法、装置和系统
CN104901991A (zh) 虚拟资源转移方法、装置和系统
CN105320515A (zh) 一种流计算系统中的配置方法、装置和系统
CN104954233A (zh) 信息推送方法、装置和系统
CN104901806A (zh) 一种虚拟资源处理方法、装置和系统
CN104735657A (zh) 安全终端验证方法、无线接入点绑定方法、装置及系统
CN104702576A (zh) 语音传输方法、装置和语音服务系统
CN104536782A (zh) 引导内容展示方法、文件生成方法及装置
CN103607431B (zh) 移动终端资源处理方法、装置和设备
CN110780887A (zh) 一种提供应用安装包的方法与设备
CN105227598A (zh) 一种基于云存储的资源分享方法、装置和系统
CN104618418A (zh) 播放多媒体文件的方法及装置
CN109274534B (zh) 一种网络切片的监管方法及设备、通信系统
CN104780234A (zh) Ip归属地查询方法、装置及系统
CN104182532A (zh) 终端文件的清理方法、装置及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20151007