CN117176713B - 基于对象存储系统的数据传输方法及系统 - Google Patents
基于对象存储系统的数据传输方法及系统 Download PDFInfo
- Publication number
- CN117176713B CN117176713B CN202310691341.7A CN202310691341A CN117176713B CN 117176713 B CN117176713 B CN 117176713B CN 202310691341 A CN202310691341 A CN 202310691341A CN 117176713 B CN117176713 B CN 117176713B
- Authority
- CN
- China
- Prior art keywords
- data
- uploaded
- list
- server
- data block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000005540 biological transmission Effects 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 2
- 230000006835 compression Effects 0.000 abstract description 6
- 238000007906 compression Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及存储管理技术领域,公开了一种基于对象存储系统的数据传输方法,包括:在客户端向服务端上传对象之前,向服务端发送数据请求指令;接收服务端基于数据请求指令返回的数据,若数据为空数据集,则向服务端上传对象的完整数据集;若数据为非空数据集,则接收服务端返回的对象旧版本数据分布摘要,并根据数据分布摘要在客户端对待上传对象进行扫描匹配,再根据匹配结果构建待上传对象的数据块列表;最后根据数据块列表将相应的数据块发送至服务端。本发明实施例中的基于对象存储系统的数据传输方法通过差分压缩的方式节省网络带宽,从而提高写入性能。
Description
技术领域
本发明涉及存储管理技术领域,具体涉及一种基于对象存储系统的数据传输方法及系统。
背景技术
目前,数据存储方式主要包括块(block)、文件(file)和对象(object)三种,这三种方式对应三种不同的存储系统。块存储是指将数据分成固定大小的块(通常是几KB或几MB),并将每个块存储在一个或多个存储设备上。块存储通常用于高性能、低延迟的应用场景,如数据库和虚拟化存储。文件存储是指将数据组织成一个个文件,文件通常包含一个或多个数据块,文件和目录形成一个树形结构。文件存储常用于桌面和服务器应用程序。对象存储是指将数据组织成独立的对象,并将对象存储在分布式存储设备上。对象存储常用于云存储和备份。
相比于传统的文件系统或块存储系统,对象存储系统将数据作为对象进行存储和管理,每个对象都有一个唯一的标识符,也称为键(key),而不是按照文件夹或目录来存储。对象存储适用于存储海量非结构化数据,例如图像、音频、视频、日志和文档等。
支持多版本的对象存储系统是指该系统能够存储同一对象的多个版本,当对象被更新时,新版本会被存储,旧版本会被保留,用户可以随时访问以前的版本。这种功能对于需要追踪数据更改历史记录的应用程序非常有用,例如文档管理系统、协作工具和版本控制工具。
对于支持多版本的对象存储系统,对每次只作小部分修改的对象,传输整个对象的内容会造成网络带宽不必要的浪费。因此,设计一种能够节省网络带宽以提高写入性能的方案成为本领域技术人员亟待解决的技术问题。
发明内容
针对所述缺陷,本发明实施例公开了一种基于对象存储系统的数据传输方法,其能够提高多版本对象存储系统用户的写入性能。
本发明实施例第一方面公开了基于对象存储系统的数据传输方法,包括:
在客户端向服务端上传对象之前,向所述服务端发送第一数据分布摘要请求指令;
接收所述服务端基于所述数据请求指令返回的数据,若所述数据为空数据集,则向所述服务端上传所述对象的完整数据集,在所述服务端构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行数据存储;
若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表;
根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储。
作为一种可选的实施方式,在本发明实施例第一方面中,所述若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表,包括:
若所述数据为非空数据集,接收从服务端返回的数据块的大小以及三元组数据,并从所述三元组数据中获得相应的起始数据列表;
提取所述起始数据列表中的第一起始数据,并根据所述第一起始数据对待上传对象自起始处进行字节比较扫描以寻找与所述第一起始数据匹配的数据,若两者数据匹配,则计算所述起始数据对应的数据块哈希值并与服务端返回的该起始数据对应的数据块哈希值进行比对;
当两者哈希值相同时,则将相应数据块确定为不需要上传的数据,数据块编号定为相应起始数据所在起始数据列表的编号,然后从所述起始数据列表中提取下一起始数据继续与待上传对象余下的数据进行匹配比较;
当两者哈希值不同时,则继续与待上传对象的未匹配数据进行匹配比较,若匹配到对象末尾仍未匹配上,从所述起始数据列表中提取下一起始数据与待上传对象最后一个不需上传的数据块的结束位置的下一字节继续进行匹配比较,假如此时未确定不需上传的数据块,则从待上传对象起始处重新进行匹配比较;当所述起始数据列表所有的起始数据均已进行匹配比较或待上传对象确认不需上传的数据块已达对象结束位置,匹配完成;
待上传对象不需上传的数据块形成不需上传数据块列表,该列表包括每个不需上传数据块在待上传对象中的字节起始位置、结束位置、该数据块对应起始数据所在起始数据列表的编号;
待上传对象不需上传数据块的余下数据形成需上传数据块列表,该列表包括每个需上传数据块在待上传对象中的字节起始位置与结束位置;
根据不需上传数据块列表与需上传数据块列表,合并形成发送列表,该列表由一个或多个四元组组成,当标记字段为0时,代表待上传对象在该位置区间数据块不需上传,此时内容字段为该数据块对应起始数据所在起始数据列表的编号;当标记字段为1时,代表待上传对象在该位置区间数据块需要上传,此时内容字段为空。
作为一种可选的实施方式,在本发明实施例第一方面中,所述根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储,包括:
客户端向服务端传输所述发送列表,并在发送过程中,对标记字段为1的四元组,读取待上传对象在该位置区间数据,填入内容字段后再发送,并在所述服务端生成所述对象的数据分布摘要并进行数据存储。
作为一种可选的实施方式,在本发明实施例第一方面中,所述在所述服务端生成所述对象的数据分布摘要并进行数据存储,包括:
在所述服务端按照数据块的大小来读取整个对象以得到与所述对象关联的数据块集;
计算所述数据块集中各个数据块的哈希值,并提取各个数据块中预设长度的标识数据;
基于所述数据块的区块号、哈希值以及标识数据来生成三元组列表,并将所述三元组列表存储至数据库中。
作为一种可选的实施方式,在本发明实施例第一方面中,所述提取各个数据块中预设长度的标识数据,包括:
提取各个数据块中起始位置中预设长度的数据作为起始标识数据,所述预设长度与数据块大小相关,对于数MB或更大的块,预设长度可设为数据块大小的1/1024。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述计算所述数据块集中各个数据块的哈希值之后,还包括:
若末尾的数据块中数据不满块,则忽略该数据块的计算。
作为一种可选的实施方式,在本发明实施例第一方面中,在所述客户端与所述服务端均采用MD5或SHA1来进行哈希值的计算。
本发明实施例第二方面公开一种基于对象存储系统的数据传输系统,包括:
请求模块:用于在客户端向服务端上传对象之前,向所述服务端发送数据请求指令;
第一判断模块:用于接收所述服务端基于所述数据请求指令返回的数据,若所述数据为空数据集,则向所述服务端上传所述对象的完整数据集,构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行数据存储;
第二判断模块:若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表;
生成模块:用于根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储。
本发明实施例第三方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的基于对象存储系统的数据传输方法。
本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的基于对象存储系统的数据传输方法。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中的基于对象存储系统的数据传输方法通过差分压缩的方式节省网络带宽,从而提高写入性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的基于对象存储系统的数据传输方法的流程示意图;
图2是本发明实施例公开的数据传输的具体流程示意图;
图3是本发明实施例公开的在服务端进行数据分布摘要计算的流程示意图;
图4是本发明实施例公开的数据分布摘要生成示例;
图5是本发明实施例公开的客户端匹配比较及发送列表生成过程示例;
图6是本发明实施例公开的对象分块对齐更新示例;
图7是本发明实施例公开的对象分块不对齐更新示例;
图8是本发明实施例提供的一种基于对象存储系统的数据传输装置的结构示意图;
图9是本发明实施例提供的一种电子设备的结构示意图。
实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,示例性地,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
对于支持多版本的对象存储系统,对每次只作小部分修改的对象,传输整个对象的内容会造成网络带宽不必要的浪费。基于此,本发明实施例公开了基于对象存储系统的数据传输方法、装置、电子设备及存储介质,其通过在进行数据更新的时候只对后续版本中修改的数据来进行传输。通过上述差分压缩的方式可节省网络带宽,从而提高写入性能。
实施例
请参阅图1,图1是本发明实施例公开的基于对象存储系统的数据传输方法的流程示意图。其中,本发明实施例所描述的方法的执行主体为由软件或/和硬件组成的执行主体,该执行主体可以通过有线或/和无线方式接收相关信息,并可以发送一定的指令。当然,其还可以具有一定的处理功能和存储功能。该执行主体可以控制多个设备,例如远程的物理服务器或云服务器以及相关软件,也可以是对某处安置的设备进行相关操作的本地主机或服务器以及相关软件等。在一些场景中,还可以控制多个存储设备,存储设备可以与设备放置于同一地方或不同地方。如图1和图2所示,该基于对象存储系统的数据传输方法包括以下步骤:
S101:在客户端向服务端上传对象之前,向所述服务端发送数据请求指令以获取在服务端与相应对象关联的第一数据分布摘要;
具体的,在进行实施的时候,用户还可以在客户端设置是否禁用差分传输;因为存在多种不同的情况,比如服务端不支持差分传输;或者待上传对象均为全新对象;还有当对象数据较小时,也可以不启动差分传输,直接完整传输时间更短;最后一种情况与数据本身特点相关,即新旧版本对象两者之间的内容重复度低,差分传输获益不大。
S102:接收所述服务端基于所述数据请求指令返回的对象数据,若所述对象数据为空数据集,则向所述服务端上传所述对象的完整数据集,构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行数据存储;
S1031:若所述对象数据为非空数据集,接收从服务端返回的数据块的大小以及三元组数据,并从所述三元组数据中获得相应的起始数据列表;
S1032:提取所述起始数据列表中的第一起始数据,并根据所述第一起始数据对待上传对象自起始处进行字节比较扫描以寻找与所述第一起始数据匹配的数据,若两者数据匹配,则计算所述起始数据对应的数据块哈希值并与服务端返回的该起始数据对应的数据块哈希值进行比对;
S1033:当两者哈希值相同时,则将相应数据块确定为不需要上传的数据,数据块编号定为相应起始数据所在起始数据列表的编号,然后从所述起始数据列表中提取下一起始数据继续与待上传对象余下的数据进行匹配比较;这里的从待上传对象余下的数据进行匹配比较指的是该数据块的下一块数据来进行匹配比对;
S1034:当两者哈希值不同时,则继续与待上传对象的未匹配数据进行匹配比较,若匹配到对象末尾仍未匹配上,从所述起始数据列表中提取下一起始数据与待上传对象最后一个不需上传的数据块的结束位置的下一字节继续进行匹配比较,假如此时未确定不需上传的数据块,则从待上传对象起始处重新进行匹配比较;当所述起始数据列表所有的起始数据均已进行匹配比较或待上传对象确认不需上传的数据块已达对象结束位置,匹配完成;这里的继续与待上传对象的未匹配数据进行匹配比较指的是从待上传对象右移一个字节继续与当前起始数据进行匹配比较而不是跳过这块哈希值不同的块后继续对余下数据作比较;
S1035:待上传对象不需上传的数据块形成不需上传数据块列表,该列表包括每个不需上传数据块在待上传对象中的字节起始位置、结束位置、该数据块对应起始数据所在起始数据列表的编号;待上传对象不需上传数据块的余下数据形成需上传数据块列表,该列表包括每个需上传数据块在待上传对象中的字节起始位置与结束位置;
在客户端,从服务端返回的块大小及三元组列表取出起始数据,扫描待上传对象寻找与起始数据匹配的数据块并计算其hash,与从服务端返回的hash比较,相同hash的数据块即为不需要上传的数据(图5)。由于本摘要生成方法是先以二进制数据匹配再以hash判定数据块异同,所以无论对象以分块对齐更新(图6)还是非对齐更新(图7),不影响更新位置后剩余部分的匹配过程。
在客户端,若差分传输未启用,上传对象完整数据,然后完成该流程;
向服务端获取该对象的数据分布摘要、块大小、hash算法等差分传输信息;
若服务端返回空集,上传对象完整数据,然后完成该流程;
若服务端返回非空集,根据数据分布摘要算法确定所需上传的数据块;
S104:根据不需上传数据块列表与需上传数据块列表,合并形成发送列表,该列表由一个或多个四元组(标记、内容、起始位置、结束位置)组成,当“标记”字段为0时,代表待上传对象在该位置区间数据块不需上传,此时“内容”字段为该数据块对应起始数据所在起始数据列表的编号。当“标记”字段为1时,代表待上传对象在该位置区间数据块需要上传,此时“内容”字段为空;客户端向服务端传输所述发送列表,并在发送过程中,对“标记”字段为1的四元组,读取待上传对象在该位置区间数据,填入“内容”字段后再发送,并在所述服务端生成所述对象的数据分布摘要并进行数据存储。
本发明实施例的核心思想是在多版本对象存储系统客户端使用差分传输发送变动的数据,以减少数据传输量。在客户端向服务端上传对象前,可先向服务端获取对象上一版本的数据分布摘要;若服务端返回空集,代表该对象是新建对象或者没有开启版本控制,客户端上传对象的完整数据;若服务器端返回非空集合,客户端完整读取待上传对象并与服务端返回的数据分布摘要作比较,构建需上传的发送列表,最后根据列表发送数据块。服务端接收完客户端发送的所有数据块后,生成当前版本对象的数据分布摘要并存入数据库,以备下次快速响应客户端的数据分布摘要请求。
更为优选的,图3是本发明实施例公开的在服务端进行数据分布摘要计算的流程示意图,如图3所示,所述在所述服务端生成所述对象的数据分布摘要并进行数据存储,包括:
S1041:在所述服务端按照数据块的大小来读取整个对象以得到与所述对象关联的数据块集;
S1042:计算所述数据块集中各个数据块的哈希值,并提取各个数据块中预设长度的标识数据;
S1043:基于所述数据块的区块号、哈希值以及标识数据来生成三元组列表,并将所述三元组列表存储至数据库中。这里的标识数据与起始数据相同。
具体的,在服务端,按固定块大小(例如,10MB,视对象大小而定)读取整个对象,计算每块的hash(例如,MD5)并提取每块起始的一段十六进制数据(例如,10KB)。把三元组(块号、hash、起始数据)列表存入数据库(图4)。对于对象末尾不满块的情形,忽略该块的计算。发给客户端,让客户端与待发送对象做匹配比较,决定起始数据所属块是否需要发送,其中块号的作用是匹配过程中,知道当前所匹配的位置。
更为优选的,所述提取各个数据块中预设长度的标识数据,包括:
提取各个数据块中起始位置的预设长度的数据作为起始标识数据,所述预设长度与数据块大小相关,对于数MB或更大的块,预设长度可设为数据块大小的1/1024。比如当数据块的大小为10MB时,可以选择10KB的数据作为起始数据进行比对。
在服务端:步骤1:接收到客户端请求,若请求为上传对象数据,转步骤4;若请求为获取指定对象的差分传输信息,转下一步;步骤2:若该对象不存在或未开启差分传输,向客户端返回空集,转步骤4;步骤3:读取数据库,向客户端返回对象上一版本差分传输信息;步骤4:接收客户端发送的数据块;步骤5:生成对象最新版的数据分布摘要并存入数据库;旧版本的数据分布摘要可以删除,因为最新版对象与下一次的上传对象通常具有最大的差分压缩潜力;步骤6:完成。
更为优选的,在所述计算所述数据块集中各个数据块的哈希值之后,还包括:
若末尾的数据块中数据不满块,则忽略该数据块的计算。这里忽略该块的计算,是因为对不满块的处理会增加系统设计复杂度,而忽略该数据块的计算至多会导致客户端上传并覆盖服务端已保存的相同数据,此举不影响数据正确性。
更为优选的,在所述客户端与所述服务端均采用MD5算来来进行哈希值的计算。MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
更为优选的,所述向所述服务端发送数据请求指令以获取在服务端与相应对象关联的第一数据分布摘要,包括:
向所述服务端发送数据请求指令以获取在服务端与相应对象关联的第一数据分布摘要、数据块大小以及哈希算法。
对于一个对象不同版本变动较少的情形,本发明创造可减少新版本对象数据传输量,节省带宽开销;对于较大对象,可显著减少上传时间,提升用户体验。本发明的代价是客户端发送数据前有所延迟(与服务端有一次交互、读取对象以及计算需发送的差分数据);另外,服务端在对象上传后有生成数据分布摘要并存入数据库的开销;但因为存在内存缓存,客户端与服务端实际的开销会较小。
本发明实施例中的基于对象存储系统的数据传输方法通过在进行数据更新的时候只对后续版本中修改的数据来进行存储,这样能够显著减少存储开销;并且通过差分压缩的方式节省网络带宽,从而提高写入性能。
实施例
请参阅图8,图8是本发明实施例公开的基于对象存储系统的数据传输装置的结构示意图。如图8所示,该基于对象存储系统的数据传输装置可以包括:
请求模块21:用于在客户端向服务端上传对象之前,向所述服务端发送数据请求指令对象;
第一判断模块22:用于接收所述服务端基于所述数据请求指令返回的数据,若所述数据为空数据集,则向所述服务端上传所述对象的完整数据集,构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行数据存储;
第二判断模块23:提取所述起始数据列表中的第一起始数据,并根据所述第一起始数据对待上传对象自起始处进行字节比较扫描以寻找与所述第一起始数据匹配的数据,若两者数据匹配,则计算所述起始数据对应的数据块哈希值并与服务端返回的该起始数据对应的数据块哈希值进行比对;当两者哈希值相同时,则将相应数据块确定为不需要上传的数据,数据块编号定为相应起始数据所在起始数据列表的编号,然后从所述起始数据列表中提取下一起始数据继续与待上传对象余下的数据进行匹配比较;当两者哈希值不同时,则继续与待上传对象的未匹配数据进行匹配比较,若匹配到对象末尾仍未匹配上,从所述起始数据列表中提取下一起始数据与待上传对象最后一个不需上传的数据块的结束位置的下一字节继续进行匹配比较,假如此时未确定不需上传的数据块,则从待上传对象起始处重新进行匹配比较;当所述起始数据列表所有的起始数据均已进行匹配比较或待上传对象确认不需上传的数据块已达对象结束位置,匹配完成;待上传对象不需上传的数据块形成不需上传数据块列表,该列表包括每个不需上传数据块在待上传对象中的字节起始位置、结束位置、该数据块对应起始数据所在起始数据列表的编号;待上传对象不需上传数据块的余下数据形成需上传数据块列表,该列表包括每个需上传数据块在待上传对象中的字节起始位置与结束位置;根据不需上传数据块列表与需上传数据块列表,合并形成发送列表,该列表由一个或多个四元组(标记、内容、起始位置、结束位置)组成,当“标记”字段为0时,代表待上传对象在该位置区间数据块不需上传,此时“内容”字段为该数据块对应起始数据所在起始数据列表的编号。当“标记”字段为1时,代表待上传对象在该位置区间数据块需要上传,此时“内容”字段为空;
生成模块24:客户端向服务端传输所述发送列表,并在发送过程中,对“标记”字段为1的四元组,读取待上传对象在该位置区间数据,填入“内容”字段后再发送,并在所述服务端生成所述对象的数据分布摘要并进行数据存储。
本发明实施例中的基于对象存储系统的数据传输方法通过在进行数据更新的时候只对后续版本中修改的数据来进行存储,这样能够显著减少存储开销;并且通过差分压缩的方式节省网络带宽,从而提高写入性能。
实施例
请参阅图9,图9是本发明实施例公开的一种电子设备的结构示意图。电子设备可以是计算机以及服务器等,当然,在一定情况下,还可以是手机、平板电脑以及监控终端等智能设备,以及具有处理功能的图像采集装置。如图9所示,该电子设备可以包括:
存储有可执行程序代码的存储器510;
与存储器510耦合的处理器520;
其中,处理器520调用存储器510中存储的可执行程序代码,执行实施例一中的基于对象存储系统的数据传输方法中的部分或全部步骤。
本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行实施例一中的基于对象存储系统的数据传输方法中的部分或全部步骤。
本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的基于对象存储系统的数据传输方法中的部分或全部步骤。
本发明实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的基于对象存储系统的数据传输方法中的部分或全部步骤。
在本发明的各种实施例中,应理解,所述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例所述方法的部分或全部步骤。
在本发明所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
本领域普通技术人员可以理解所述实施例的各种方法中的部分或全部步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本发明实施例公开的基于对象存储系统的数据传输方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于对象存储系统的数据传输方法,其特征在于,包括:
在客户端向服务端上传对象之前,向所述服务端发送第一数据分布摘要请求指令;
接收所述服务端基于第一数据分布摘要请求指令返回的数据,若所述数据为空数据集,则向所述服务端上传所述对象的完整数据集,在所述服务端构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行存储;
若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表;所述若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表,包括:
若所述数据为非空数据集,接收从服务端返回的数据块的大小以及三元组数据,并从所述三元组数据中获得相应的起始数据列表;
提取所述起始数据列表中的第一起始数据,并根据所述第一起始数据对待上传对象自起始处进行字节比较扫描以寻找与所述第一起始数据匹配的数据,若两者数据匹配,则计算所述起始数据对应的数据块哈希值并与服务端返回的该起始数据对应的数据块哈希值进行比对;
当两者哈希值相同时,则将相应数据块确定为不需要上传的数据,数据块编号定为相应起始数据所在起始数据列表的编号,然后从所述起始数据列表中提取下一起始数据继续与待上传对象余下的数据进行匹配比较;
当两者哈希值不同时,则继续与待上传对象的未匹配数据进行匹配比较,若匹配到对象末尾仍未匹配上,从所述起始数据列表中提取下一起始数据与待上传对象最后一个不需上传的数据块的结束位置的下一字节继续进行匹配比较,假如此时未确定不需上传的数据块,则从待上传对象起始处重新进行匹配比较;当所述起始数据列表所有的起始数据均已进行匹配比较或待上传对象确认不需上传的数据块已达对象结束位置,匹配完成;
待上传对象不需上传的数据块形成不需上传数据块列表,该列表包括每个不需上传数据块在待上传对象中的字节起始位置、结束位置、该数据块对应起始数据所在起始数据列表的编号;
待上传对象不需上传数据块的余下数据形成需上传数据块列表,该列表包括每个需上传数据块在待上传对象中的字节起始位置与结束位置;
根据不需上传数据块列表与需上传数据块列表,合并形成发送列表,该列表由一个或多个四元组组成,当标记字段为0时,代表待上传对象在该位置区间数据块不需上传,此时内容字段为该数据块对应起始数据所在起始数据列表的编号;当标记字段为1时,代表待上传对象在该位置区间数据块需要上传,此时内容字段为空;
根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储。
2.如权利要求1所述的基于对象存储系统的数据传输方法,其特征在于,所述根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储,包括:
客户端向服务端传输所述发送列表,并在发送过程中,对标记字段为1的四元组,读取待上传对象在该位置区间数据,填入内容字段后再发送,并在所述服务端生成所述对象的数据分布摘要并进行数据存储。
3.如权利要求2所述的基于对象存储系统的数据传输方法,其特征在于,在所述服务端生成所述对象的数据分布摘要并进行数据存储,包括:
在所述服务端按照数据块的大小来读取整个对象以得到与所述对象关联的数据块集;
计算所述数据块集中各个数据块的哈希值,并提取各个数据块中预设长度的标识数据;
基于所述数据块的区块号、哈希值以及标识数据来生成三元组列表,并将所述三元组列表存储至数据库中。
4.如权利要求3所述的基于对象存储系统的数据传输方法,其特征在于,所述提取各个数据块中预设长度的标识数据,包括:
提取各个数据块中起始位置中预设长度的数据作为起始标识数据,所述预设长度与数据块大小相关,对于数MB或更大的块,预设长度可设为数据块大小的1/1024。
5.如权利要求4所述的基于对象存储系统的数据传输方法,其特征在于,在所述计算所述数据块集中各个数据块的哈希值之后,还包括:
若末尾的数据块中数据不满块,则忽略该数据块的计算。
6.如权利要求1所述的基于对象存储系统的数据传输方法,其特征在于,在所述客户端与所述服务端采用MD5或SHA1进行哈希值的计算。
7.一种基于对象存储系统的数据传输系统,其特征在于,包括:
请求模块:用于在客户端向服务端上传对象之前,向所述服务端请求第一数据分布摘要指令;
第一判断模块:用于接收所述服务端基于第一数据分布摘要指令返回的数据,若所述数据为空数据集,则向所述服务端上传所述对象的完整数据集,服务端构建与所述对象关联的第二数据分布摘要,并对所述第二数据分布摘要进行存储;
第二判断模块:若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表;所述若所述数据为非空数据集,则接收所述服务端反馈的第一数据分布摘要,并在客户端读取待上传更新对象以构建第三数据分布摘要,并将所述第三数据分布摘要与所述第一数据分布摘要进行比较以构建待上传更新对象的数据块列表,包括:
若所述数据为非空数据集,接收从服务端返回的数据块的大小以及三元组数据,并从所述三元组数据中获得相应的起始数据列表;
提取所述起始数据列表中的第一起始数据,并根据所述第一起始数据对待上传对象自起始处进行字节比较扫描以寻找与所述第一起始数据匹配的数据,若两者数据匹配,则计算所述起始数据对应的数据块哈希值并与服务端返回的该起始数据对应的数据块哈希值进行比对;
当两者哈希值相同时,则将相应数据块确定为不需要上传的数据,数据块编号定为相应起始数据所在起始数据列表的编号,然后从所述起始数据列表中提取下一起始数据继续与待上传对象余下的数据进行匹配比较;
当两者哈希值不同时,则继续与待上传对象的未匹配数据进行匹配比较,若匹配到对象末尾仍未匹配上,从所述起始数据列表中提取下一起始数据与待上传对象最后一个不需上传的数据块的结束位置的下一字节继续进行匹配比较,假如此时未确定不需上传的数据块,则从待上传对象起始处重新进行匹配比较;当所述起始数据列表所有的起始数据均已进行匹配比较或待上传对象确认不需上传的数据块已达对象结束位置,匹配完成;
待上传对象不需上传的数据块形成不需上传数据块列表,该列表包括每个不需上传数据块在待上传对象中的字节起始位置、结束位置、该数据块对应起始数据所在起始数据列表的编号;
待上传对象不需上传数据块的余下数据形成需上传数据块列表,该列表包括每个需上传数据块在待上传对象中的字节起始位置与结束位置;
根据不需上传数据块列表与需上传数据块列表,合并形成发送列表,该列表由一个或多个四元组组成,当标记字段为0时,代表待上传对象在该位置区间数据块不需上传,此时内容字段为该数据块对应起始数据所在起始数据列表的编号;当标记字段为1时,代表待上传对象在该位置区间数据块需要上传,此时内容字段为空;
生成模块:用于根据所述数据块列表将相应的数据块发送至服务端,并在所述服务端生成所述更新对象的数据分布摘要并进行数据存储。
8.一种电子设备,其特征在于,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行权利要求1至6任一项所述的基于对象存储系统的数据传输方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,其中,所述计算机程序使得计算机执行权利要求1至6任一项所述的基于对象存储系统的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310691341.7A CN117176713B (zh) | 2023-06-12 | 2023-06-12 | 基于对象存储系统的数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310691341.7A CN117176713B (zh) | 2023-06-12 | 2023-06-12 | 基于对象存储系统的数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117176713A CN117176713A (zh) | 2023-12-05 |
CN117176713B true CN117176713B (zh) | 2024-03-19 |
Family
ID=88938168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310691341.7A Active CN117176713B (zh) | 2023-06-12 | 2023-06-12 | 基于对象存储系统的数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176713B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139300A (zh) * | 2013-02-05 | 2013-06-05 | 杭州电子科技大学 | 一种基于重复数据删除的虚拟机镜像管理的优化方法 |
CN105653209A (zh) * | 2015-12-31 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种对象存储数据传输方法及装置 |
CN113542422A (zh) * | 2021-07-19 | 2021-10-22 | 星辰天合(北京)数据科技有限公司 | 数据存储方法、装置、存储介质及电子装置 |
CN114461599A (zh) * | 2022-01-19 | 2022-05-10 | 北京星辰天合科技股份有限公司 | 分段数据存储方法、装置、存储介质及电子装置 |
CN115221136A (zh) * | 2021-04-15 | 2022-10-21 | 顺丰科技有限公司 | 日志防篡改校验系统、方法、装置和计算机设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305069B2 (en) * | 2010-02-09 | 2016-04-05 | Google Inc. | Method and system for uploading data into a distributed storage system |
US9753647B2 (en) * | 2015-09-09 | 2017-09-05 | International Business Machines Corporation | Deduplicating chunk digests received for chunks in objects provided by clients to store |
-
2023
- 2023-06-12 CN CN202310691341.7A patent/CN117176713B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139300A (zh) * | 2013-02-05 | 2013-06-05 | 杭州电子科技大学 | 一种基于重复数据删除的虚拟机镜像管理的优化方法 |
CN105653209A (zh) * | 2015-12-31 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种对象存储数据传输方法及装置 |
CN115221136A (zh) * | 2021-04-15 | 2022-10-21 | 顺丰科技有限公司 | 日志防篡改校验系统、方法、装置和计算机设备 |
CN113542422A (zh) * | 2021-07-19 | 2021-10-22 | 星辰天合(北京)数据科技有限公司 | 数据存储方法、装置、存储介质及电子装置 |
CN114461599A (zh) * | 2022-01-19 | 2022-05-10 | 北京星辰天合科技股份有限公司 | 分段数据存储方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117176713A (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9819740B2 (en) | Content item synchronization by block | |
US8903838B2 (en) | System and method for preventing duplicate file uploads in a synchronized content management system | |
CN101256584B (zh) | 文档管理服务器、系统和方法以及该系统的客户机和节点 | |
CN101933013A (zh) | 多客户端搜索方法和系统 | |
JP5343793B2 (ja) | 情報生成装置、情報生成プログラム、情報生成方法、ノード装置、ノードプログラム及び検索方法 | |
CN110046062B (zh) | 分布式数据处理方法及系统 | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
WO2016122526A1 (en) | Regenerated container file storing | |
US11728976B1 (en) | Systems and methods for efficiently serving blockchain requests using an optimized cache | |
CN109766318B (zh) | 文件读取方法及装置 | |
KR20100067976A (ko) | 분산 저장된 컨텐츠 파일의 동기화 방법 | |
US20140317359A1 (en) | Clustered file system caching | |
CN112866406B (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
CN111858760A (zh) | 一种异构数据库的数据处理方法及装置 | |
US11128622B2 (en) | Method for processing data request and system therefor, access device, and storage device | |
CN118210770A (zh) | 增量数据同步方法、装置、计算机设备和存储介质 | |
CN117176713B (zh) | 基于对象存储系统的数据传输方法及系统 | |
CN112286457B (zh) | 对象重删方法、装置、电子设备及机器可读存储介质 | |
CN114422538B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
EP3072061A1 (en) | Removable storage data hash | |
CN117193671B (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
JP6043687B2 (ja) | サーバ/クライアントシステム | |
CN113760860B (zh) | 一种数据读取方法和装置 | |
CN109325057B (zh) | 中间件管理方法、装置、计算机设备以及存储介质 | |
CN118503325A (zh) | 数据处理方法、装置、计算机设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |