CN104753626A - 一种数据压缩方法、设备及*** - Google Patents
一种数据压缩方法、设备及*** Download PDFInfo
- Publication number
- CN104753626A CN104753626A CN201310728185.3A CN201310728185A CN104753626A CN 104753626 A CN104753626 A CN 104753626A CN 201310728185 A CN201310728185 A CN 201310728185A CN 104753626 A CN104753626 A CN 104753626A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- fingerprint
- database
- target
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据压缩方法,所述方法包括:获取目标网络数据;根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;依次将所述至少一个目标数据块与数据库中的数据块进行比较;删除与所述数据库中的数据块相同的目标数据块。本发明实施例还公开了一种设备及***。采用本发明,可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于在不影响吞吐率的情况下提升数据去重率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据压缩方法、设备及***。
背景技术
重复数据删除技术是基于重复则删除的原则,通过一定的算法消除相同文件或者相似文件之间的重复数据。数据块级的重复数据删除是指首先将文件划分成数据块并计算出各个数据块的数据指纹,通过比较数据块的数据指纹判断是否有相同的数据块存储在数据库中,若检测到目标数据块的数据指纹与数据库中的数据指纹相同,则删除该目标数据块。
CDC(Content-Defined Chunking,基于内容的数据分块)算法是一种变长分块算法,即通过数据指纹(如Rabin指纹)将文件分割成长度大小不等的分块策略。CDC算法使用一个固定大小(如48字节)的滑动窗口对文件数据计算数据指纹,如果数据指纹满足某个条件,如所述数据指纹等于预定义值,则把窗口位置作为块的边界。但CDC算法划分数据块的粒度绝大部分取决于数据块的设定,若设置的数据块较小,则粒度较细,重复数据查找较为精确,但数据块索引以及数据块的对比等开销较大;若设置的数据块较大,则粒度较粗,数据去重效率较低。
发明内容
本发明所要解决的技术问题在于,提供一种数据压缩方法、设备及***,可在不影响吞吐率的情况下提升数据去重率。
为了解决上述技术问题,本发明第一方面提供了一种数据压缩方法,所述方法包括:
获取目标网络数据;
根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;
根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;
依次将所述至少一个目标数据块与数据库中的数据块进行比较;
删除与所述数据库中的数据块相同的目标数据块。
在第一种可能的实现方式中,将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述依次将所述至少一个目标数据块与数据库中的数据块进行比较包括;
分别计算所述至少一个目标数据块的数据指纹;
通过依次比较所述计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与所述数据库中的数据块。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中包括;
将与所述指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中;
将所述存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述分别计算所述至少一个目标数据块的数据指纹之后,将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述网络数据的编码后数据中;
将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
将所述编码后数据发送给远端广域网优化设备。
结合第一方面或第一方面的第一种至第四种中的任一种可能的实现方式,在第五种可能的实现方式中,所述获取目标网络数据之后,通过所述获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,获取针对所述目标网络数据的重组指令;
根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述获取到的编码后数据中仅存在目标数据块的数据指纹时,在所述数据库中获取所述数据指纹对应的数据块;
将所述获取到的编码后数据中的目标数据块和所述获取到的所述数据库中的数据块组装成所述目标网络数据。
本发明第二方面提供了一种广域网优化设备,所述广域网优化设备包括:
获取单元,用于获取目标网络数据;
设置单元,用于根据所述获取单元获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;
数据分块单元,还用于根据所述设置单元设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;
比较单元,用于依次将所述目标网络数据经过所述数据分块单元进行数据分块获取到的至少一个目标数据块与数据库中的数据块进行比较;
删除单元,用于删除所述比较单元比较得到的与所述数据库中的数据块相同的目标数据块。
在第一种可能的实现方式中,数据块存储单元用于将所述比较单元比较得到的与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述比较单元包括;
计算模块,用于分别计算所述目标数据网络经过所述数据分块单元进行数据分块获取到的至少一个目标数据块的数据指纹;
比较模块,用于通过依次比较所述计算模块计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与所述数据库中的数据块。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据块存储单元包括;
数据块存储模块,用于将与所述指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中;
指纹存储模块,用于将所述数据块存储模块存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,指纹封装单元用于在所述比较单元分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述目标网络数据的编码后数据中;
所述指纹封装单元还用于在所述比较单元分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
发送单元用于将所述编码后数据发送给远端广域网优化设备。
结合第二方面或第二方面的第一种至第四种中的任一种可能的实现方式,在第五种可能的实现方式中,确定单元用于通过所述获取单元获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
结合第二方面的第四种可能的实现方式,在第六种可能的实现方式中,所述获取单元还用于获取针对所述目标网络数据的重组指令;
根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述编码后数据中存在目标数据块的数据指纹时,在所述数据库中获取所述数据指纹对应的数据块;
组装单元用于将所述获取单元获取到的编码后数据中的目标数据块和所述获取单元获取到的所述数据库中的数据块组装成所述目标网络数据。
本发明第三方面提供了一种广域网优化设备,所述广域网优化设备包括:
接收单元,用于接收远端广域网优化设备针对目标网络数据发送的编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述远端广域网优化设备根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的;
获取单元用于所述接收单元接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块;
组装单元用于将所述接收单元接收到的编码后数据中的目标数据块和所述获取单元获取到的所述本地数据库中的数据块组装成所述目标网络数据。
本发明第四方面提供了一种数据压缩***,所述数据压缩***包括本地广域网优化设备和远端广域网优化设备,其中:
所述本地广域网优化设备,用于获取目标网络数据;根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;依次将所述至少一个目标数据块与数据库中的数据块进行比较;删除与所述数据库中的数据块相同的目标数据块;将所述经过数据分块获取到的至少一个目标数据块的数据指纹存储到针对所述目标网络数据的编码后数据中;发送所述编码后数据给所述远端广域网优化设备;
所述远端广域网优化设备,用于接收所述本地广域网优化设备发送的所述编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述本地广域网优化设备根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的;接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块,并将所述编码后数据中的目标数据块和在所述本地数据库中获取到的数据块组装成所述目标网络数据。
实施本发明实施例,具有如下有益效果:广域网优化设备根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,并依次将所述至少一个目标数据块与数据库中的数据块进行比较,删除与数据库中的数据块相同的目标数据块,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于在不影响吞吐率的情况下提升数据去重率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中提供的一种数据压缩方法的流程示意图;
图2是本发明实施例中提供的一种网络数据并行处理的流程示意图;
图3是本发明另一实施例中提供的一种数据压缩方法的流程示意图;
图4是本发明另一实施例中提供的一种数据压缩方法的流程示意图;
图5是本发明另一实施例中提供的一种数据压缩方法的流程示意图;
图6是本发明实施例中提供的一种广域网优化设备的结构示意图;
图7是本发明实施例中图6的比较单元的结构示意图;
图8是本发明实施例中图6的数据块存储单元的结构示意图;
图9是本发明另一实施例中提供的一种广域网优化设备的结构示意图;
图10是本发明另一实施例中提供的一种广域网优化设备的结构示意图;
图11是本发明实施例中提供的一种数据压缩***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的数据压缩方法可以在本地WOC(Wan OptimizationControllers,广域网优化设备)中实现根据网络应用数据流对应的冗余率设置获取到的目标网络数据的数据分块参数,根据设置的数据分块参数将目标网络数据进行数据分块从而获取至少一个目标数据块,并删除与本地数据库中的数据块相同的目标数据块,以便于在不影响吞吐率的情况下提升数据去重率。本发明实施例所提及的本地WOC和远端WOC在广域网的两端成对配置,本地WOC和远端WOC分别位于广域网接口的主干路由器前端。
请参阅图1,图1是本发明实施例中提供的一种数据压缩方法的流程示意图,如图所示本发明实施例的所述方法至少包括:
步骤S101,获取目标网络数据。
广域网优化设备可以获取发送端发送的目标网络数据。
作为一种可选的实施方式,广域网优化设备获取到目标网络数据之后,可以通过获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。具体的,不同的网络应用数据流对应不同的端口信息,例如HTTP(Hyper Text Transfer Protocol,超文本传输协议)应用对应的端口号是80,如图2所示,图2是一种网络数据并行处理的流程示意图,广域网优化设备可以为各类网络应用数据流分别创建对应的线程,所述线程可以以二元向量﹤应用协议名,端口号﹥进行标识,根据获取到的目标网络数据的端口信息,确定目标网络数据所属的网络应用数据流。
步骤S102,根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数。
广域网优化设备可以根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数。
本发明实施例中的一种针对不同应用的网络数据的冗余率的示例图可以如下方的表格所示:
例如,发送端发送的端口号为20的用于在客户端和服务器之间传输数据流的FTP(File Transfer Protocol,文件传输协议)应用对应的网络数据的冗余率为7.5%,广域网优化设备可以根据所述网络数据的冗余率,设置所述网络数据的分块参数。基于CDC算法的数据块用一个滑动窗口进行划分,预先定义两个整数D和r(r<D),将一个固定的滑动窗口在获取到的网络数据上滑动,计算滑动窗口内网络数据的数据指纹,若在位置k,滑动窗口内网络数据的数据指纹值为f,且f%D=r,则将位置k作为数据块的边界,将位置k到上一个数据块结束的位置之间的字节划分为一个数据块;若f%D≠r,则将滑动窗口向下移动一个字节,并计算所述滑动窗口内网络数据的数据指纹f,若f%D=r,则将滑动窗口向下移动一个字节后的位置作为数据块的边界,将该位置到上一个数据块结束的位置之间的字节划分为一个数据块;若f%D≠r,则将滑动窗口再向下移动一个字节,进一步计算数据指纹并进行判断,直到获取到的网络数据被全部数据分块。端口号为20的网络应用数据流的冗余率较小,则设置参数D和r,使得获取到的各个数据块的字节较多,则所述获取到的网络数据进行分块后的数据块的数量较少,划分数据块的粒度较粗,可在不影响数据去重率的情况下,提升吞吐率。而对冗余率较高的网络应用数据流对应的网络数据,广域网优化设备可设置数据分块参数D和r,使得获取到的各个数据块的字节较少,划分数据块的粒度较细,设置的数据块较小,可在不影响数据的吞吐率的情况下,提升数据去重率。
步骤S103,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块。
广域网优化设备可以根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块。
广域网优化设备对不同网络应用数据流对应的网络数据设置不同的参数D和r(r<D),同时计算滑动窗口内网络数据的数据指纹值为f,若f%D=r,则将滑动窗口所在的位置作为数据块的边界,将所述位置到上一个数据块结束的位置之间的字节划分为一个数据块;若f%D≠r,则将滑动窗口向下移动一个字节,并计算所述滑动窗口内网络数据的数据指纹f,并判断f%D是否等于r,重复上述过程,直到获取到的目标网络数据被全部数据分块,从而获取至少一个目标数据块。
广域网优化设备通过一个网络应用数据流对应一个线程,支持不同网络应用数据流对应的网络数据的多线程并行处理,提高了网络重复数据的去重速率。
步骤S104,依次将所述至少一个目标数据块与数据库中的数据块进行比较。
广域网优化设备可以依次将所述至少一个目标数据块与数据库中的数据块进行比较,若目标数据块与数据库中的数据块相同,则执行步骤S105;若目标数据块与数据库中的所有数据块都不相同,则将所述目标数据块存储到数据库中。
作为一种可选的实施方式,广域网优化设备可以分别计算所示至少一个目标数据块的数据指纹,通过依次比较计算得到的至少一个目标数据块的数据指纹与数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与数据库中的数据块。若目标数据块的数据指纹与所述指纹索引表中的数据指纹相同,则所述目标数据块与所述指纹索引表中的数据指纹对应的数据块相同;若目标数据块的数据指纹与所述指纹索引表中的所有数据指纹都不相同,则所述目标数据块与数据库中的所有数据块都不相同。
其中,数据指纹也就是Hash值,即把任意长度的输入数据通过Hash算法变换成固定长度的输出,该输出就是Hash值,这种转换是一种压缩映射,Hash值的占用空间小于输入数据的占用空间,通过以数据指纹的形式代替重复数据,可降低网络传输的负载。
步骤S105,删除与数据库中的数据块相同的目标数据块。
若目标数据块与数据库中的数据块相同,则广域网优化设备可以删除所述目标数据块,广域网优化设备还可以将所述指纹索引表中的所述目标数据块的数据指纹封装到针对所述目标网络数据的编码后数据中。
作为一种可选的实施方式,若目标数据块与数据库中的所有数据块都不相同,则广域网优化设备可以将所述目标数据块及其数据指纹封装到编码后数据中,并将所述目标数据块存储到数据库中,进而将所述目标数据块的数据指纹及其元数据存储到指纹索引表中,其中所述元数据包括所述目标数据块在所述数据库中的地址和长度。
进一步的,广域网优化设备可以将所述经过封装的编码后数据发送给远端广域网优化设备,以使远端广域网优化设备在所述编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块,并将所述本地数据库中获取到的数据块和所述编码后数据中的目标数据块组装成目标网络数据,可在网络数据传输时节省网络传输带宽。
作为一种可选的实施方式,广域网优化设备可以将与数据库中的所有数据块都不相同的目标数据块存储到数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中,如图2所示,广域网优化设备可以将线程1中的网络数据进行数据分块后获取到的与数据库中的所有数据块都不相同的目标数据块存储到线程1中的网络数据所属的网络应用数据流对应的数据库容器1中。
在图1所示的数据压缩方法中,广域网优化设备根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,并依次将所述至少一个目标数据块与数据库中的数据块进行比较,删除与数据库中的数据块相同的目标数据块,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于在不影响吞吐率的情况下提升数据去重率。
请参阅图3,图3是本发明另一实施例中提供的一种数据压缩方法的流程示意图,如图所示,该数据压缩方法可以包括以下步骤:
步骤S301,根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数。
广域网优化设备可以根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数。
如图2所示,根据网络应用数据流访问特征分析,不同应用的网络数据体现不同的数据访问特征,其中基于文本的网络数据访问,数据冗余率较高;基于流媒体的网络数据访问,数据冗余率较低。对冗余率较低的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,使划分数据块的粒度较粗,设置的数据块较大,可在不影响数据去重率的情况下,提升吞吐率;对冗余率较高的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,划分数据块的粒度较细,设置的数据块较小,可在不影响数据的吞吐率的情况下,提升数据去重率。则广域网优化设备可以根据获取到的目标网络数据所属的网络应用数据流对应的冗余率,设置数据分块参数。
步骤S302,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块。
广域网优化器可以根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块。
步骤S303,依次将所述至少一个目标数据块与数据库中的数据块进行比较。
广域网优化设备可以依次将所述至少一个目标数据块与数据库中的数据块进行比较,若目标数据块与数据库中的数据块相同,则执行步骤S304;若目标数据块与数据库中的所有数据块都不相同,则执行步骤S305。
作为一种可选的实施方式,广域网优化设备获取到至少一个目标数据块后,可以分别计算所述至少一个目标数据块的数据指纹,通过依次比较计算得到的至少一个目标数据块的数据指纹与指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与数据库中的数据块。若目标数据块的数据指纹与所述指纹索引表中的数据指纹相同,则所述目标数据块与所述指纹索引表中的数据指纹对应的数据块相同,进一步执行步骤S304;若目标数据块的数据指纹与所述指纹索引表中的所有数据指纹都不相同,则所述目标数据块与数据库中的所有数据块都不相同,进一步执行步骤S305。
步骤S304,删除与数据库中的数据块相同的目标数据块。
若目标数据块与数据库中的数据块相同,则广域网优化设备可以删除所述目标数据块,并将所述指纹索引表中的所述目标数据块的数据指纹封装到编码后数据中。
步骤S305,将与数据库中的所有数据块都不相同的目标数据块存储到数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
广域网优化设备可以在数据库中设置各个网络应用数据流对应的数据库容器,将与数据库中的所有数据块都不相同的目标数据块存储到数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。进一步的,广域网优化设备可以将同一时间段写入所述数据库容器的目标数据块分配相同段标识,将所述分配了相同段标识的目标数据块存储到所述数据库容器的同一段中,以便于广域网优化设备读取所述数据库中的目标数据块进行恢复网络数据时,可以一次性读取数据库中的目标网络数据所属的网络应用数据流对应的数据库容器的同一段中分配了相同段标识的至少一个目标数据块,减少磁盘I/O(input/output,输入/输出)负载,提升吞吐率。
进一步的,广域网优化设备可以将所述目标数据块的数据指纹及其元数据存储到指纹索引表中,所述元数据可以包括所述目标数据块在所述数据库中的地址和长度,并将所述目标数据块及其数据指纹封装到编码后数据中。
步骤S306,将存储到数据库中的目标数据块写入内存。
广域网优化设备可以将存储到数据库中的目标数据块写入内存。具体的,广域网优化设备可以在读取数据库中的数据块时,将所述读取到的数据块写入内存,以便于下一次读取所述数据块时,无需访问磁盘,读取数据库中的所述数据块,可直接在内存中读取所述数据块,降低对磁盘的I/O负载,提升吞吐率。
在图3所示的数据压缩方法中,广域网优化设备根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,并依次将所述至少一个目标数据块与数据库中的数据块进行比较,将与数据库中的所有数据块都不相同的目标数据块存储到所述网络数据所属的网络应用数据流对应的数据库容器中的同一段中,并将存储到数据库中的目标数据块写入内存,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于提升数据去重率,并在恢复数据时提升吞吐率。
请参阅图4,图4是本发明另一实施例中提供的一种数据压缩方法的流程示意图,如图所示,该数据压缩方法可以包括以下步骤:
步骤S401,根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数。
广域网优化设备可以根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数。
如图2所示,根据网络应用数据流访问特征分析,不同应用的网络数据体现不同的数据访问特征,其中基于文本的网络数据访问,数据冗余率较高;基于流媒体的网络数据访问,数据冗余率较低。对冗余率较低的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,使划分数据块的粒度较粗,设置的数据块较大,可在不影响数据去重率的情况下,提升吞吐率;对冗余率较高的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,使划分数据块的粒度较细,设置的数据块较小,可在不影响数据的吞吐率的情况下,提升数据去重率。则广域网优化设备可以根据获取到的目标网络数据所属的网络应用数据流对应的冗余率,设置数据分块参数。
步骤S402,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块。
广域网优化设备可以根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块。
步骤S403,分别计算所述至少一个目标数据块的数据指纹。
广域网优化设备获取到至少一个目标数据块后,可以分别计算所述至少一个目标数据块的数据指纹。
步骤S404,依次将所述至少一个目标数据块的数据指纹与指纹索引表中的数据指纹进行比较。
广域网优化设备分别计算至少一个目标数据块的数据指纹后,可以依次将所述至少一个目标数据块的数据指纹与指纹索引表中的数据指纹进行比较,若目标数据块的数据指纹与指纹索引表中的数据指纹相同,则所述目标数据块与数据库中的数据指纹对应的数据块相同,进一步执行步骤S405;若目标数据块的数据指纹与指纹索引表中的所有数据指纹都不相同,则所述目标数据块与数据库中的所有数据块都不相同,进一步执行步骤S407。
步骤S405,删除与指纹索引表中的数据指纹相同的数据指纹对应的目标数据块。
若目标数据块的数据指纹与指纹索引表中的数据指纹相同,则删除所述目标数据块,即对数据进行去重,使数据库中没有重复的数据块。
步骤S406,将与指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到编码后数据中。
广域网优化设备可以将与指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到编码后数据中。
步骤S407,将与指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到数据库中。
若目标数据块的数据指纹与指纹索引表中的所有数据指纹都不相同,则广域网优化设备可以将所述目标数据块存储到数据库中。
作为一种可选的实施方式,广域网优化设备可以在数据库中设置各个网络应用数据流对应的数据库容器,将所述目标数据块存储到数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
步骤S408,将与指纹索引表中的所有数据指纹都不相同的数据指纹及其元数据存储到指纹索引表中。
广域网优化设备与指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到数据库中后,可以将所述目标数据块的数据指纹及其元数据存储到指纹索引表中,所述元数据可以包括目标数据块在数据库中的地址和长度。
步骤S409,将与指纹索引表中的所有数据指纹都不相同的数据指纹及其对应的目标数据块封装到编码后数据中。
若目标数据块的数据指纹与指纹索引表中的所有数据指纹都不相同,则广域网优化设备可以将目标数据块及其数据指纹封装到编码后数据中。
步骤S410,获取针对所述目标网络数据的重组指令。
广域网优化设备可获取发送端发送的针对所述目标网络数据的重组指令。
步骤S411,根据所述重组指令获取针对所述目标网络数据的编码后数据。
广域网优化设备获取到针对所述目标网络数据的重组指令后,可根据所述重组指令获取针对所述目标网络数据的编码后数据。
步骤S412,若所述编码后数据中仅存在目标数据块的数据指纹,则在数据库中获取所述数据指纹对应的数据块。
广域网优化设备重组所述目标网络数据时,若所述编码后数据中仅存在目标数据块的数据指纹,即不包括所述目标数据块,则广域网优化设备可以根据指纹索引表中的所述数据指纹对应的元数据,在数据库中获取所述数据指纹对应的数据块。
作为一种可选的实施方式,广域网优化设备可以在内存中读取所述数据指纹对应的数据块,若内存中不存在所述数据指纹对应的数据块,则根据指纹索引表中的所述数据指纹对应的元数据,在数据库中一次性读取所述数据指纹对应的数据块及与所述数据块分配了相同段标识的其他数据块,可降低磁盘的I/O负载,提升吞吐率。
步骤S413,将所述编码后数据中的目标数据块和数据库中的数据块组装成目标网络数据。
广域网优化设备可以将编码后数据中的目标数据块和获取到的数据库中的数据块组装成目标网络数据,实现数据的重组。
在图4所示的数据压缩方法中,广域网优化设备根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,并依次将所述至少一个目标数据块的数据指纹与指纹索引表中的数据指纹进行比较,将与指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到编码后数据中,并将与指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到编码后数据中,在本地恢复目标网络数据时,广域网优化设备可根据编码后数据组装所述目标网络数据,实现数据的重组,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于提升数据去重率,并在恢复数据时提升吞吐率。
请参阅图5,图5是本发明另一实施例中提供的一种数据压缩方法的流程示意图,如图所示,该数据压缩方法可以包括以下步骤:
步骤S501,获取发送端发送的目标网络数据。
本地广域网优化设备可以获取发送端发送的目标网络数据。
作为一种可选的实施方式,广域网优化设备获取到目标网络数据之后,可以通过获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
步骤S502,根据目标网络数据所属的网络应用数据流的冗余率,设置数据分块参数。
本地广域网优化设备可以根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数。对冗余率较低的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,使划分数据块的粒度较粗,设置的数据块较大,可在不影响数据去重率的情况下,提升吞吐率;对冗余率较高的网络应用数据流对应的网络数据,广域网优化设备可以设置数据分块参数,使划分数据块的粒度较细,设置的数据块较小,可在不影响数据的吞吐率的情况下,提升数据去重率。
步骤S503,根据数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块。
本地广域网优化设备可以根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块。
步骤S504,删除与数据库中的数据块相同的目标数据块,并将所述目标数据块的数据指纹封装到编码后数据中。
本地广域网优化设备可以依次将所述至少一个目标数据块与数据库中的数据块进行比较,若目标数据块与数据库中的数据块相同,则删除所述目标数据块,并将所述指纹索引表中的所述目标数据块的数据指纹封装到编码后数据中;若目标数据块与数据库中的所有数据块都不相同,则执行步骤S505。
作为一种可选的实施方式,本地广域网优化设备获取到至少一个目标数据块后,可以分别计算所述至少一个目标数据块的数据指纹,通过依次比较计算得到的至少一个目标数据块的数据指纹与指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与数据库中的数据块。若目标数据块的数据指纹与所述指纹索引表中的数据指纹相同,则所述目标数据块与所述数据库中的数据指纹对应的数据块相同,删除所述目标数据块,并将所述指纹索引表中的所述目标数据块的数据指纹封装到编码后数据中;若目标数据块的数据指纹与所述指纹索引表中的所有数据指纹都不相同,则所述目标数据块与数据库中的所有数据块都不相同,进一步执行步骤S505。
步骤S505,将与数据库中的所有数据块都不相同的目标数据块及其数据指纹封装到编码后数据中。
若目标数据块与数据库中的所有数据块都不相同,则本地广域网优化设备可以将所述目标数据块及其数据指纹封装到编码后数据中,本地广域网优化设备也可以将所述目标数据块存储到数据库中,并将所述目标数据块的数据指纹及其元数据存储到指纹索引表中,所述元数据可以包括所述目标数据块在数据库中的地址和长度。
步骤S506,发送编码后数据。
本地广域网优化设备将针对目标网络数据的编码后数据发送给远端广域网优化设备,以使远端广域网优化设备根据所述编码后数据对目标网络数据进行重组。
步骤S507,若编码后数据中仅存在目标数据块的数据指纹,则在本地数据库中获取所述数据指纹对应的数据块。
远端广域网优化设备接收到所述编码后数据后,若编码后数据中仅存在目标数据块的数据指纹,即不包括所述目标数据块,则远端广域网优化设备可以根据指纹索引表中的所述数据指纹对应的元数据,在数据库中获取所述数据指纹对应的数据块。
远端广域网优化设备接收到所述编码后数据后,若编码后数据中存在目标数据块及其数据指纹,远端广域网优化设备可以将所述目标数据块存储到本地数据库中,并将所述目标数据块的数据指纹及其元数据存储到远端广域网优化设备的指纹索引表中,其中所述元数据可以包括目标数据块在本地数据库中的地址和长度。
步骤S508,将接收到的编码后数据中的目标数据块和本地数据库中的数据块组装成目标网络数据。
远端广域网优化设备可以将接收到的编码后数据中的目标数据块和本地数据库中的数据块组装成目标网络数据,实现数据的重组,进一步的将所述组装后的目标网络数据发送给接收端。
在图5所示的数据压缩方法中,广域网优化设备根据获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,并依次将所述至少一个目标数据块与数据库中的数据块进行比较,将与数据库中的所有数据块都不相同的目标数据块及其数据指纹封装到编码后数据中,并将与数据库中的数据块相同的目标数据块对应的数据指纹封装到编码后数据中,进一步将所述编码后数据发送给远端广域网优化设备,远端广域网优化设备可根据编码后数据组装所述目标网络数据,实现数据的重组,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于提升数据去重率,从而在网络数据传输时节省网络传输带宽。
请参阅图6,图6是本发明实施例中提供的一种广域网优化设备的结构示意图,如图所示本发明实施例中的广域网优化设备至少可以包括获取单元601、设置单元602、数据分块单元603、比较单元604以及删除单元605。
获取单元601,用于获取目标网络数据。
设置单元602,用于根据获取单元601获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数。对冗余率较低的网络应用数据流对应的网络数据,设置单元602可以设置数据分块参数,使划分数据块的粒度较粗,设置的数据块较大,可在不影响数据去重率的情况下,提升吞吐率;对冗余率较高的网络应用数据流对应的网络数据,设置单元602可以设置数据分块参数,划分数据块的粒度较细,设置的数据块较小,可在不影响数据的吞吐率的情况下,提升数据去重率。则广域网优化设备可以根据获取到的目标网络数据所属的网络应用数据流对应的冗余率,设置数据分块参数。
数据分块单元603,还用于根据设置单元602设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块。数据分块单元603可以根据设置单元602设置的数据分块参数,基于CDC算法将目标网络数据进行数据分块从而获取至少一个目标数据块。
比较单元604,用于依次将所述目标网络数据经过数据分块单元603进行数据分块获取到的至少一个目标数据块与数据库中的数据块进行比较。
删除单元605,用于删除比较单元604比较得到的与所述数据库中的数据块相同的目标数据块。
作为一种可选的实施方式,所述广域网优化设备还可以包括:
数据块存储单元606,用于将比较单元604比较得到的与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
作为一种可选的实施方式,本发明实施例中的比较单元604可以如图7所示,进一步包括:
计算模块701,用于分别计算所述目标数据网络经过数据分块单元603进行数据分块获取到的至少一个目标数据块的数据指纹。
比较模块702,用于通过依次比较计算模块701计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与所述数据库中的数据块。
作为一种可选的实施方式,本发明实施例中的数据块存储单元606可以如图8所示,进一步包括:
数据块存储模块801,用于将与所述指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中。
指纹存储模块802,用于将数据块存储模块801存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
作为一种可选的实施方式,所述广域网优化设备还可以包括:
指纹封装单元607,用于在比较单元604分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述目标网络数据的编码后数据中。
所述指纹封装单元607,还用于在所述比较单元604分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
发送单元608,用于将所述编码后数据发送给远端广域网优化设备。
作为一种可选的实施方式,所述广域网优化设备还可以包括:
确定单元609,用于通过获取单元601获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
作为一种可选的实施方式,所述获取单元601还用于获取针对所述目标网络数据的重组指令;
根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述获取到的编码后数据中仅存在目标数据块的数据指纹时,在所述数据库中获取所述数据指纹对应的数据块。
作为一种可选的实施方式,所述广域网优化设备还可以包括:
组装单元610,用于将所述获取单元601获取到的编码后数据中的目标数据块和所述获取单元601获取到的所述本地数据库中的数据块组装成所述目标网络数据。
在图6、图7以及图8所示的广域网优化设备中,设置单元602根据获取单元601获取到的目标网络数据所属的网络应用数据流的冗余率,设置目标网络数据的数据分块参数,数据分块单元603根据设置的数据分块参数,将目标网络数据进行数据分块从而获取至少一个目标数据块,比较单元604依次将所述至少一个目标数据块与数据库中的数据块进行比较,删除单元605删除与数据库中的数据块相同的目标数据块,本发明实施例可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于在不影响吞吐率的情况下提升数据去重率。
请参阅图9,图9是本发明另一实施例中提供的一种广域网优化设备的结构示意图,用于执行本发明实施例提供的数据压缩方法。如图9所示,该广域网优化设备包括:至少一个处理器901,例如CPU,至少一个网络接口904或者其他用户接口903,存储器905,至少一个通信总线902。通信总线902用于实现这些组件之间的连接通信。其中,用户接口903可选的可以包括但不限于USB接口以及其他标准接口、有线接口。网络接口904可选的可以包括Wi-Fi接口以及其他无线接口。存储器905可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器905可选的可以包含至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作***9051及应用程序9052。
在一些实施方式中,存储器905存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作***9051,包含各种***程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序9052,包含目标网络数据的数据分块参数的设置程序、目标数据块的划分程序、目标数据块与数据库中的数据块的比较程序以及目标数据块的删除程序等各种应用程序,用于实现各种应用业务。
具体地,处理器901用于调用存储器905中存储的程序,执行以下操作:
通过网络接口904获取目标网络数据;
根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;
根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;
依次将所述至少一个目标数据块与数据库中的数据块进行比较;
删除与所述数据库中的数据块相同的目标数据块。
在一个实施例中,处理器901将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
在一个实施例中,处理器901依次将所述至少一个目标数据块与数据库中的数据块进行比较,具体为:
通过处理器901分别计算所述至少一个目标数据块的数据指纹;
通过依次比较所述计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,处理器901依次比较所述至少一个目标数据块与所述数据库中的数据块。
在一个实施例中,处理器901将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中,具体为:
通过处理器901将与所述指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中;
通过处理器901将所述存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
在一个实施例中,处理器901分别计算所述至少一个目标数据块的数据指纹之后,将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述目标网络数据的编码后数据中,并将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
通过网络接口904将所述编码后数据发送给远端广域网优化设备。
在一个实施例中,通过网络接口904获取目标网络数据之后,通过所述获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
在一个实施例中,通过网络接口904获取针对所述目标网络数据的重组指令;
处理器901根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述获取到的编码后数据中仅存在目标数据块的数据指纹时,通过处理器901在所述数据库中获取所述数据指纹对应的数据块。
相应地,处理器901将所述获取到的编码后数据中的目标数据块和所述获取到的所述数据库中的数据块组装成所述目标网络数据。
图9所示的广域网优化设备,可根据网络应用数据流对应的冗余率,设置划分数据块的粒度,以便于在不影响吞吐率的情况下提升数据去重率。
请参阅图10,图10是本发明另一实施例中提供的一种广域网优化设备的结构示意图,如图所示本发明实施例中的广域网优化设备至少可以包括接收单元1001。
接收单元1001,用于接收远端广域网优化设备针对目标网络数据发送的编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述远端广域网优化设备根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的。
获取单元1002,用于接收单元1001接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块。
组装单元1003,用于将所述接收单元1001接收到的编码后数据中的目标数据块和获取单元1002获取到的所述本地数据库中的数据块组装成所述目标网络数据。
请参阅图11,图11是本发明实施例中提供的一种数据压缩***的结构示意图,如图所示本发明实施例中的数据压缩***至少可以包括本地广域网优化设备1101和远端广域网优化设备1102,本地广域网优化设备1101可以结合图6、图7、图8以及图9所示的广域网优化设备,远端广域网优化设备1102可以结合图10所示的广域网优化设备,其中:
本地广域网优化设备1101,用于获取目标网络数据;根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;依次将所述至少一个目标数据块与数据库中的数据块进行比较;删除与所述数据库中的数据块相同的目标数据块;将所述经过数据分块获取到的至少一个目标数据块的数据指纹存储到针对所述目标网络数据的编码后数据中;发送所述编码后数据给所述远端广域网优化设备1102。
远端广域网优化设备1102,用于接收所述本地广域网优化设备1101发送的所述编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述本地广域网优化设备1101根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的;接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块,并将所述编码后数据中的目标数据块和在所述本地数据库中获取到的数据块组装成所述目标网络数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本发明所必须的。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例设备中的所述单元或模块可以根据实际需要进行合并、划分和删减。
本发明实施例中所述单元或模块,可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application SpecificIntegrated Circuit,专用集成电路)来实现。
以上对本发明实施例所提供的数据压缩方法、设备及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种数据压缩方法,其特征在于,所述方法包括:
获取目标网络数据;
根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;
根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;
依次将所述至少一个目标数据块与数据库中的数据块进行比较;
删除与所述数据库中的数据块相同的目标数据块。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
3.如权利要求1或2任一项所述的方法,其特征在于,所述依次将所述至少一个目标数据块与数据库中的数据块进行比较包括:
分别计算所述至少一个目标数据块的数据指纹;
通过依次比较所述计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与所述数据库中的数据块。
4.如权利要求3所述的方法,其特征在于,所述将与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中包括:
将与所述指纹索引表中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中;
将所述存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
5.如权利要求3所述的方法,其特征在于,所述分别计算所述至少一个目标数据块的数据指纹之后,所述方法还包括:
将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述目标网络数据的编码后数据中;
将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
将所述编码后数据发送给远端广域网优化设备。
6.如权利要求1~5任一项所述的方法,其特征在于,所述获取目标网络数据之后,所述方法还包括:
通过所述获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
获取针对所述目标网络数据的重组指令;
根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述获取到的编码后数据中仅存在目标数据块的数据指纹时,在所述数据库中获取所述数据指纹对应的数据块;
将所述获取到的编码后数据中的目标数据块和所述获取到的所述数据库中的数据块组装成所述目标网络数据。
8.一种广域网优化设备,其特征在于,所述广域网优化设备包括:
获取单元,用于获取目标网络数据;
设置单元,用于根据所述获取单元获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;
数据分块单元,还用于根据所述设置单元设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;
比较单元,用于依次将所述目标网络数据经过所述数据分块单元进行数据分块获取到的至少一个目标数据块与数据库中的数据块进行比较;
删除单元,用于删除所述比较单元比较得到的与所述数据库中的数据块相同的目标数据块。
9.如权利要求8所述的广域网优化设备,其特征在于,所述广域网优化设备还包括:
数据块存储单元,用于将所述比较单元比较得到的与所述数据库中的所有数据块都不相同的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中。
10.如权利要求8或9任一项所述的广域网优化设备,其特征在于,所述比较单元包括:
计算模块,用于分别计算所述目标数据网络经过所述数据分块单元进行数据分块获取到的至少一个目标数据块的数据指纹;
比较模块,用于通过依次比较所述计算模块计算得到的至少一个目标数据块的数据指纹与所述数据库的指纹索引表中的数据指纹,依次比较所述至少一个目标数据块与所述数据库中的数据块。
11.如权利要求10所述的广域网优化设备,其特征在于,所述数据块存储单元包括:
数据块存储模块,用于将与所述指纹索引表库中的所有数据指纹都不相同的数据指纹对应的目标数据块存储到所述数据库中的所述目标网络数据所属的网络应用数据流对应的数据库容器中;
指纹存储模块,用于将所述数据块存储模块存储到所述数据库中的目标数据块的数据指纹及其元数据存储到所述指纹索引表中,所述元数据包括所述目标数据块在所述数据库中的地址和长度。
12.如权利要求10所述的广域网优化设备,其特征在于,所述广域网优化设备还包括:
指纹封装单元,用于在所述比较单元分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的所有数据指纹都不相同的目标数据块的数据指纹及所述目标数据块封装到针对所述目标网络数据的编码后数据中;
所述指纹封装单元,还用于在所述比较单元分别计算所述至少一个目标数据块的数据指纹后,将与所述指纹索引表中的数据指纹相同的目标数据块的数据指纹封装到所述编码后数据中;
发送单元,用于将所述编码后数据发送给远端广域网优化设备。
13.如权利要求8~12任一项所述的广域网优化设备,其特征在于,所述广域网优化设备还包括:
确定单元,用于通过所述获取单元获取到的目标网络数据对应的端口信息,确定所述获取到的目标网络数据所属的网络应用数据流。
14.如权利要求12所述的广域网优化设备,其特征在于,所述获取单元还用于:
获取针对所述目标网络数据的重组指令;
根据所述重组指令获取针对所述目标网络数据的编码后数据;
所述编码后数据中存在目标数据块的数据指纹时,在所述数据库中获取所述数据指纹对应的数据块;
所述广域网优化设备还包括:
组装单元,用于将所述获取单元获取到的编码后数据中的目标数据块和所述获取单元获取到的所述本地数据库中的数据块组装成所述目标网络数据。
15.一种广域网优化设备,其特征在于,包括:
接收单元,用于接收远端广域网优化设备针对目标网络数据发送的编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述远端广域网优化设备根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的;
获取单元,用于所述接收单元接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块;
组装单元,用于将所述接收单元接收到的编码后数据中的目标数据块和所述获取单元获取到的所述本地数据库中的数据块组装成所述目标网络数据。
16.一种数据压缩***,其特征在于,所述数据压缩***包括本地广域网优化设备和远端广域网优化设备,其中:
所述本地广域网优化设备为如权利要求8~14所述的广域网优化设备,用于获取目标网络数据;根据所述获取到的目标网络数据所属的网络应用数据流的冗余率,设置所述目标网络数据的数据分块参数;根据所述设置的数据分块参数,将所述目标网络数据进行数据分块从而获取至少一个目标数据块;依次将所述至少一个目标数据块与数据库中的数据块进行比较;删除与所述数据库中的数据块相同的目标数据块;将所述经过数据分块获取到的至少一个目标数据块的数据指纹存储到针对所述目标网络数据的编码后数据中;发送所述编码后数据给所述远端广域网优化设备;
所述远端广域网优化设备为如权利要求15所述的广域网优化设备,用于接收所述本地广域网优化设备发送的所述编码后数据,其中所述编码后数据包括至少一个目标数据块的数据指纹,所述至少一个目标数据块的数据指纹是所述本地广域网优化设备根据所述目标网络数据所属的网络应用数据流的冗余率设置数据分块参数,根据所述数据分块参数将所述目标网络数据进行数据分块从而获取至少一个目标数据块,并针对所述至少一个目标数据块计算得到的;接收到的编码后数据中仅存在目标数据块的数据指纹时,在本地数据库中获取所述数据指纹对应的数据块,并将所述编码后数据中的目标数据块和在所述本地数据库中获取到的数据块组装成所述目标网络数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728185.3A CN104753626B (zh) | 2013-12-25 | 2013-12-25 | 一种数据压缩方法、设备及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728185.3A CN104753626B (zh) | 2013-12-25 | 2013-12-25 | 一种数据压缩方法、设备及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104753626A true CN104753626A (zh) | 2015-07-01 |
CN104753626B CN104753626B (zh) | 2019-05-24 |
Family
ID=53592800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310728185.3A Active CN104753626B (zh) | 2013-12-25 | 2013-12-25 | 一种数据压缩方法、设备及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104753626B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791832A (zh) * | 2016-03-08 | 2016-07-20 | 湖南千年华光软件开发有限公司 | 数据编码方法和数据解码方法及其*** |
CN106452451A (zh) * | 2016-08-22 | 2017-02-22 | 湖南千年华光软件开发有限公司 | 数据处理方法及装置 |
CN106484852A (zh) * | 2016-09-30 | 2017-03-08 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN108243256A (zh) * | 2018-01-19 | 2018-07-03 | 网宿科技股份有限公司 | 一种数据存储方法、编码设备及解码设备 |
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US11199984B2 (en) | 2019-12-31 | 2021-12-14 | Kunlunxin Technology (Beijing) Company Limited | Data writing method and apparatus, and electronic device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN101916171A (zh) * | 2010-07-16 | 2010-12-15 | 中国科学院计算技术研究所 | 一种并发层次式的重复数据消除方法和*** |
CN102214210A (zh) * | 2011-05-16 | 2011-10-12 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法、装置和*** |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102684827A (zh) * | 2012-03-02 | 2012-09-19 | 华为技术有限公司 | 数据处理方法及数据处理设备 |
CN102708183A (zh) * | 2012-05-09 | 2012-10-03 | 华为技术有限公司 | 数据压缩的方法和装置 |
US20120303595A1 (en) * | 2011-05-25 | 2012-11-29 | Inventec Corporation | Data restoration method for data de-duplication |
CN103078709A (zh) * | 2013-01-05 | 2013-05-01 | 中国科学院深圳先进技术研究院 | 数据冗余识别方法 |
CN103186652A (zh) * | 2011-12-28 | 2013-07-03 | 英业达股份有限公司 | 分布式的重复数据删除***及其方法 |
-
2013
- 2013-12-25 CN CN201310728185.3A patent/CN104753626B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN101916171A (zh) * | 2010-07-16 | 2010-12-15 | 中国科学院计算技术研究所 | 一种并发层次式的重复数据消除方法和*** |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102214210A (zh) * | 2011-05-16 | 2011-10-12 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法、装置和*** |
US20120303595A1 (en) * | 2011-05-25 | 2012-11-29 | Inventec Corporation | Data restoration method for data de-duplication |
CN103186652A (zh) * | 2011-12-28 | 2013-07-03 | 英业达股份有限公司 | 分布式的重复数据删除***及其方法 |
CN102684827A (zh) * | 2012-03-02 | 2012-09-19 | 华为技术有限公司 | 数据处理方法及数据处理设备 |
CN102708183A (zh) * | 2012-05-09 | 2012-10-03 | 华为技术有限公司 | 数据压缩的方法和装置 |
CN103078709A (zh) * | 2013-01-05 | 2013-05-01 | 中国科学院深圳先进技术研究院 | 数据冗余识别方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791832A (zh) * | 2016-03-08 | 2016-07-20 | 湖南千年华光软件开发有限公司 | 数据编码方法和数据解码方法及其*** |
CN105791832B (zh) * | 2016-03-08 | 2019-02-01 | 湖南千年华光软件开发有限公司 | 数据编码方法和数据解码方法及其*** |
CN106452451B (zh) * | 2016-08-22 | 2019-09-13 | 湖南千年华光软件开发有限公司 | 数据处理方法及装置 |
CN106452451A (zh) * | 2016-08-22 | 2017-02-22 | 湖南千年华光软件开发有限公司 | 数据处理方法及装置 |
CN106484852A (zh) * | 2016-09-30 | 2017-03-08 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN106484852B (zh) * | 2016-09-30 | 2019-10-18 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN108243256A (zh) * | 2018-01-19 | 2018-07-03 | 网宿科技股份有限公司 | 一种数据存储方法、编码设备及解码设备 |
CN108243256B (zh) * | 2018-01-19 | 2020-08-04 | 网宿科技股份有限公司 | 一种数据存储方法、编码设备及解码设备 |
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
WO2019205897A1 (zh) * | 2018-04-23 | 2019-10-31 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN108809514B (zh) * | 2018-04-23 | 2021-01-12 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US11476977B2 (en) | 2018-04-23 | 2022-10-18 | Huawei Technologies Co., Ltd. | Data transmission method and related device |
US11199984B2 (en) | 2019-12-31 | 2021-12-14 | Kunlunxin Technology (Beijing) Company Limited | Data writing method and apparatus, and electronic device |
Also Published As
Publication number | Publication date |
---|---|
CN104753626B (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104753626A (zh) | 一种数据压缩方法、设备及*** | |
RU2626334C2 (ru) | Способ и устройство обработки объекта данных | |
KR20210042161A (ko) | 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스 | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
KR102082765B1 (ko) | 중복 제거 방법 및 저장 장치 | |
WO2014184857A1 (ja) | 重複排除システム及びその方法 | |
EP3229444B1 (en) | Server and method for compressing data by server | |
WO2021057253A1 (zh) | 数据分离存储方法、装置、计算机设备和存储介质 | |
CN104125163A (zh) | 一种数据处理方法、装置及终端 | |
US20190014016A1 (en) | Data acquisition device, data acquisition method and storage medium | |
CN109388614A (zh) | 一种目录文件个数配额的方法、***及设备 | |
CN109739433A (zh) | 数据处理的方法及终端设备 | |
CN104391961A (zh) | 千万级小文件数据的一种读写解决策略 | |
CN104956340A (zh) | 可扩展数据重复删除 | |
US11755540B2 (en) | Chunking method and apparatus | |
CN109033295A (zh) | 超大数据集的合并方法及装置 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN112217657A (zh) | 基于sd-wan***的数据传输方法、数据处理方法、设备和介质 | |
CN108241639A (zh) | 一种数据去重方法 | |
EP3971700A1 (en) | Data processing method and device in storage system, and computer readable storage medium | |
CN105630999A (zh) | 服务器压缩数据的方法和装置 | |
CN106933970B (zh) | 一种快速烧录数据至ext分区的方法和装置 | |
WO2022188103A1 (zh) | 数据采集方法、装置、计算设备以及存储介质 | |
CN112417081A (zh) | 一种实现增量倒排索引数据存储的方法和装置 | |
CN111158994A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |