CN105808169A - 用于数据去重的方法、装置和系统 - Google Patents

用于数据去重的方法、装置和系统 Download PDF

Info

Publication number
CN105808169A
CN105808169A CN201610144151.3A CN201610144151A CN105808169A CN 105808169 A CN105808169 A CN 105808169A CN 201610144151 A CN201610144151 A CN 201610144151A CN 105808169 A CN105808169 A CN 105808169A
Authority
CN
China
Prior art keywords
data block
coarseness
fine
grained
cryptographic hash
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
CN201610144151.3A
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201610144151.3A priority Critical patent/CN105808169A/zh
Publication of CN105808169A publication Critical patent/CN105808169A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于数据去重的方法、装置和系统。所述方法包括:对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块;对所述多个细粒度数据块进行重复数据块检测,获得第二结果;以及基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。

Description

用于数据去重的方法、装置和系统
技术领域
本发明涉及数据去重的领域,更具体地,本发明涉及用于数据去重的方法、装置和系统。
背景技术
数据去重是指去除待存储的数据中的重复(冗余)数据,以便在不破坏原始数据的完整性和保真性的同时减少存储的数据量,从而节省了存储资源且降低了硬件成本。数据去重所实现的方法通常是将待存储的数据根据特定规则划分为多个数据块,然后去除这些数据块中的重复数据块,而仅存储剩余的不重复的数据块。
现有的数据去重系统中一般采取单级数据块划分策略。在单级数据块划分中,通常,为了提高去重效果,需要采用较细粒度的数据块划分。然而,由于每个数据块的元数据信息大小是一定的,所以,如果采取较细粒度的数据块划分,则会导致整体元数据信息较大,系统需要处理的数据块较多,从而影响系统性能。因此,现有的基于单级数据块划分策略的数据去重系统不得不在去重效果和系统性能之间进行取舍,有时,甚至会为了系统性能而牺牲去重效果,即,采用较粗粒度的数据块划分。
发明内容
有鉴于上述情况,本发明提供了用于数据去重的方法、装置和系统,其能够在不牺牲去重效果的同时,提高系统性能。
根据本发明的一个方面,提供了一种用于数据去重的方法,包括:对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块;对所述多个细粒度数据块进行重复数据块检测,获得第二结果;以及基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。。
根据本发明的另一方面,提供了一种用于数据去重的装置,包括:粗粒度数据块划分单元,对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;重复数据块检测单元,对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;细粒度数据块划分单元,基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块,其中,所述重复数据块检测单元还对所述多个细粒度数据块进行重复数据块检测,获得第二结果,并且所述用于数据去重的装置还包括:存储单元,基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。。
根据本发明的另一方面,提供了一种用于数据去重的系统,包括彼此通信的数据块划分装置、重复数据块检测装置以及存储装置,并且所述数据块划分装置包括粗粒度数据块划分单元和细粒度数据块划分单元,其中,所述粗粒度数据块划分单元对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;所述重复数据块检测装置,对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;所述细粒度数据块划分单元,基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块;所述重复数据块检测装置对所述多个细粒度数据块进行重复数据块检测,获得第二结果;以及所述存储装置基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
在本发明实施例的用于数据去重的方法、装置和系统中,通过采用分级数据块划分,能够在不牺牲去重效果的同时,提高系统性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的示例性实施例。
图1是图示根据本发明实施例的用于数据去重的方法的流程图;
图2是图示根据本发明实施例的用于数据去重的方法的数据块划分的示意图;
图3是图示根据本发明实施例的用于数据去重的方法的粗粒度数据块划分的示意图;
图4是图示根据本发明实施例的用于数据去重的方法的细粒度数据块划分的示意图;
图5是图示根据本发明另一实施例的用于数据去重的装置的配置框图;以及
图6是图示根据本发明又一实施例的用于数据去重的系统的配置框图。
具体实施方式
在下文中,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,基本上相同的步骤和元素用相同的附图标记来表示,且对这些步骤和元素的重复解释将被省略。
首先,参照图1描述根据本发明实施例的用于数据去重的方法10。图1是图示根据本发明实施例的用于数据去重的方法10的流程图。
如图1中所示,在本发明实施例的用于数据去重的方法10开始时,首先,在步骤S101,对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块。接着,在步骤S102,对所述多个粗粒度数据块进行重复数据块检测,获得第一结果。然后,在步骤S103,基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块。随后,在步骤S104,对所述多个细粒度数据块进行重复数据块检测,获得第二结果。最后,在步骤S105,基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块。其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。在执行了步骤S105之后,用于数据去重的方法10结束。
为了便于理解,下面结合图2详细说明图1中所示的数据传输方法10的各个步骤。图2是图示根据本发明实施例的用于数据去重的方法10的数据块划分的示意图。
如图2中所示,假设要进行数据去重的目标文件由标号20表示。首先通过前述步骤S101对目标文件20进行粗粒度数据块划分,也即,第一级划分,如图2中的20’所示。这里,假设通过第一级(粗粒度)划分首先将目标文件20划分为四个粗粒度数据块A、B、C和D。
在通过步骤S101对目标文件20进行粗粒度数据块划分之后,通过步骤S102对所划分出的粗粒度数据块A、B、C和D进行重复数据块检测,从而判断哪个粗粒度数据块是重复的数据块而哪个粗粒度数据块是不重复的数据块,以获得第一结果。这里,假设第一结果为粗粒度数据块C是重复的数据块,例如如图2中所示的20’中通过斜线填充表示。
由此,进一步通过步骤S103,基于上述第一结果,对其余三个不重复的粗粒度数据块A、B和D的每个进行细粒度数据块划分,也即,第二级划分,如图2中的20”所示。这里,进一步假设通过细粒度(第二级)划分,将粗粒度数据块A进一步划分为三个细粒度数据块A1、A2和A3,将粗粒度数据块B进一步划分为四个细粒度数据块B1、B2、B3和B4,并且将粗粒度数据块D进一步划分为三个细粒度数据块D1、D2和D3。
在通过步骤S103对粗粒度数据块A、B和D的每个进行细粒度数据块划分之后,通过步骤S104对所划分出的细粒度数据块A1、A2、A3、B1、B2、B3、B4、D1、D2和D3进行与在步骤S102对粗粒度数据块A、B、C和D进行的重复数据块检测类似的重复数据检测,从而判断哪个细粒度数据块是重复的数据块而哪个细粒度数据块是不重复的数据块,以获得第二结果。这里,假设第二结果为细粒度数据块A3、B2是重复的数据块,例如如图2中所示的20”中通过斜线填充表示。
最后,基于上述第二结果,仅存储不重复的细粒度数据块A1、A2、B1、B3、B4、D1、D2和D3,而不存储重复的粗粒度数据块C和重复的细粒度数据块A3、B2。
这里,需要说明的是,粗粒度数据块划分与细粒度数据块划分之间的区别在于每个粗粒度数据块的尺寸均大于每个细粒度数据块的尺寸。也就是说,粗粒度和细粒度是相对的概念,本发明不具体限定它们各自具体的量值,只要第一级数据块划分采用的粒度比第二级数据块划分更粗即可。在后文中将更进一步详细说明具体粒度的确定。
另外,本领域所公知的,不管是粗粒度数据块划分还是细粒度数据块的划分都是通过确定各自的划分边界来进行划分。例如,首先以图2中的20’所示的粗粒度数据块划分为例,这些相邻粗粒度数据之间的边界即划分边界。例如,如图2中的20’所示,划分边界201用于划分出粗粒度数据块A,然后划分边界202用于划分出粗粒度数据块B,以及最后划分边界203用于划分出粗粒度数据块C和D。与粗粒度数据块划分的情况类似地,如图2中的20”所示,这些相邻细粒度数据之间的边界也是它们的划分边界。例如,划分边界211用于划分出细粒度数据块A1,然后划分边界212用于划分出细粒度数据块A2,并且其它划分边界213-220以此类推。
上述粗粒度数据块划分和细粒度数据块划分的划分边界都是根据各自的特定准则确定的。在根据本发明实施例的用于数据去重的方法10中,无论采用什么样的具体准则,只要所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界即可。具体地,通过比较图2中所示的20’和20”可以发现,粗粒度数据块划分的划分边界201、202、203分别与细粒度数据块划分的划分边界213、217、218对齐。也就是说,所确定的粗粒度数据块划分的划分边界的每个与所确定的细粒度数据块划分的划分边界中的某个重合,即,必然落入到所确定的细粒度数据块划分的划分边界中。在后文中将更进一步详细说明上述划分边界的确定。
在根据本发明实施例的用于数据去重的方法10中,通过采用分级数据块划分来实现分级去重,能够在不牺牲去重效果的同时,提高系统性能。具体地,一方面,通过使得粗粒度数据块划分的划分边界属于细粒度数据块划分的划分边界,确保粗粒度数据块划分不影响数据去重的效果;另一方面,重复的粗粒度数据块不需要再进行细粒度数据块划分,从而减少所需传输的元数据信息,提高了系统性能。
应理解,图2中所给出的数据块划分示例仅仅为了举例说明,其中所给出的粗粒度和细粒度数据块的数目、粗粒度和细粒度数据块划分的划分边界的位置、以及重复的数据块的数目和位置等均不对本发明构成限制。
可选地,虽然图2中未示出,根据本发明实施例的用于数据去重的方法10中的步骤S101可以包括如下子步骤:
使滑动窗口从所述目标文件的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述目标文件的内容的哈希值;
将所计算的哈希值的后N1位与第一参考值的后N1位相比较,其中所述N1表示粗粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N1位与所述第一参考值的后N1位相同,则将此时所述滑动窗口的前边界所对应的所述目标文件的位置确定为第一粗粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的粗粒度数据块划分边界。
为了便于理解,下面结合图3详细说明上述可选的各个子步骤。图3是图示根据本发明实施例的用于数据去重的方法10的粗粒度数据块划分的示意图。
图3(A)中示出了与图2中所示相同的目标文件20、以及滑动窗口30。此时,滑动窗口30的前边界(即左边界)与目标文件20的开头对齐,并且滑动窗口30从目标文件20的开头开始向后滑动,如图3(A)中的向右的箭头所示。这里,为了更便于理解,假设滑动窗口30的长度为48字节,并且单位滑动步长为1字节。也就是说,滑动窗口30以1字节为单位从目标文件20的开头向后滑动直到目标文件20的结尾处。另外,为了便于理解,这里进一步假设第一参考值为0111000011111000000011111100000000,并且粗粒度划分块匹配长度N1为13。
滑动窗口30每向后滑动1字节都计算当前滑动窗口30所覆盖的目标文件20的内容的哈希值。具体地,当滑动窗口30从目标文件20的开头向后滑动了1字节时,首先计算此时滑动窗口30所覆盖的目标文件20的内容的哈希值,即,目标文件20的第2-49字节这48字节的哈希值,并且将此哈希值的后13位与上述第一参考值的后13位相比较。这里,假设所计算的哈希值为01111111111101010010101010111111101000000,则其后13位是1111101000000,而第一参考值的后13位是1111100000000。通过比较可知它们不相同,因此滑动窗口30继续向后滑动1字节。此时,滑动窗口30所覆盖的目标文件20的内容是目标文件20的第3至50字节这48字节,因此计算目标文件20的第3至50字节这48字节的哈希值,并且也将所计算的哈希值的后13位与第一参考值的后13位1111100000000相比较,如果它们不相同,则滑动窗口30继续向后滑动1字节,并继续进行如上所述哈希值的计算、以及与第一参考值的相比较,以此类推。
如图3(B)中所示,假设滑动窗口30从目标文件20的开头一直滑动到图3(B)中所示的目标文件20中的201位置,并且在此位置之前所计算的哈希值的后13位都与上述第一参考值的后13位不相同,也就是说,到目前为止仍没有确定任何划分边界。此时,仍然计算当前滑动窗口30所覆盖的目标文件20的48字节的哈希值,并将其后13位与第一参考值的后13位相比较。假设此时计算的哈希值的后13位为1111100000000,与第一参考值的后13位1111100000000相同。因此,则确定滑动窗口30的前边界此时所对应的目标文件20的位置201为第一粗粒度数据块划分边界,也就是说划分出了第一个粗粒度数据块A,如图3(B)中所示。并且,滑动窗口30从第一粗粒度数据块划分边界201后(也就是从划分边界201的下个字节)开始继续以1字节为单位向后滑动以确定后续的粗粒度数据块划分边界。例如,虽然图3中未示出,图2中所示的划分边界202和203可以通过与图3中所示的确定划分边界201类似的步骤确定,这里不再赘述。
应理解,图3中给出的具体的粗粒度数据块划分示例仅仅为了举例说明,本发明不限于此。前述滑动窗口长度、单位滑动步长、第一参考值以及粗粒度划分块匹配长度N1的具体取值不对本发明构成限制,并且本领域技术人员可以根据实际情况采取其它任何合适的取值。
进一步可选地,虽然图2中未示出,根据本发明实施例的用于数据去重的方法10中的步骤S103可以包括如下子步骤:
对于不重复的粗粒度数据块的每个,使所述滑动窗口从所述粗粒度数据块的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述粗粒度数据块的内容的哈希值;
将所计算的哈希值的后N2位与第二参考值的后N2位相比较,其中所述N2表示细粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N2位与所述第二参考值的后N2位相同,则将此时所述滑动窗口的前边界所对应的所述粗粒度数据块的位置确定为第一细粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的细粒度数据块划分边界。
为了便于理解,下面结合图4详细说明上述可选的各个子步骤。图4是图示根据本发明实施例的用于数据去重的方法10的细粒度数据块划分的示意图。
图4(A)中示出了通过图2中所示的对目标文件20进行粗粒度数据块划分而得到的粗粒度数据块A、以及前述滑动窗口30。此时,滑动窗口30的前边界(即左边界)与粗粒度数据块A的开头对齐,并且滑动窗口30从粗粒度数据块A的开头开始向后滑动,如图4(A)中的向右的箭头所示。这里,为了更便于理解,仍然如图3中所示的示例中那样假设滑动窗口30的长度为48字节,并且单位滑动步长为1字节。也就是说,滑动窗口30以1字节为单位从粗粒度数据块A的开头向后滑动直到粗粒度数据块A的结尾处。而细粒度数据块划分与粗粒数据度块划分的区别在于,细粒度数据块划分采用第二参考值、以及细粒度划分块匹配长度N2。
在如图4所示的细粒度数据块划分中,滑动窗口30每向后滑动1字节都计算当前滑动窗口30所覆盖的粗粒度数据块A的内容的哈希值。具体地,当滑动窗口30从粗粒度数据块A的开头向后滑动了1字节时,首先计算此时滑动窗口30所覆盖的粗粒度数据块A的内容的哈希值,即,粗粒度数据块A的第2-49字节这48字节的哈希值,并且将此哈希值的后N2位与上述第二参考值的后N2位相比较。如果它们不相同,则滑动窗口30继续向后滑动1字节。此时,滑动窗口30所覆盖的粗粒度数据块A的内容是粗粒度数据块A的第3至50字节这48字节,因此计算粗粒度数据块A的第3至50字节这48字节的哈希值,并且也将所计算的哈希值的后N2位与第二参考值的后N2位相比较,如果它们不相同,则滑动窗口30继续向后滑动1字节,并继续进行如上所述哈希值的计算、以及与第二参考值的相比较,以此类推。
如图4(B)中所示,假设滑动窗口30从粗粒度数据块A的开头一直滑动到图4(B)中所示的粗粒度数据块A中的211位置,并且在此位置之前所计算的哈希值的后N2位都与上述第二参考值的后N2位不相同,也就是说,到目前为止仍没有确定任何划分边界。此时,仍然计算当前滑动窗口30所覆盖的粗粒度数据块A的48字节的哈希值,并将其后N2位与第二参考值的后N2位相比较。假设此时计算的哈希值的后N2位与第二参考值的后N2位相同,则确定滑动窗口30的前边界此时所对应的粗粒度数据块A的位置211为第一细粒度数据块划分边界,也就是说划分出了第一个细粒度数据块A1,如图4(B)中所示。并且,滑动窗口30从第一细粒度数据块划分边界211后(也就是从划分边界211的下个字节)开始继续以1字节为单位向后滑动以确定后续的细粒度数据块划分边界。例如,虽然图4中未示出,图2中所示的划分边界212至220可以通过与图4中所示的确定划分边界211类似的步骤确定,这里不再赘述。
应理解,图4中给出的具体的细粒度数据块划分示例仅仅为了举例说明,本发明不限于此。与粗粒度数据块划分类似地,前述滑动窗口长度、单位滑动步长、第二参考值以及细粒度划分块匹配长度N2的具体取值不对本发明构成限制。
进一步可选地,在根据本发明实施例的用于数据去重的方法10中,所述第一参考值与所述第二参考值相同,并且N1大于N2。
具体地,粗粒度划分块匹配长度N1和细粒度划分块匹配长度N2决定粒度的粗或细,也就是说,当它们设置的越大时,参考值与所计算的哈希值所需比较的位数越多,即,匹配条件越苛刻,从而导致所划分出的数据块的尺寸越大,也即粒度越粗。因此,应保证粗粒度划分块匹配长度N1大于细粒度划分块匹配长度N2,以使得粗粒度数据块的尺寸比细粒度数据块的尺寸大。例如,可以假设N1=216,而N2=213
另外,当第一参考值与第二参考值相同且N1大于N2时,在进行粗粒度数据块划分时所计算的哈希值所需进行比较的参考值的后N1位中的后N2位、与在进行细粒度数据块划分时所计算的哈希值所需进行比较的参考值的后N2位完全相同。这意味着,当确定某一粗粒度数据块划分边界时,由于所计算的哈希值的后N1位与参考值的后N1位相同,所以它们的后N2位也必定相同,也就是说,所确定的此粗粒度数据块划分边界也满足细粒度数据块划分边界的边界条件,因此其必定也属于细粒度数据块划分边界。由此,能够确保粗粒度数据块划分不影响数据去重的效果。
应理解,在前述示例中,第一参考值和所计算的哈希值均采用二进制数的形式,然而本发明不限于此,本领域技术人员可以根据实际情况采取任何其它合适的形式,并且,第一参考值和第二参考值可以任取,只要保证它们彼此相同即可。另外,前述N1和N2的取值示例也仅仅为了便于理解,而非对本发明构成限制,本领域技术人员可以根据实际需要采取任何合适的值,只要保证N1大于N2即可。
可选地,虽然图2中未示出,根据本发明实施例的用于数据去重的方法10中的步骤S102和S104可以包括如下子步骤:基于每个所划分的数据块的哈希值,进行重复数据块检测。也就是说,在进行重复数据块检测时不需要对数据块本身进行操作,而是对它们的哈希值进行操作。这样,可以减少需要传输和处理的数据量,从而减轻系统负荷等。
应理解,上述基于哈希值进行重复数据块检测的方法仅仅是一种实现方式,本发明不限于此,本领域技术人员可以根据实际情况采用任何合适的重复数据块检测技术。
进一步可选地,虽然图2中未示出,在根据本发明实施例的用于数据去重的方法10中,上述可选子步骤可以进一步包括:将每个所划分的数据块的哈希值与其它数据块的哈希值相比较;以及基于所述比较的结果,判定每个所划分的数据块是否为重复数据块,其中,所述其它数据块包括其余所划分的数据块、以及已存储的数据块。并且,在步骤S102之前,还可以包括步骤:对所述多个粗粒度数据块的每个计算哈希值;以及生成粗粒度数据块列表,其记录有每个粗粒度数据块的序号和哈希值。并且,在步骤S104之前,还可以包括步骤:对所述多个细粒度数据块的每个计算哈希值;以及生成细粒度数据块列表,其记录有每个细粒度数据块的序号和哈希值。并且其中,所述第一结果是不重复的粗粒度数据块的序号列表,并且所述第二结果是不重复的细粒度数据块的序号列表。
具体地,仍参见图2,在步骤S102对粗粒度数据块A、B、C和D进行重复数据块检测之前,首先对每个粗粒度数据块A、B、C和D都分别计算哈希值,并且生成记录有每个粗粒度数据块的序号和哈希值的粗粒度数据块列表。这里,假设粗粒度数据块A的序号为A且哈希值为a,粗粒度数据块B的序号为B且哈希值为b,粗粒度数据块C的序号为C且哈希值为c,以及粗粒度数据块D的序号为D且哈希值为d,则粗粒度数据块列表例如可以为{A,a;B,b;C,c;D,d}的形式。于是,在步骤S102中,就可以基于此粗粒度数据块的列表中的各个粗粒度数据块的哈希值,来进行重复数据块检测。
更具体地,在步骤S102中,将a、b、c和d分别与其它数据块的哈希值进行比较,如果比较结果为相同,则认为该数据块与所比较的数据块重复。如前所述,所述其它数据块既可以是其余所划分的数据块、也可以是已存储的数据块。例如,当与已经存储的数据块的哈希值进行比较时,即分别将a、b、c和d与例如存储元件中已经存储的数据块的哈希值进行比较。如果比较的结果为相同,就认为它们与已经存储的某个数据块重复了,则将它们判定为重复数据块。例如,如图2中所示,当c与已经存储的某个数据块的哈希值相同时,则判定粗粒度数据块C为重复数据块,其将不再进行细粒度数据块划分。并且,可以生成不重复的粗粒度数据块的序号列表,例如{A;B;D},以便后续步骤S103可以根据此列表对粗粒度数据块A、B、D进行进一步的细粒度数据块划分。
另外,当将每个所划分的粗粒度数据块与其余所划分的粗粒度数据块相比较时,即将a、b、c和d两两相互比较。如果比较结果为相同,则判定进行比较的两个粗粒度数据块其中之一为重复数据块。更具体地,仍参见图2,对于通过步骤S101所划分出的粗粒度数据块A、B、C和D来说,还可能存在另一种情况:例如,当粗粒度数据块C的哈希值c与其它三个粗粒度数据块A、B和D的哈希值a、b和d中至少一个相同时,则判定粗粒度数据块B为重复数据块,其将不再进行细粒度数据块划分。同样地,在此情况下也可以生成不重复的粗粒度数据块的序号列表,例如{A;B;D},以便后续步骤S103可以根据此列表对粗粒度数据块A、B、D进行进一步的细粒度数据块划分。
同样地,仍参见图2,在步骤S104对细粒度数据块A1、A2、A3、B1、B2、B3、B4、D1、D2和D3进行重复数据块检测之前,首先对每个细粒度数据块A1、A2、A3、B1、B2、B3、B4、D1、D2和D3都分别计算哈希值,并且生成记录有每个细粒度数据块的序号和哈希值的细粒度数据块列表。这里,假设细粒度数据块A1的序号为A1且哈希值为a1,细粒度数据块A2的序号为A2且哈希值为a2,细粒度数据块A3的序号为A3且哈希值为a3,细粒度数据块B1的序号为B1且哈希值为b1,细粒度数据块B2的序号为B2且哈希值为b2,细粒度数据块B3的序号为B3且哈希值为b3,细粒度数据块B4的序号为B4且哈希值为b4,细粒度数据块D1的序号为D1且哈希值为d1,细粒度数据块D2的序号为D2且哈希值为d2,以及细粒度数据块D3的序号为D3且哈希值为d3,则细粒度数据块列表例如可以为{A1,a1;A2,a2;A3,a3;B1,b1;B2,b2;B3,b3;B4,b4;D1,d1;D2,d2;D3,d3}的形式。于是,在步骤S104中,就可以基于此细粒度数据块的列表中的各个细粒度数据块的哈希值,来进行重复数据块检测。
更具体地,在步骤S104中分别将a1、a2、a3、b1、b2、b3、b4、d1、d2和d3与其它数据块的哈希值进行比较,如果比较结果为相同,则认为该数据块与所比较的数据块重复。如前所述,所述其它数据块既可以是其余所划分的数据块、也可以是已存储的数据块。例如,当与已经存储的数据块的哈希值进行比较时,即分别将a1、a2、a3、b1、b2、b3、b4、d1、d2和d3与例如存储元件中已经存储的数据块的哈希值进行比较。如果比较的结果为相同,就认为它们与已经存储的某个数据块重复了,则将它们判定为重复数据块。例如,如图2中所示,当a3、b2分别与已经存储的某个数据块的哈希值相同时,则判定细粒度数据块A3和B2为重复数据块,它们将不被存储到存储元件中。并且,可以生成不重复的细粒度数据块的序号列表,例如{A1;A2;B1;B3;B4;D1;D2;D3},以便后续步骤S105可以根据此列表仅对细粒度数据块A1、A2、B1、B3、B4、D1、D2、D3进行存储。
另外,当将每个所划分的细粒度数据块与其余所划分的细粒度数据块相比较时,即将a1、a2、a3、b1、b2、b3、b4、d1、d2和d3两两相互比较。如果比较结果为相同,则判定进行比较的两个粗粒度数据块其中之一为重复数据块。更具体地,仍参见图2,对于通过步骤S103所划分出的细粒度数据块A1、A2、A3、B1、B2、B3、B4、D1、D2和D3来说,还可能存在另一种情况:例如,当细粒度数据块A3的哈希值a3与其它细粒度数据块A1、A2、B1、B2、B3、B4、D1、D2和D3的哈希值a1、a2、b1、b2、b3、b4、d1、d2和d3中至少一个相同时,则判定细粒度数据块A3为重复数据块,其将不被存储到存储元件中;并且,细粒度数据块B2的哈希值b2与其它细粒度数据块A1、A2、B1、B3、B4、D1、D2和D3的哈希值a1、a2、b1、b3、b4、d1、d2和d3中至少一个相同时,则判定细粒度数据块B2为重复数据块,其将不被存储到存储元件中。在此情况下,同样可以生成不重复的细粒度数据块的序号列表,例如{A1;A2;B1;B3;B4;D1;D2;D3},以便后续步骤S105可以根据此列表仅对细粒度数据块A1、A2、B1、B3、B4、D1、D2、D3进行存储。
应理解,在进行重复数据块检测时,将所划分的数据块与已经存储的数据块进行比较、以及将所划分的数据块彼此进行比较,哪个先执行均可,即,它们的执行顺序不对本发明构成限制。
通过上述可选步骤,仅基于数据块的哈希值进行重复数据检测,并且采用粗粒度/细粒度数据块列表、以及它们不重复的序号列表,可以减少进行传输和操作的数据量,减轻系统负荷。
以上参照图1-4描述了本发明的一个实施例的用于数据去重的方法10。在所述方法10中,通过采用分级数据块划分,能够在不牺牲去重效果的同时,提高系统性能。
下面,将参照图5描述根据本发明另一实施例的用于数据去重的装置50。图5是图示根据本发明另一实施例的用于数据去重的装置50的配置框图。
如图5所示,根据本发明实施例的用于数据去重的装置50可以包括粗粒度数据块划分单元510、重复数据块检测单元520、细粒度数据块划分单元530、以及存储单元540。
粗粒度数据块划分单元510对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块。重复数据块检测单元520对所述多个粗粒度数据块进行重复数据块检测,获得第一结果。细粒度数据块划分单元530基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块。重复数据块检测单元520还对所述多个细粒度数据块进行重复数据块检测,获得第二结果。存储单元540基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块。在用于数据去重的装置50中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
可选地,粗粒度数据块划分单元510还:使滑动窗口从所述目标文件的开头以单位滑动步长向后滑动,并且每移动一个单位滑动步长,计算此时被所述滑动窗口覆盖的所述目标文件的内容的哈希值;将所计算的哈希值的后N1位与第一参考值的后N1位相比较,其中所述N1表示粗粒度划分块匹配长度并且是大于或等于1的整数;以及如果所述哈希值的后N1位与所述第一参考值的后N1位相同,则将此时所述滑动窗口的前边界所对应的所述目标文件的位置确定为第一粗粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的粗粒度数据块划分边界。
进一步可选地,细粒度数据块划分单元530还:对于不重复的粗粒度数据块的每个,使所述滑动窗口从所述粗粒度数据块的开头以单位滑动步长向后滑动,并且每移动一个单位滑动步长,计算此时被所述滑动窗口覆盖的所述粗粒度数据块的内容的哈希值;将所计算的哈希值的后N2位与第二参考值的后N2位相比较,其中所述N2表示细粒度划分块匹配长度并且是大于或等于1的整数;以及如果所述哈希值的后N2位与所述第二参考值的后N2位相同,则将此时所述滑动窗口的前边界所对应的所述粗粒度数据块的位置确定为第一细粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的细粒度数据块划分边界。
进一步可选地,所述第一参考值与所述第二参考值相同,并且N1大于N2。
可选地,重复数据块检测单元520可以基于每个所划分的数据块的哈希值,进行重复数据块检测。
进一步可选地,重复数据块检测单元520可以将每个所划分的数据块的哈希值与其它数据块的哈希值相比较;以及基于所述比较的结果,判定每个所划分的数据块是否为重复数据块,其中,所述其它数据块包括其余所划分的数据块、以及已存储的数据块。并且,粗粒度数据块划分单元510还可以对所述多个粗粒度数据块的每个计算哈希值;以及生成粗粒度数据块列表,其记录有每个粗粒度数据块的序号和哈希值。并且,细粒度数据块划分单元530还可以对所述多个细粒度数据块的每个计算哈希值;以及生成细粒度数据块列表,其记录有每个细粒度数据块的序号和哈希值。并且其中,所述第一结果是不重复的粗粒度数据块的序号列表,并且所述第二结果是不重复的细粒度数据块的序号列表。
所述用于数据去重的装置50的各单元的配置和具体操作已经在参照图1-4所述的用于数据去重的方法10中详细描述,在此不再重复。在所述用于数据去重的装置50中,通过采用分级数据块划分,能够在不牺牲去重效果的同时,提高系统性能。并且,通过仅基于数据块的哈希值进行重复数据检测,并且采用粗粒度/细粒度数据块列表、以及它们不重复的序号列表,可以在粗粒度数据块划分单元510、重复数据块检测单元520、细粒度数据块划分单元530之间仅传输上述列表、而无需进行数据块的传输,从而减少进行传输和操作的数据量,减轻系统负荷。
图5中示出了将粗粒度数据块划分单元510、重复数据块检测单元520、细粒度数据块划分单元530、以及存储单元540均包含在用于数据去重的装置50中的情况,然而这仅仅是一种实现方式,本发明不限于此,这些单元也可以以单独的装置实现、或者以不同的组合方式实现。例如,用于数据去重的装置50可以不包括重复数据块检测单元520,此时,重复数据块检测功能可以通过例如服务器的外部装置来实现。另外可选地,用于数据去重的装置50可以不包括存储单元540,即,可以将最终不重复的数据块存储到外部存储装置上。
下面,将参照图6描述根据本发明又一实施例的用于数据去重的系统60。图6是图示根据本发明又一实施例的用于数据去重的系统60的配置框图。
如图6所示,根据本发明实施例的用于数据去重的系统60可以包括彼此通信的数据块划分装置610、重复数据块检测装置620以及存储装置630。并且,数据块划分装置610进一步包括粗粒度数据块划分单元6110和细粒度数据块划分单元6120。例如,数据块划分装置610可以诸如客户端等,重复数据块检测装置620可以诸如远程服务器等,而存储装置630可以诸如各种存储元件等。数据块划分装置610、重复数据块检测装置620以及存储装置630可以例如经由诸如无线、有线等任何合适的通信方式彼此通信。
粗粒度数据块划分单元6110对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块。重复数据块检测装置620对所述多个粗粒度数据块进行重复数据块检测,获得第一结果。细粒度数据块划分单元6120基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块。重复数据块检测装置620对所述多个细粒度数据块进行重复数据块检测,获得第二结果。存储装置630基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块。其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
如前所述,由于重复数据块检测装置620进行重复数据检测时不需要对数据块本身进行比较,而是比较其哈希值。因此,可选地,粗粒度数据块划分单元6110在将所述目标文件划分为多个粗粒度数据块之后,还可以生成记录有每个粗粒度数据块的序号及其所计算的哈希值的粗粒度数据块列表,并将此列表发送给重复数据块检测装置620。这样,重复数据块检测装置620可以如前所述地基于每个粗粒度数据块的哈希值来对其进行重复数据块检测。并且,进一步可选地,所述第一结果可以是不重复的粗粒度数据块的序号列表。重复数据块检测装置620可将此列表发送给数据块划分装置610,以便细粒度数据块划分单元6120可以根据此列表对不重复的粗粒度数据块进行细粒度数据块划分。由此,在数据块划分装置610与重复数据块检测装置620之间不需要传送粗粒度数据块本身,而仅需要传送其序号和哈希值即可。
同理,细粒度数据块划分单元6120在将所述不重复的粗粒度数据块划分为多个细粒度数据块之后,还可以生成记录有每个细粒度数据块的序号及其所计算的哈希值的细粒度数据块列表,并将此列表发送给重复数据块检测装置620。这样,重复数据块检测装置620可以如前所述地基于每个细粒度数据块的哈希值来对其进行重复数据块检测。并且,进一步可选地,所述第二结果可以是不重复的细粒度数据块的序号列表。重复数据块检测装置620可将此列表发送给数据块划分装置610,以便数据块划分装置610可以根据此列表将不重复的细粒度数据块发送至存储装置630以进行存储。由此,在数据块划分装置610与重复数据块检测装置620之间不需要传送细粒度数据块本身,而仅需要传送其序号和哈希值即可。
同样地,由于重复数据块检测装置620进行重复数据检测时不需要对数据块本身进行比较,而是比较其哈希值,因此,重复数据块检测装置620也可以从存储装置630获取其上已经存储的数据块的哈希值列表、而非数据块本身。
所述用于数据去重的系统60的各装置及单元的配置和具体操作已经在参照图1-4的数据传输方法40中详细描述,在此不再重复。在所述数据去重的系统60中,通过采用分级数据块划分,能够在不牺牲去重效果的同时,提高系统性能。
以上,参照图1-6描述了根据本发明实施例的用于数据去重的方法、装置和系统。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在本发明实施例中,单元/模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成单元/模块并且实现该单元/模块的规定目的。
在单元/模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的单元/模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种用于数据去重的方法,包括:
对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;
对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;
基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块;
对所述多个细粒度数据块进行重复数据块检测,获得第二结果;以及
基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,
其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
2.如权利要求1所述的用于数据去重的方法,其中,所述对目标文件进行粗粒度数据块划分包括:
使滑动窗口从所述目标文件的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述目标文件的内容的哈希值;
将所计算的哈希值的后N1位与第一参考值的后N1位相比较,其中所述N1表示粗粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N1位与所述第一参考值的后N1位相同,则将此时所述滑动窗口的前边界所对应的所述目标文件的位置确定为第一粗粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的粗粒度数据块划分边界。
3.如权利要求2所述的用于数据去重的方法,其中,所述对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分包括:
对于不重复的粗粒度数据块的每个,使所述滑动窗口从所述粗粒度数据块的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述粗粒度数据块的内容的哈希值;
将所计算的哈希值的后N2位与第二参考值的后N2位相比较,其中所述N2表示细粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N2位与所述第二参考值的后N2位相同,则将此时所述滑动窗口的前边界所对应的所述粗粒度数据块的位置确定为第一细粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的细粒度数据块划分边界。
4.如权利要求3所述的用于数据去重的方法,其中,所述第一参考值与所述第二参考值相同,并且N1大于N2。
5.如权利要求1所述的用于数据去重的方法,其中,所述进行重复数据块检测包括:
基于每个所划分的数据块的哈希值,进行重复数据块检测。
6.如权利要求5所述的用于数据去重的方法,其中,基于每个所划分的数据块的哈希值进行重复数据块检测包括:
将每个所划分的数据块的哈希值与其它数据块的哈希值相比较;以及
基于所述比较的结果,判定每个所划分的数据块是否为重复数据块,其中
所述其它数据块包括其余所划分的数据块、以及已存储的数据块,并且
其中,对所述多个粗粒度数据块进行重复数据块检测之前,还包括:
对所述多个粗粒度数据块的每个计算哈希值;以及
生成粗粒度数据块列表,其记录有每个粗粒度数据块的序号和哈希值,并且
其中,对所述多个细粒度数据块进行重复数据块检测之前,还包括:
对所述多个细粒度数据块的每个计算哈希值;以及
生成细粒度数据块列表,其记录有每个细粒度数据块的序号和哈希值,并且
其中,所述第一结果是不重复的粗粒度数据块的序号列表,并且所述第二结果是不重复的细粒度数据块的序号列表。
7.一种用于数据去重的装置,包括:
粗粒度数据块划分单元,对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;
重复数据块检测单元,对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;
细粒度数据块划分单元,基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块,其中
所述重复数据块检测单元还对所述多个细粒度数据块进行重复数据块检测,获得第二结果,并且
所述用于数据去重的装置还包括:
存储单元,基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,
其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
8.如权利要求7所述的用于数据去重的装置,其中,所述粗粒度数据块划分单元还:
使滑动窗口从所述目标文件的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述目标文件的内容的哈希值;
将所计算的哈希值的后N1位与第一参考值的后N1位相比较,其中所述N1表示粗粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N1位与所述第一参考值的后N1位相同,则将此时所述滑动窗口的前边界所对应的所述目标文件的位置确定为第一粗粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的粗粒度数据块划分边界。
9.如权利要求8所述的用于数据去重的装置,其中,所述细粒度数据块划分单元还:
对于不重复的粗粒度数据块的每个,使所述滑动窗口从所述粗粒度数据块的开头以单位滑动步长向后滑动,并且
每移动一个单位滑动步长,
计算此时被所述滑动窗口覆盖的所述粗粒度数据块的内容的哈希值;
将所计算的哈希值的后N2位与第二参考值的后N2位相比较,其中所述N2表示细粒度划分块匹配长度并且是大于或等于1的整数;以及
如果所述哈希值的后N2位与所述第二参考值的后N2位相同,则将此时所述滑动窗口的前边界所对应的所述粗粒度数据块的位置确定为第一细粒度数据块划分边界,并且所述滑动窗口从所述第一粗粒度数据块划分边界后开始继续以所述单位滑动步长向后滑动以确定后续的细粒度数据块划分边界。
10.如权利要求9所述的用于数据去重的装置,其中,所述第一参考值与所述第二参考值相同,并且N1大于N2。
11.如权利要求7所述的用于数据去重的装置,其中,所述重复数据块检测单元基于每个所划分的数据块的哈希值,进行重复数据块检测。
12.如权利要求11所述的用于数据去重的装置,其中,所述重复数据块检测单元将每个所划分的数据块的哈希值与其它数据块的哈希值相比较;以及基于所述比较的结果,判定每个所划分的数据块是否为重复数据块,其中,所述其它数据块包括其余所划分的数据块、以及已存储的数据块,并且
其中,所述粗粒度数据块划分单元还对所述多个粗粒度数据块的每个计算哈希值;以及生成粗粒度数据块列表,其记录有每个粗粒度数据块的序号和哈希值,并且
其中,所述细粒度数据块划分单元还对所述多个细粒度数据块的每个计算哈希值;以及生成细粒度数据块列表,其记录有每个细粒度数据块的序号和哈希值,并且
其中,所述第一结果是不重复的粗粒度数据块的序号列表,并且所述第二结果是不重复的细粒度数据块的序号列表。
13.一种用于数据去重的系统,包括彼此通信的数据块划分装置、重复数据块检测装置以及存储装置,并且所述数据块划分装置包括粗粒度数据块划分单元和细粒度数据块划分单元,其中
所述粗粒度数据块划分单元对目标文件进行粗粒度数据块划分,以将所述目标文件划分为多个粗粒度数据块;
所述重复数据块检测装置,对所述多个粗粒度数据块进行重复数据块检测,获得第一结果;
所述细粒度数据块划分单元,基于所述第一结果,对所述多个粗粒度数据块中不重复的粗粒度数据块的每个进行细粒度数据块划分,以将所述不重复的粗粒度数据块划分为多个细粒度数据块;
所述重复数据块检测装置对所述多个细粒度数据块进行重复数据块检测,获得第二结果;以及
所述存储装置基于所述第二结果,存储所述多个细粒度数据块中不重复的细粒度数据块,
其中,每个所述粗粒度数据块的尺寸大于每个所述细粒度数据块的尺寸,并且所述粗粒度数据块划分的划分边界属于所述细粒度数据块划分的划分边界。
CN201610144151.3A 2016-03-14 2016-03-14 用于数据去重的方法、装置和系统 Pending CN105808169A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610144151.3A CN105808169A (zh) 2016-03-14 2016-03-14 用于数据去重的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610144151.3A CN105808169A (zh) 2016-03-14 2016-03-14 用于数据去重的方法、装置和系统

Publications (1)

Publication Number Publication Date
CN105808169A true CN105808169A (zh) 2016-07-27

Family

ID=56468209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610144151.3A Pending CN105808169A (zh) 2016-03-14 2016-03-14 用于数据去重的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN105808169A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980680A (zh) * 2017-03-30 2017-07-25 联想(北京)有限公司 数据存储方法及存储设备
CN107644081A (zh) * 2017-09-21 2018-01-30 锐捷网络股份有限公司 数据去重方法及装置
CN108256433A (zh) * 2017-12-22 2018-07-06 银河水滴科技(北京)有限公司 一种运动姿态评估方法及系统
CN108319624A (zh) * 2017-01-18 2018-07-24 腾讯科技(深圳)有限公司 数据加载方法及装置
CN109582640A (zh) * 2018-11-15 2019-04-05 深圳市酷开网络科技有限公司 一种基于滑动窗口的数据去重存储方法、装置及存储介质
CN111352587A (zh) * 2020-02-24 2020-06-30 苏州浪潮智能科技有限公司 一种数据打包方法、装置
CN112015791A (zh) * 2019-05-30 2020-12-01 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
CN112287391A (zh) * 2020-11-18 2021-01-29 广东新禾道信息科技有限公司 基于区块链的数据安全存储方法及系统
CN113472609A (zh) * 2020-05-25 2021-10-01 汪永强 一种用于无线通信的数据重复发送标记系统
CN116910051A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156727A (zh) * 2011-04-01 2011-08-17 华中科技大学 一种采用双指纹哈希校验的重复数据删除方法
CN102185889A (zh) * 2011-03-28 2011-09-14 北京邮电大学 基于iSCSI的重复数据删除方法
CN102214210A (zh) * 2011-05-16 2011-10-12 成都市华为赛门铁克科技有限公司 重复数据处理方法、装置和系统
CN104813310A (zh) * 2012-09-05 2015-07-29 印度理工学院卡哈拉格普尔分校 多级别内联数据去重

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185889A (zh) * 2011-03-28 2011-09-14 北京邮电大学 基于iSCSI的重复数据删除方法
CN102156727A (zh) * 2011-04-01 2011-08-17 华中科技大学 一种采用双指纹哈希校验的重复数据删除方法
CN102214210A (zh) * 2011-05-16 2011-10-12 成都市华为赛门铁克科技有限公司 重复数据处理方法、装置和系统
CN104813310A (zh) * 2012-09-05 2015-07-29 印度理工学院卡哈拉格普尔分校 多级别内联数据去重

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾志凯 等: "一种并行层次化的重复数据删除技术", 《计算机研究与发展》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319624A (zh) * 2017-01-18 2018-07-24 腾讯科技(深圳)有限公司 数据加载方法及装置
CN108319624B (zh) * 2017-01-18 2022-04-26 腾讯科技(深圳)有限公司 数据加载方法及装置
CN106980680B (zh) * 2017-03-30 2020-11-20 联想(北京)有限公司 数据存储方法及存储设备
CN106980680A (zh) * 2017-03-30 2017-07-25 联想(北京)有限公司 数据存储方法及存储设备
CN107644081A (zh) * 2017-09-21 2018-01-30 锐捷网络股份有限公司 数据去重方法及装置
CN108256433A (zh) * 2017-12-22 2018-07-06 银河水滴科技(北京)有限公司 一种运动姿态评估方法及系统
CN109582640A (zh) * 2018-11-15 2019-04-05 深圳市酷开网络科技有限公司 一种基于滑动窗口的数据去重存储方法、装置及存储介质
CN109582640B (zh) * 2018-11-15 2020-12-01 深圳市酷开网络科技有限公司 一种基于滑动窗口的数据去重存储方法、装置及存储介质
CN112015791A (zh) * 2019-05-30 2020-12-01 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
WO2020238750A1 (zh) * 2019-05-30 2020-12-03 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
CN112015791B (zh) * 2019-05-30 2024-06-07 阿里云计算有限公司 数据处理方法、装置、电子设备及计算机存储介质
US12093234B2 (en) 2019-05-30 2024-09-17 Alibaba Group Holding Limited Data processing method, apparatus, electronic device, and computer storage medium
CN111352587A (zh) * 2020-02-24 2020-06-30 苏州浪潮智能科技有限公司 一种数据打包方法、装置
CN113472609A (zh) * 2020-05-25 2021-10-01 汪永强 一种用于无线通信的数据重复发送标记系统
CN113472609B (zh) * 2020-05-25 2024-03-19 汪永强 一种用于无线通信的数据重复发送标记系统
CN112287391A (zh) * 2020-11-18 2021-01-29 广东新禾道信息科技有限公司 基于区块链的数据安全存储方法及系统
CN116910051A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN116910051B (zh) * 2023-09-13 2024-01-02 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105808169A (zh) 用于数据去重的方法、装置和系统
KR102284972B1 (ko) 데이터 처리 방법 및 디바이스
CN109426649B (zh) 用于在代理网格架构中处理网络分组的技术
JP6804668B2 (ja) ブロックデータ検証方法および装置
US11532117B2 (en) Density coordinate hashing for volumetric data
US20210342103A1 (en) Method and apparatus for performing multi-object transformations on a storage device
CN104281533B (zh) 一种存储数据的方法及装置
US20220222274A1 (en) Technologies for providing dynamic persistence of data in edge computing
CN106878382B (zh) 一种分布式仲裁集群中动态改变集群规模的方法及装置
US20190050367A1 (en) Technologies for selectively excluding user data from machine learning operations
CN108073687A (zh) 随机游走、基于集群的随机游走方法、装置以及设备
CN105528183A (zh) 一种存储数据的方法及存储设备
CN111445027B (zh) 机器学习模型的训练方法和装置
CN105204782B (zh) 一种实现数据存储的方法及装置
US9684751B2 (en) Slack redistribution for additional power recovery
US11250001B2 (en) Accurate partition sizing for memory efficient reduction operations
WO2023104183A1 (en) Methods and systems for event management
CN106776600A (zh) 文本聚类的方法及装置
CN106445960A (zh) 一种数据聚类方法和装置
CN110085284B (zh) 一种面向ssd的基因对比方法及系统
CN104933010A (zh) 一种重复数据删除方法和装置
CN105183531A (zh) 分布式开发平台及其计算方法
CN104932982A (zh) 一种消息访存的编译方法及相关装置
KR102225745B1 (ko) 제한된 메모리 하에 확률적 콘텐츠 저장 방법 및 그 시스템
JP2018500650A (ja) データファイルの存在を判定するための方法、装置、及びシステム

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: 20160727