一种对象存储数据传输方法及装置的制造方法

文档序号:9887314阅读:342来源:国知局
一种对象存储数据传输方法及装置的制造方法
【技术领域】
[0001]本发明涉及对象存储、存储数据重删技术领域,特别是涉及一种对象存储数据传输方法及装置。
【背景技术】
[0002]随着社会信息化水平的不断提高和互联网技术的高速发展,各类非结构化数据,如图片、音视频、文本资料等呈现出爆炸性增长的趋势,在云存储服务为人们带来便利的同时,数据规模也在急剧膨胀,这对存储海量数据的能力提出了更高的要求。研究表明,数据中高达75%的部分是重复的,存储资源利用率不高的一个重要原因就是数据中存在大量的重复和冗余。
[0003]对象存储系统对其中的对象访问主要通过上传和下载、删除的方式,当上传系统中存在云存储中已存在的数据时,重复上传数据会引起网络带宽的浪费,以及会影响存储系统整体的吞吐率。
[0004]针对对象存储中数据存在大量重复的问题,如何提高对象存储系统的存储设备和网络带宽的利用率,提高数据传输效率成为目前亟待解决的技术问题。

【发明内容】

[0005]本发明的目的是提供一种对象存储数据传输方法及装置,目的在于解决重复的数据被多次存储导致存储空间浪费的问题。
[0006]为解决上述技术问题,本发明提供一种对象存储数据传输方法,包括:
[0007]接收数据上传的指令,将对象流中的对象分段为多个数据片段;
[0008]计算每个所述数据片段的指纹值;
[0009]按照所述指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;
[0010]调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值;
[0011 ]如果是,则建立所述指纹值对应的数据片段到所述对象的反向引用;如果否,则上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。
[0012]可选地,所述将对象流中的对象分段为多个数据片段包括:
[0013]将所述对象的长度与预先设定的阈值进行比较;
[0014]当所述对象的长度小于所述阈值时,进行全对象分块,存入小数据片段池;
[0015]当所述对象的长度大于等于所述阈值时,进行固定对象分块,将分块后长度等于所述阈值的片段存入定长数据片段池,将分块后长度小于所述阈值的片段存入所述小数据片段池。
[0016]可选地,所述上传所述指纹值对应的数据片段包括:
[0017]并行上传所述指纹值对应的数据片段。
[0018]可选地,还包括:
[0019]接收数据下载的指令,获取与对象对应的所述映射关系对应表;
[0020]根据所述映射关系对应表中的指纹值获取对应的数据片段;
[0021 ]将所述数据片段重组为对象。
[0022]可选地,所述根据所述映射关系对应表中的指纹值获取对应的数据片段包括:
[0023]采用多线程并发访问的方式,获取每个所述指纹值对应的数据片段。
[0024]可选地,还包括:
[0025]接收数据删除的指令,删除与对象对应的所述映射关系对应表,并解除每个所述数据片段到所述对象的反向引用。
[0026]可选地,所述删除与对象对应的所述映射关系对应表包括:
[0027]在所述映射关系对应表所在目录中建立带有时间戳的标记文件,在读取所述映射关系对应表时返回失败,并通过发送异步请求解除所述数据片段到所述对象的反向引用。
[0028]本发明还提供了一种对象存储数据传输装置,包括:
[0029]接收模块,用于接收数据上传的指令,将对象流中的对象分段为多个数据片段;
[0030]计算模块,用于计算每个所述数据片段的指纹值;
[0031 ]生成模块,用于按照所述指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;
[0032]比较模块,用于调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值;
[0033]建立模块,用于当所述指纹值数据库中存在所述指纹值时,建立所述指纹值对应的数据片段到所述对象的反向引用;当所述指纹值数据库中不存在所述指纹值时,上传所述指纹值对应的数据片段,并将所述指纹值更新至所述指纹值数据库。
[0034]可选地,还包括:
[0035]下载模块,用于接收数据下载的指令,获取与对象对应的所述映射关系对应表;根据所述映射关系对应表中的指纹值获取对应的数据片段;将所述数据片段重组为对象。
[0036]可选地,还包括:
[0037]删除模块,用于接收数据删除的指令,删除与对象对应的所述映射关系对应表,并解除每个所述数据片段到所述对象的反向引用。
[0038]本发明所提供的对象存储数据传输方法及装置,接收数据上传的指令,将对象流中的对象分段为多个数据片段;计算每个数据片段的指纹值;按照指纹值生成反映指纹值与对应的存储位置的映射关系对应表;调用指纹值数据库,分别将每个指纹值与指纹值数据库中已存在的指纹值进行比较;当指纹值数据库中存在指纹值时,建立指纹值对应的数据片段到对象的反向引用;当不存在该指纹值时,上传指纹值对应的数据片段,并将指纹值更新至指纹值数据库。本发明充分利用基于内容寻址的优良特性,将对象进行分段,并计算指纹值,根据指纹存在性选择上传,这种面向数据重删的对象传输协议,不仅提高了系统整体存取吞吐量,而且有效提高了对象存储系统的存储设备和网络带宽的利用率,提高了数据传输效率。
【附图说明】
[0039]为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本发明所提供的对象存储数据传输方法的一种【具体实施方式】的流程图;
[0041]图2为本发明所提供的对象存储数据传输方法的另一种【具体实施方式】中数据分段的流程图;
[0042]图3为本发明实施例所提供的采用固定长度分块的方法对数据上传的流程图;
[0043]图4为本发明实施例中面向数据重删的对象分段上传的时序图;
[0044]图5为本发明实施例中面向数据重删的对象下载的时序图;
[0045]图6为本发明实施例中面向数据重删的对象删除的时序图;
[0046]图7为本发明实施例提供的对象存储数据传输装置的结构框图。
【具体实施方式】
[0047]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048]本发明所提供的对象存储数据传输方法的一种【具体实施方式】的流程图如图1所示,该方法包括:
[0049]步骤SlOl:接收数据上传的指令,将对象流中的对象分段为多个数据片段;
[0050]步骤S102:计算每个所述数据片段的指纹值;
[0051]具体地,该指纹值可以为哈希值。
[0052]步骤S103:按照所述指纹值生成反映所述指纹值与对应的存储位置的映射关系对应表;
[0053]具体地,可以在应用层存储基本单元与底层数据存储的基本单元之间引入一个映射关系,这个关系可用一个manifest来组织,反映了一个应用层对象到N个底层数据片段的映射关系。
[0054]进一步地,本实施例中采用JSON格式存储这一关系,JSON格式是一种轻量级的数据交换格式,表达精简,目前已经广泛应用于各类互联网应用中。当然也可以为其他格式,这均不影响本发明的实现。
[0055]步骤S104:调用指纹值数据库,判断所述指纹值数据库中是否存在所述指纹值;
[0056]对于已经
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1