CN104933010B - 一种重复数据删除方法和装置 - Google Patents

一种重复数据删除方法和装置 Download PDF

Info

Publication number
CN104933010B
CN104933010B CN201410101736.8A CN201410101736A CN104933010B CN 104933010 B CN104933010 B CN 104933010B CN 201410101736 A CN201410101736 A CN 201410101736A CN 104933010 B CN104933010 B CN 104933010B
Authority
CN
China
Prior art keywords
data
data flow
block
flow
duplication
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
Application number
CN201410101736.8A
Other languages
English (en)
Other versions
CN104933010A (zh
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.)
Changzhou Hengtang Technology Industry Co ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410101736.8A priority Critical patent/CN104933010B/zh
Publication of CN104933010A publication Critical patent/CN104933010A/zh
Application granted granted Critical
Publication of CN104933010B publication Critical patent/CN104933010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种重复数据删除方法和装置,应用于数据处理技术领域。本发明中通过处理器调用存储器中储存的程序,将待处理数据划分成多个数据流,这样硬件加速器就可以同时分别计算这些数据流所包括的数据块的标识信息,然后再由处理器根据这些标识信息进行重复数据删除处理。由于本发明中重复数据删除装置可以将待处理数据划分成多个数据流,进而并行对这些数据流进行重复数据删除的处理,可以提高重复数据删除的效率;另外,本发明中,在实现重复数据删除过程中的部分功能时采用硬件结构来实现,而不是通过调用程序的软件实现,可以有效地提高重复数据删除流程的效率。

Description

一种重复数据删除方法和装置
技术领域
本发明涉及数据处理技术领域,特别涉及重复数据删除方法和装置。
背景技术
目前,网络中的数据总量呈现指数级增长,这不仅需要耗费越来越多的网络带宽传输数据,同时还需占用巨大的数据存储空间。为降低计算机数据存储***和计算机网络的总体拥有成本(英文:Total Cost of Ownership,缩写:TCO),企业纷纷开始采用重复数据删除技术。
重复数据删除(Data deduplication)技术目前已成为计算机***领域的一项主流且极为重要的技术。其工作原理为从数据流中识别出重复数据,只保留重复数据的一个备份,删除其它冗余数据,在删除重复数据的位置以指针引用,从而节约大量的数据存储空间或网络带宽。如何快速进行重复数据删除是一个比较重要的问题。
发明内容
本发明提供重复数据删除方法和装置,提高重复数据删除的效率。
本发明第一方面提供一种重复数据删除装置,包括通过总线连接的处理器、存储器和硬件加速器,其中:
所述存储器,用于储存用于数据分类的第一程序,及用于数据去重的第二程序;
所述处理器,用于调用所述存储器中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将所述N个数据流传送给所述硬件加速器;所述N为大于1的正整数;
所述硬件加速器,用于分别计算所述N个数据流中所包括的数据块的标识信息;
所述处理器,还用于调用所述存储器中储存的第二程序,根据所述硬件加速器计算的数据块的标识信息执行重复数据删除处理。
本发明第一方面的第一种可能实现方式中:
所述处理器,具体用于调用所述存储器中储存的第一程序后,根据如下信息中的至少一种将所述待处理数据划分为N个数据流:应用端口号,文件类型和应用类型。
结合本发明第一方面或第一方面的第一种可能实现方式,在本发明第一方面的第二种可能实现方式中,所述硬件加速器包括:N个原始数据缓冲区、数据分片模块和N个结果数据缓冲区;
所述N个原始数据缓冲区,用于分别缓冲所述处理器传送的N个数据流;
所述数据分片模块,用于分别对所述N个数据流进行分片得到每个所述数据流所包括的数据块,并分别计算每个数据块的标识信息;
所述N个结果数据缓冲区,用于分别缓冲所述数据分片模块计算的N个数据流所包括的数据块的标识信息。
结合本发明第一方面第二种可能实现方式,在本发明第一方面的第三种可能实现方式中,所述数据分片模块具体包括:确定子模块,第一数据分片子模块以及第二数据分片子模块,其中:
所述确定子模块,用于确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,并根据所述对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将所述N个数据流分别发送给所述第一数据分片子模块或所述第二数据分片子模块;
所述第一数据分片子模块,用于对接收的数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为2的n次方,并分别计算所述数据流的每个数据块的标识信息;
所述第二数据分片子模块,用于对接收的数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为非2的n次方,并分别计算所述数据流的每个数据块的标识信息。
结合本发明第一方面第三种可能实现方式,在本发明第一方面的第四种可能实现方式中,所述第一数据分片子模块以及所述第二数据分片子模块分别包括:
滑动窗口计算模块,用于在对数据流分片时,计算沿着所述数据流滑动的固定大小的滑动窗口内的数据的指纹;
分片点计算模块;用于当所述当滑动窗口计算模块计算的指纹满足预置条件时,将所述滑动窗口的位置作为所述数据流所包括的数据块的分片点;
所述指纹计算模块,用于计算所述数据流的每个数据块的数据指纹作为所述每个数据块的标识信息,并将所述数据流的每个数据块的数据指纹传送给所述数据流对应的结果数据缓冲区。
本发明第二方面提供一种重复数据删除方法,应用于如权利要求1至6任一项所述的重复数据删除装置中,所述方法包括:
处理器调用存储器中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将所述N个数据流传送给硬件加速器;所述N为大于1的正整数;
硬件加速器分别计算所述N个数据流中每个数据流所包括的数据块的标识信息;
所述处理器调用所述存储器中储存的第二程序,根据所述硬件加速器计算的所述数据块的标识信息执行重复数据删除处理。
本发明第二方面的第一种可能实现方式中,所述将待处理数据划分为N个数据流,具体包括:
根据如下任信息中的至少一种将所述待处理数据划分为N个数据流:应用端口号,文件类型和应用类型。
结合本发明第二方面或第二方面的第一种可能实现方式,在本发明第二方面的第二种可能实现方式中,所述硬件加速器分别计算所述N个数据流中所包括的数据块的标识信息,具体包括:
所述硬件加速器分别对所述N个数据流进行分片得到每个所述数据流所包括的数据块;并分别计算每个数据块的标识信息。
结合本发明第二方面第二种可能实现方式,在本发明第二方面的第三种可能实现方式中,所述硬件加速器分别对所述N个数据流进行分片之前,所述方法还包括:
确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将数据块的大小为2的n次方的数据流,和所述数据块的大小为非2的n次方的数据流,分别发送给不同的数据分片子模块。
结合本发明第二方面第三种可能实现方式,在本发明第二方面的第四种可能实现方式中,所述硬件加速器分别对所述N个数据流进行分片得到每个数据流所包括的数据块,具体包括:
所述不同的数据分片子模块分别对接收到的数据流计算沿着所述数据流滑动的固定大小的滑动窗口内的数据的指纹;
当所述计算的指纹满足预置条件时,将滑动窗口的位置作为所述数据流所包括数据块的分片点。
可见,本发明的重复数据删除装置,可以通过处理器调用存储器中储存的程序,将待处理数据划分成多个数据流,这样硬件加速器就可以同时分别计算这些数据流所包括的数据块的标识信息,然后再由处理器根据这些标识信息进行重复数据删除处理。由于本发明中重复数据删除装置可以将待处理数据划分成多个数据流,进而并行对这些数据流进行重复数据删除的处理,可以提高重复数据删除的效率;另外,本发明将计算数据流所包括的数据块的标识信息的功能,采用硬件结构来实现,而不是通过调用程序实现,可以有效地提高重复数据删除流程的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种重复数据删除装置的结构示意图;
图2是本发明实施例提供的重复数据删除装置中硬件加速器的结构示意图;
图3是本发明实施例提供的重复数据删除装置中硬件加速器包括的数据分片模块的结构示意图;
图4是本发明实施例提供的一种重复数据删除方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供一种重复数据删除装置,如图1所示,包括分别通过总线连接的处理器11、存储器10和硬件加速器12,其中:
存储器10,可用于存储软件程序以及模块,处理器11通过调用存储在存储器10的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器10可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据等。此外,存储器10可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器10还可以包括存储器控制器,以供处理器11和外设接口对存储器10进行访问。
处理器11,是控制中心,利用各种接口和线路连接整个重复数据删除装置的各个部分,通过运行或执行存储在存储器10内的软件程序和/或模块,以及调用存储在存储器10内的程序,执行该装置的各种功能和处理数据。可选的,处理器11可包括一个或多个处理核心;优选的,处理器11可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器11中。
在本实施例中,存储器10,具体用于储存用于数据分类的第一程序及用于数据去重的第二程序,其中第一程序可以实现按照一定的策略对数据流进行分类的功能,而第二程序可以实现识别重复数据,只保留重复数据的一个备份,删除其它冗余数据,在删除重复数据的位置以指针引用保留的备份数据的功能。
处理器11,具体用于调用存储器10中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将N个数据流传送给硬件加速器12,其中,N为大于1的正整数。其中,处理器11具体在调用存储器10中储存的第一程序后,根据如下信息中的至少一种将待处理数据划分为N个数据流:应用端口号,文件类型和应用类型等。处理器11可以将划分成的数据流派发给对应的线程,具体地,处理器11可以将数据流派发给负载较少的线程。
另外,处理器11可以通过各个线程主动将划分形成的数据流传送给硬件加速器12,也可以由硬件加速器12主动从各个线程读取数据流。且各个线程与硬件加速器12之间传输数据时可以采用直接内存访问(英文:Direct Memory Access,缩写:DMA)协议等猝发数据传输方式进行传输。
硬件加速器12,用于分别计算N个数据流中每个数据流所包括的数据块的标识信息,这里标识信息是唯一标识一个数据块的信息,比如通过哈希算法得到的数据指纹等信息,其中:
该硬件加速器12对N个数据流各自包括的数据块的标识信息的计算可以同时进行,且可以采用相同或不同的方法来实现,具体可以包括对每个数据流进行分片得到数据块和计算对分片后得到的数据块的标识信息,其中对数据流的分片方法可以包括基于内容的数据分片(英文:Content-Defined Chunking,缩写:CDC)等滑动块分片方法,或定长分片方法,或变长分片方法等;而标识信息的计算可以通过Rabin指纹算法,或Murmur哈希算法等来计算各个数据块的数据指纹;当硬件加速器12对某一数据流完成了数据块的标识信息的计算后,则可以通过中断的方式主动通知处理器11读取硬件加速器12计算的标识信息,也可以由处理器11主动向硬件加速器12查询计算完成的标识信息。在本发明中,可以包括一个或多个硬件加速器12。
该硬件加速器12具体可以通过现场可编程门阵列(英文:Field ProgrammableGate Array,缩写:FPGA)或通过专用集成电路(英文:Application Specific IntegratedCircuit,缩写:ASIC)等硬件来实现。
处理器11,还用于调用存储器10中储存的第二程序,根据硬件加速器12计算的数据块的标识信息执行重复数据删除处理。这里重复数据删除处理具体包括:如果在存储器10中已储存了该标识信息,则说明在存储器10中已经储存有该标识信息对应的数据,则处理器11会在重复数据位置用该标识信息来代替具体的数据,该指针用于指向存储数据的位置;如果在存储器10中未储存该标识信息,或标识信息所标识的数据,则将该数据或标识信息写入存储器10中。
需要说明的是,上述处理器11在将待处理数据划分为N个数据流并派发到N个线程后,这N个线程具体是通过总线,分别将各个线程中的数据流储存到存储器10中的,而处理器11可以控制任一线程将数据流传送给硬件加速器12。
可见,本实施例的重复数据删除装置中,可以通过处理器11调用存储器10中储存的第一程序,将待处理数据划分成多个数据流,这样硬件加速器12就可以同时分别计算每个数据流所包括的数据块的标识信息,然后再由处理器11再调用存储器10中储存的第二程序,以根据这些标识信息进行重复数据删除处理。由于本实施例中重复数据删除装置可以将待处理数据划分成多个数据流,进而并行对这些数据流进行重复数据删除的处理,可以提高重复数据删除的效率;另外,本实施例中,在实现重复数据删除过程中的部分功能,即将计算数据流所包括的数据块的标识信息的功能,采用硬件结构来实现,而不是通过调用程序的软件实现,可以有效地提高重复数据删除流程的效率。
参考图2所示,在一个具体的实施例中,在实现上述硬件加速器12时,具体可以通过如下结构来实现,包括N个原始数据缓冲区120、数据分片模块121和N个结果数据缓冲区122,其中:
N个原始数据缓冲区120,用于分别缓冲处理器11传送的N个数据流,所述N个数据流是通过总线接口模块从处理器11接收的。
数据分片模块121,用于分别对N个原始数据缓冲区120缓冲的N个数据流进行分片得到每个数据流所包括的数据块,并分别计算每个数据块的标识信息。其中,数据分片模块121可以包括两个数据分片子模块,即支持对数据流进行2的n次方大小的第一数据分片子模块和支持对数据流进行非2的n次方大小的第二数据分片子模块,且每一个数据分片子模块的功能和结构类似,都需要对数据流进行分片后计算标识信息,不同的是,两个数据分片子模块支持的数据分片长度不同,且是对不同的数据流进行分片后计算标识信息的。
N个结果数据缓冲区122,用于分别缓冲数据分片模块121计算的N个数据流所包括的数据块的标识信息,且该结果数据缓冲区122中还可以包括其它一些数据,例如各个数据块、数据流中包括的数据块的切分点、分片数量和该数据流对应的线程标识等。
可以理解,为提高重复数据删除装置中各个组成部分的互操作性,在本实施例中,硬件加速器12可以采用标准的高性能片上总线,比如PCI Express总线,并通过总线协议桥实现与重复数据删除装置的总线之间的协议转换。且上述的原始数据缓冲区120和结果数据缓冲区122可以通过任意的存储介质来实现。
且硬件加速器12除了上述N个原始数据缓冲区120、数据分片模块121和N个结果数据缓冲区122之外,还可以包括其它必要的组成部分,比如总线接口模块和控制器。其中,总线接口模块用于该硬件加速器12中各个组成部分与重复数据删除装置的总线之间的互联,同时总线接口模块内可以设置数据寄存器、控制寄存器和状态寄存器等寄存器,用于处理器11实现对硬件加速器12的控制和设置工作参数等功能,比如硬件加速器12的启停、平均分片大小、最小和最大分片大小等参数;控制器用于实现对硬件加速器12中各个组成部分的控制,协调各组成部分之间的交互,从而实现硬件加速器的功能。
且需要说明的是,为了提高重复数据删除的效率,在重复数据删除装置中可以设置多个该硬件加速器12,每个硬件加速器12的结构及与其它模块的连接方式都类似,在此不进行赘述。
可见,在本实施例中,硬件加速器12中的一个结果数据缓冲区122可以累计对一个数据流进行处理的处理结果,即进行分片并计算得到该数据流的每个数据块的标识信息,这样使得同一数据流的处理结果储存在相近的位置,即独立储存到一个结果数据缓冲区122中,可以方便将对同一数据流的处理结果一起传送给处理器11,能提高处理效率。参考图3所示,在另一个具体的实施例中,上述硬件加速器12中的数据分片模块121具体可以通过一个或多个数据分片子模块实现,其中,每个数据分片子模块可以采用不同参数进行相应的处理,且是对不同的数据流进行处理的,具体地,该数据分片模块121可以包括确定子模块131、第一数据分片子模块132和第二数据分片子模块133,其中:
确定子模块131,确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,并根据对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将所述N个数据流分别发送给第一数据分片子模块132或所述第二数据分片子模块133;
第一数据分片子模块132,用于对接收的数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为2的n次方,并分别计算所述数据流的每个数据块的标识信息。该第一数据分片子模块132接收的数据流的大小可以是2的n次方。
第二数据分片子模块133,用于对接收的个数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为非2的n次方,并分别计算所述数据流的每个数据块的标识信息。该第二数据分片子模块133接收的数据流的大小可以是非2的n次方。
如果上述每个数据分片子模块都按照CDC分片方法对数据流进行分片,则上述任一个数据分片子模块都可以通过滑动窗口计算模块、分片点计算模块和指纹计算模块来实现,而这些模块的硬件实现结构,都是由各个模块具体的计算方法来决定的。具体地,滑动窗口计算模块主要是在对数据流分片时,从某一个数据流的初始位置,计算沿着数据流滑动的固定大小的滑动窗口内的数据的指纹;分片点计算模块主要是当滑动窗口计算模块计算的指纹满足一定的预置条件时,则将此滑动窗口的位置作为所述数据流所包括的数据块的分片点,即该滑动窗口的终端作为所在数据块的终点,同时作为下一个数据块的起点;然后指纹计算模块会计算数据流的每个数据块的数据指纹作为所述每个数据块的标识信息,并将所述数据流的每个数据块的数据指纹传送给一个结果数据缓冲区122,即传送给数据流对应的结果数据缓冲区122进行缓冲。
其中,如果滑动窗口计算模块计算的指纹不满足一定的预置条件时,则分片点计算模块还用于通知滑动窗口计算模块将滑动窗口沿着数据流向前滑动一个字节,然后计算滑动后窗口内数据的指纹,并由分片点计算模块确定分片点。这样通过滑动窗口计算模块和分片点计算模块的循环操作,直到找到一个数据流所有数据块的分片点。上述指纹满足的预置条件可以包括但不限于如下条件:如果滑动窗口内数据的指纹的最低13位与数据块屏蔽码(chunk mask)做位与操作,如果得到的值为一个魔数(magic value),则认为满足条件,其中,如果滑动窗口的大小为48字节,则可以设置魔数为0x12,设备数据块屏蔽码为0x1fff。
上述滑动窗口计算模块一般采用Rabin指纹算法,该Rabin指纹算法是将待计算的字符串看作是伽罗华域上的一个多项式或大数(如下公式1所示);然后用一个不可约的多项式对其取模得到余数,该余数作为计算的指纹。
f(x)=m0+m1x+...+mn-1xn-1(公式1),其中x表示待计算的字符串中各个位上的信息,x的系数可以是由滑动窗口计算模块从常数表中读取,具体硬件逻辑可以采用状态机来实现。
另外,上述指纹计算模块一般采用Murmur哈希算法来计算各个数据块的指纹。Murmur哈希算法的硬件逻辑实现具体可以由三个状态机构成,一个主状态机和两个子状态机,其中主状态机实现哈希算法的主流程,一个子状态机用于实现哈希算法中的循环流程,一个子状态机用于实现哈希算法中的分支处理,其中各个状态机执行什么处理,主要是根据该哈希算法的不同而不同。
本发明实施例还提供一种重复数据删除方法,主要是由上述重复数据删除装置所执行的方法,重复数据删除装置的结构可以如上述实施例中所述,包括存储器10、处理器11和硬件加速器12,在此不进行赘述,本实施例的方法流程图如图4所示,包括:
步骤101,处理器11调用存储器10中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将N个数据流传送给硬件加速器;所述N为大于1的正整数。具体地,处理器11可以根据如下任一种或多种策略将待处理数据划分为N个数据流:应用端口号,文件类型和应用类型等。
步骤102,硬件加速器12分别计算N个数据流中所包括的数据块的标识信息。具体地,硬件加速器12可以分别对N个数据流进行分片得到各个数据流所包括的数据块;并分别计算数据块的标识信息。且其中,硬件加速器12在对N个数据流进行分片之前,还可以通过确定子模块来确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将数据块的大小为2的n次方的数据流,和数据块的大小为非2的n次方的数据流,分别发送给不同的数据分片子模块。
其中在对数据流进行分片时,可以采用CDC等滑动块分片算法,也可以采用定长分片或变长分片算法进行分片。特别地,对于CDC分片算法来说,硬件加速器12具体是通过不同的数据分片子模块分别对接收到的数据流,计算沿着数据流滑动的固定大小的滑动窗口内的数据的指纹;当计算的指纹满足预置条件时,将滑动窗口的位置作为数据流所包括的数据块的分片点,当计算的指纹不满足预置条件时,需要将滑动窗口沿着数据流滑动一个字节,然后再根据滑动后窗口内数据的指纹确定是否为数据块的分片点,这样循环操作就得到了对整个数据流进行分片的分片点。
步骤103,处理器11调用存储器10中储存的第二程序,根据硬件加速器12计算的数据块的标识信息执行重复数据删除处理。
这里重复数据删除处理具体包括:如果在存储器10中已储存了该标识信息,则说明在存储器10中已经储存有该标识信息对应的数据,则处理器11会在重复数据位置用指针代替,该指针用于指向存储数据的位置;如果在存储器10中未储存该标识信息,或标识信息所标识的数据,则将该数据或标识信息写入存储器10中。
可见,本实施例的重复数据删除方法中,可以通过重复数据删除装置中的处理器11调用存储器10中储存的程序,将待处理数据划分成多个数据流,这样硬件加速器12就可以同时分别计算这些数据流所包括的数据块的标识信息,然后再由处理器11根据这些标识信息进行重复数据删除处理。由于本实施例中重复数据删除装置可以将待处理数据划分成多个数据流,进而并行对这些数据流进行重复数据删除的处理,可以提高重复数据删除的效率;另外,本实施例中,在实现重复数据删除过程中的部分功能,即将计算数据流所包括的数据块的标识信息的功能,采用硬件结构来实现,而不是通过调用程序的软件实现,可以有效地提高重复数据删除流程的效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的重复数据删除方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种重复数据删除装置,其特征在于,包括通过总线连接的处理器、存储器和硬件加速器,其中:
所述存储器,用于储存用于数据分类的第一程序,及用于数据去重的第二程序;
所述处理器,用于调用所述存储器中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将所述N个数据流传送给所述硬件加速器;所述N为大于1的正整数;
所述硬件加速器,用于分别计算所述N个数据流中所包括的数据块的标识信息;
所述处理器,还用于调用所述存储器中储存的第二程序,根据所述硬件加速器计算的数据块的标识信息执行重复数据删除处理;
其中,所述处理器,具体用于调用所述存储器中储存的第一程序后,根据如下信息中的至少一种将所述待处理数据划分为N个数据流:应用端口号,文件类型和应用类型;
其中,所述硬件加速器包括:N个原始数据缓冲区、数据分片模块和N个结果数据缓冲区;
所述N个原始数据缓冲区,用于分别缓冲所述处理器传送的N个数据流;
所述数据分片模块,用于分别对所述N个数据流进行分片得到每个所述数据流所包括的数据块,并分别计算每个数据块的标识信息;
所述N个结果数据缓冲区,用于分别缓冲所述数据分片模块计算的N个数据流所包括的数据块的标识信息,其中,一个结果数据缓冲区累计对一个数据流进行处理的处理结果。
2.如权利要求1所述的装置,其特征在于,所述数据分片模块具体包括:确定子模块,第一数据分片子模块以及第二数据分片子模块,其中:
所述确定子模块,用于确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,并根据所述对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将所述N个数据流分别发送给所述第一数据分片子模块或所述第二数据分片子模块;
所述第一数据分片子模块,用于对接收的数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为2的n次方,并分别计算所述数据流的每个数据块的标识信息;
所述第二数据分片子模块,用于对接收的数据流进行分片得到所述数据流所包括的数据块,使得每个数据块的大小为非2的n次方,并分别计算所述数据流的每个数据块的标识信息。
3.如权利要求2所述的装置,其特征在于,所述第一数据分片子模块以及所述第二数据分片子模块分别包括:
滑动窗口计算模块,用于在对数据流分片时,计算沿着所述数据流滑动的固定大小的滑动窗口内的数据的指纹;
分片点计算模块;用于当所述当滑动窗口计算模块计算的指纹满足预置条件时,将所述滑动窗口的位置作为所述数据流所包括的数据块的分片点;
所述指纹计算模块,用于计算所述数据流的每个数据块的数据指纹作为所述每个数据块的标识信息,并将所述数据流的每个数据块的数据指纹传送给所述数据流对应的结果数据缓冲区。
4.一种重复数据删除方法,其特征在于,应用于如权利要求1至3任一项所述的重复数据删除装置中,所述方法包括:
处理器调用存储器中储存的第一程序,将待处理数据划分为N个数据流,并通过N个线程分别将所述N个数据流传送给硬件加速器;所述N为大于1的正整数;
硬件加速器分别计算所述N个数据流中每个数据流所包括的数据块的标识信息;
所述处理器调用所述存储器中储存的第二程序,根据所述硬件加速器计算的所述数据块的标识信息执行重复数据删除处理;
其中,所述将待处理数据划分为N个数据流,具体包括:
根据如下任信息中的至少一种将所述待处理数据划分为N个数据流:应用端口号,文件类型和应用类型。
5.如权利要求4所述的方法,其特征在于,所述硬件加速器分别计算所述N个数据流中所包括的数据块的标识信息,具体包括:
所述硬件加速器分别对所述N个数据流进行分片得到每个所述数据流所包括的数据块;并分别计算每个数据块的标识信息。
6.根据权利要求5所述的方法,其特征在于,所述硬件加速器分别对所述N个数据流进行分片之前,所述方法还包括:
确定对每个数据流在执行重复数据删除处理时所需要的数据块的大小,将数据块的大小为2的n次方的数据流,和所述数据块的大小为非2的n次方的数据流,分别发送给不同的数据分片子模块。
7.如权利要求6所述的方法,其特征在于,所述硬件加速器分别对所述N个数据流进行分片得到每个数据流所包括的数据块,具体包括:
所述不同的数据分片子模块分别对接收到的数据流计算沿着所述数据流滑动的固定大小的滑动窗口内的数据的指纹;
当所述计算的指纹满足预置条件时,将滑动窗口的位置作为所述数据流所包括数据块的分片点。
CN201410101736.8A 2014-03-18 2014-03-18 一种重复数据删除方法和装置 Active CN104933010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410101736.8A CN104933010B (zh) 2014-03-18 2014-03-18 一种重复数据删除方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410101736.8A CN104933010B (zh) 2014-03-18 2014-03-18 一种重复数据删除方法和装置

Publications (2)

Publication Number Publication Date
CN104933010A CN104933010A (zh) 2015-09-23
CN104933010B true CN104933010B (zh) 2019-02-19

Family

ID=54120179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410101736.8A Active CN104933010B (zh) 2014-03-18 2014-03-18 一种重复数据删除方法和装置

Country Status (1)

Country Link
CN (1) CN104933010B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122130B (zh) * 2017-04-13 2020-04-21 杭州宏杉科技股份有限公司 一种数据重删方法及装置
CN113055127B (zh) * 2021-03-17 2022-03-08 网宿科技股份有限公司 数据报文去重与传输方法、电子设备及存储介质
CN113064869B (zh) * 2021-03-23 2023-06-13 网易(杭州)网络有限公司 日志处理方法、装置、发送端、接收端设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722583A (zh) * 2012-06-07 2012-10-10 无锡众志和达存储技术有限公司 重复数据删除硬件加速装置和方法
CN103309975A (zh) * 2013-06-09 2013-09-18 华为技术有限公司 一种重复数据删除方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514250B (zh) * 2013-06-20 2017-04-26 易乐天 一种全局重复数据删除的方法和***及存储装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722583A (zh) * 2012-06-07 2012-10-10 无锡众志和达存储技术有限公司 重复数据删除硬件加速装置和方法
CN103309975A (zh) * 2013-06-09 2013-09-18 华为技术有限公司 一种重复数据删除方法和设备

Also Published As

Publication number Publication date
CN104933010A (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
CN104040516B (zh) 用于数据去重的方法、设备和***
CN108089814B (zh) 一种数据存储方法及装置
US9250946B2 (en) Efficient provisioning of cloned virtual machine images using deduplication metadata
TWI559706B (zh) 網路處理器中的封包調度
US10659532B2 (en) Technologies for reducing latency variation of stored data object requests
CN104636286B (zh) 用于数据访问的方法和设备
CN104933010B (zh) 一种重复数据删除方法和装置
EP3316150A1 (en) Method and apparatus for file compaction in key-value storage system
WO2020119029A1 (zh) 分布式任务调度方法、***及存储介质
JP2017538987A5 (zh)
CN104571956A (zh) 一种数据写入方法及拆分装置
CN105511964B (zh) I/o请求的处理方法和装置
CN110099112B (zh) 基于点对点网络的数据存储方法、装置、介质及终端设备
CN113778320A (zh) 网卡以及网卡处理数据的方法
CN110474845A (zh) 流表项淘汰方法及相关装置
US20160334996A1 (en) In-flash immutable object processing
CN104571957B (zh) 一种数据读取方法及组装装置
CN113176992A (zh) A/b实验分流方法、装置、设备和计算机可读存储介质
CN104503868B (zh) 数据同步方法、装置以及***
CN108062235A (zh) 数据处理方法及装置
CN111625180B (zh) 数据写入方法及装置、存储介质
CN112905542A (zh) 一种文件处理方法、装置、服务器、设备及存储介质
CN114637574A (zh) 基于半虚拟化设备的数据处理方法、装置和***
US10120570B2 (en) Temporary spill area for volume defragmentation
CN108563698B (zh) 一种HBase表的Region合并方法和装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201102

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20201201

Address after: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou, Jiangsu

Patentee after: Changzhou Hong quantity Electronic Technology Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220829

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

Address before: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou City, Jiangsu Province

Patentee before: Changzhou Hong quantity Electronic Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230105

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Hengtang Technology Industry Co.,Ltd.

Address before: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee before: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

TR01 Transfer of patent right