CN104012055B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN104012055B CN104012055B CN201280002719.8A CN201280002719A CN104012055B CN 104012055 B CN104012055 B CN 104012055B CN 201280002719 A CN201280002719 A CN 201280002719A CN 104012055 B CN104012055 B CN 104012055B
- Authority
- CN
- China
- Prior art keywords
- point
- data
- cryptographic hash
- location
- window
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000006062 fragmentation reaction Methods 0.000 claims description 48
- 238000013467 fragmentation Methods 0.000 claims description 47
- 238000003672 processing method Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 9
- 239000012634 fragment Substances 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000013144 data compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
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
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着信息化社会的飞速发展,需要存储或传输的数据呈指数级增长,数据占用的空间急剧膨胀,但是用于数据存储的容量空间与用于数据传输的网络带宽却受限于存储系统和网络设备高昂的架设、管理以及维护成本而难以与当今庞大的数据量相匹配。在数据存储或网络传输过程中存在大量的重复数据。为了缓解数据量飞快增长与硬件设施更新缓慢之间的矛盾,可采用数据去重(Data Deduplication,简称DD)压缩技术对数据进行压缩处理。区别于视频、音频、图像以及其它通用的数据压缩技术,DD压缩技术不仅关注数据对象内部数据的重复,还关注数据对象之间数据的重复。其处理流程如下:预先将数据对象切割成片,并建立数据分片及其特征索引库。当相同的数据分片再次出现时,使用较短的分片索引代替较长的分片数据,从而实现存储或传输的数据压缩,达到节省存储空间或提升传输带宽利用率的效果。其中,数据分片是DD压缩过程的关键环节,数据分片方法的优劣将直接影响DD压缩技术的效果和性能。
现有技术中采用的基于极值分片的方法来进行数据的处理。该方法通过构造沿数据流按字节滑动的数据窗口,连续对数据窗口内的数据进行哈希计算,从中筛选出在特定范围内的极值,然后提取相邻极值点之间的数据组合成数据分片。首先,由于该方法以字节为单位对数据进行处理,当两个极值点距离很近时,容易产生较短的数据分片,极端情况下还有可能获得单字节的数据分片。这些较短的数据分片与分片索引在长度上相差不大,甚至更短,难以实现数据压缩,反而使得DD压缩效果不断恶化;其次,对于较短的数据分片,其管理与维护成本与正常数据分片一样,无形中带来了管理与维护成本的提升;最后,该方法必须遍历数据对象中的每个字节,因此数据处理性能较低。
发明内容
本发明实施例提供了一种数据处理方法及装置,可提升数据去重的效果,提高数据处理的效率,降低数据分片的管理和维护成本。
本发明实施例第一方面提供一种数据处理方法,可包括:
构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述数据窗口滑动时,判断所述数据窗口中心位置对应数据的哈希值是否为极值;
若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
在第一种可能的实现方式中,所述极值包括极大值和极小值。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,判断所述数据窗口中心位置数据对应的哈希值是否为极值,可包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,判断所述数据窗口中心位置数据对应的哈希值是否为极值,可包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第一方面或第一方面的第一种可能的实现方式,在第四种可能的实现方式中,判断所述数据窗口中心位置数据对应的哈希值是否为极值,可包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第一方面或第一方面的第一种可能的实现方式,在第五种可能的实现方式中,判断所述数据窗口中心位置数据对应的哈希值是否为极值,可包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第一方面或结合第一方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,在确定所述中间极值点之前,还可包括:
将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
结合第一方面的第六或第七种可能的实现方式,在第八种可能的实现方式中,所述最小单位对应的整数为无符号整数。
结合第一方面或结合第一方面的第一或第二或第三或第四或第五或第六或第七或第八种可能的实现方式,在第九种可能的实现方式中,提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片之后,还可包括:
对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
若不存在,则存储所述数据分片及对应的数据签名;
若已存在,则不存储所述数据分片及对应的数据签名。
结合第一方面或结合第一方面的第一或第二或第三或第四或第五或第六或第七或第八或第九种可能的实现方式,在第十种可能的实现方式中,所述数据可以为网络数据或存储数据。
本发明实施例第二方面提供一种数据处理装置,可包括:
窗口构造单元,用于构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
极值判断单元,用于所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
数据切片单元,用于提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
在第一种可能的实现方式中,所述极值包括极大值和极小值。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述极值判断单元可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述极值判断单元可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第二方面或第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述极值判断单元可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第二方面或第二方面的第一种可能的实现方式,在第五种可能的实现方式中,所述极值判断单元可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述装置还可包括:
字节扩展单元,用于在确定所述中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
结合第二方面的第六或第七种可能的实现方式,在第八种可能的实现方式中,所述最小单位对应的整数为无符号整数。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五或第六或第七或第八种可能的实现方式,在第九种可能的实现方式中,所述装置还可包括:
计算单元,用于对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
检索单元,用于在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
存储单元,用于当所述检索单元判定所述数据签名不存在时,存储所述数据分片及对应的数据签名,若所述数据签名已存在,则不存储所述数据分片及对应的数据签名。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五或第六或第七或第八或第九种可能的实现方式,在第十种可能的实现方式中,所述数据可以为网络数据或存储数据。
本发明实施例第三方面提供一种数据处理装置,可包括:
处理器及与所述处理器相配合的存储器;
所述存储器用于存储所述处理器执行的程序、极值点信息及数据分片;
所述处理器用于执行以下步骤:
构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;
若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
在第一种可能的实现方式中,所述极值包括极大值和极小值。
结合第三方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第三方面或结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述处理器可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第三方面或结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述处理器可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第三方面或结合第一方面的第一种可能的实现方式,在第五种可能的实现方式中,所述处理器可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
结合第三方面或结合第三方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述处理器还可用于:
在确定所述中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个无符号整数,N>1;所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
结合第三方面或结合第三方面的第一或第二或第三或第四或第五或第六种可能的实现方式,在第七种可能的实现方式中,所述处理器可更进一步用于:
对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
若不存在,则存储所述数据分片及对应的数据签名;
若已存在,则不存储所述数据分片及对应的数据签名。
实施本发明实施例,具有如下有益效果:
通过确定数据窗口的滑动,筛选出数据流中符合中间极值特征的中间极值点,并根据得到的中间极值点进行后续的数据切片,对数据只有一次比较的处理过程,因为数据处理的效率较高,且得到的数据分片至少大于半个数据窗口,避免了切割出大量的较短数据分片而带来的数据去重效果差、管理成本高的缺点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据处理方法的第一实施例的流程示意图;
图2为本发明数据处理方法的第二实施例的流程示意图;
图3为本发明数据处理方法中判断中间极值点的第一实施例的流程示意图;
图4为本发明数据处理方法中判断中间极值点的第二实施例的流程示意图;
图5为本发明数据处理方法中判断中间极值点的第三实施例的流程示意图;
图6为本发明数据处理方法中判断中间极值点的第四实施例的流程示意图;
图7为本发明数据处理装置的第一实施例的组成示意图;
图8为本发明数据处理装置的第二实施例的组成示意图;
图9为本发明数据处理装置的第三实施例的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,为本发明数据处理方法的第一实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S101,构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节。
具体地,为了满足后续中间极值点的特征,所述数据窗口的长度必须可以包含奇数个字节。
S102,所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值。若是,则执行步骤S103,否则执行步骤S105。
具体地,可以对数据流中的数据分别做哈希计算得到每个数据相应的哈希值。当然也可以采用其他的方式对数据进行数字标记,然后利用寻找中间极值点的原理进行后续的数据处理。
S103,确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点。
具体地,所述极值包括极大值和极小值。当采用极大值进行数据处理时,所述中间极值点比所述数据窗口中的所有数都大,当采用极小值进行数据处理时,所述中间极值点比所述数据窗口中的所有数都小。
优选地,在确定所述中间极值点之前,还可包括:
将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
由于单字节只有256种变化,数据窗口的大小将被限制在一个狭小的范围内,中间极值的特征较难满足;相对于选择单字节作为数据处理的最小单位,将每个字节进行扩展后,变化增多,中间极值的特征更容易满足,且扩展后不但将字节的大小,还将字节的排序,纳入重复数据识别的范畴,适于重复数据的深度挖掘。
更优选地,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。例如,当操作系统为64位时,则可以将N设为8,因为64位操作系统数据处理的字长为8,当两者相等时,有利于提升数据处理的效率。
更优选地,所述最小单位对应的整数为无符号整数。通过实测分析发现,选择无符号整数,由无符号中间极值提取的分片数据长度的分布相比有符号中间极值更加均匀,也更加集中,这样有利于数据分片的管理与维护,同时有利于分片数据的再次命中。
S104,提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
所有的有效数据分片结合无效数据分片则构成了完整的数据流。
S105,所述数据窗口继续滑动以确定第一个中间极值点。
通过确定数据窗口的滑动,筛选出数据流中符合中间极值特征的中间极值点,并根据得到的中间极值点进行后续的数据切片,只有一次比较的处理过程,因为数据处理的效率较高,且得到的数据分片至少大于半个数据窗口,避免了切割出大量的较短数据分片而带来的数据去重效果差、管理成本高的缺点。
请参照图2,为本发明数据处理方法的第二实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S201,构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节。
S202,所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值。若是,则执行步骤S203,否则执行步骤S205。S203,确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点。
优选地,在确定所述中间极值点之前,还可包括:
将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。所述最小单位对应的整数为无符号整数。
这样,切割的数据分片可以随数据内容动态调整,因此对数据的增、删、改或错位等变化非常敏感,有利于重复数据的深度挖掘,提升数据的重复命中率。
S204,提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
数据分片的长度始终大于半个数据窗口大小,而且分布更加均匀,也更加集中,因此数据去重效果更优。
S205,所述数据窗口继续滑动以确定第一个中间极值点。
S206,对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名。
S207,在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在。若存在,则执行步骤S208,否则执行步骤S209。
S208,不存储所述数据分片及对应的数据签名。
S209,存储所述数据分片及对应的数据签名。
基于数据分片粒度进行存取和检索,不存在存储设备访问性能的瓶颈,而且使用分片索校验分片数据一致性,数据处理性能更高。对需要处理的字节只有一次比较操作,使得数据处理效率较高;基于数据内容进行数据分片,对数据的变化十分敏感,确保了重复的分片数据在数据中心只会存储一份,不会消耗额外的存储空间,减少了数据库的管理与维护成本。
请参照图3,为本发明数据处理方法中判断中间极值点的第一实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S301,确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a。
所述数据窗口可以从数据流的起始点即a=0的位置开始滑动,当然,也可以从数据流的其他任意位置开始滑动。
S302,当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值。
S303,若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点。
S304,比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值。
S305,若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点。
其中,a、b、x、y均为自然数。
请参照图4,为本发明数据处理方法中判断中间极值点的第二实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S401,确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a。
S402,当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值。
S403,若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点。
S404,比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值。
S405,若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点。
其中,a、b、x、y均为自然数。
请参照图5,为本发明数据处理方法中判断中间极值点的第三实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S501,确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a。
S502,当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值。
S503,若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点。
S504,比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值。
S505,若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点。
其中,a、b、x、y均为自然数。
请参照图6,为本发明数据处理方法中判断中间极值点的第四实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S601,确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a。
S602,当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值。
S603,若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点。
S604,比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值。
S605,若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点。
其中,a、b、x、y均为自然数。
请参照图7,为本发明数据处理装置的第一实施例的组成示意图;在本实施例中,所述装置包括:窗口构造单元100、极值判断单元200及数据切片单元300。
所述窗口构造单元100用于构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述极值判断单元200用于所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
所述数据切片单元300用于提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
具体地,所述极值包括极大值和极小值。
所述极值判断单元200可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述极值判断单元200可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述极值判断单元200可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述极值判断单元可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
请参照图8,为本发明数据处理装置的第二实施例的组成示意图;在本实施例中,所述装置包括:窗口构造单元100、极值判断单元200、数据切片单元300、字节扩展单元400、计算单元500、检索单元600及存储单元700。
所述字节扩展单元用于在确定所述中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
优选地,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
更优选地,所述最小单位对应的整数为无符号整数。
所述计算单元500用于对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
所述检索单元600用于在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
所述存储单元700用于当所述检索单元判定所述数据签名不存在时,存储所述数据分片及对应的数据签名,若所述数据签名已存在,则不存储所述数据分片及对应的数据签名。
其中,所述数据为网络数据或存储数据。
请参照图9,为本发明数据处理装置的第三实施例的组成示意图。在本实施例中,所述装置包括:处理器800及与所述处理器800相配合的存储器900;
所述存储器900用于存储所述处理器800执行的程序、极值点信息及数据分片;
所述处理器800用于执行以下步骤:
构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;
若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
提取相邻中间极值点之间的数据组合成有效数据分片,将所述中间极值点之外的数据作为无效数据分片。
具体地,所述极值包括极大值和极小值。
所述处理器800可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述处理器800可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述处理器800可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
或者,所述处理器800可进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点a对应的数据的哈希值与所述第一中间点a至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
优选地,所述处理器800还可用于:
在确定所述中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个无符号整数,N>1;所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
更优选地,所述处理器800可更进一步用于:
对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
若不存在,则存储所述数据分片及对应的数据签名;
若已存在,则不存储所述数据分片及对应的数据签名。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例中所述的数据处理方法及装置可以广泛应用于网络传输,实现网络数据去重。只需要将数据处理装置分别部署在客户端与服务器的网络侧。
当客户端向服务器上传数据时,上传数据流经客户端数据处理装置,转换成数据分片序列,然后送入网络。在网络中,数据按分片形式进行传输。其中,重复的有效数据分片只传输分片索引,无效数据分片或不重复的有效数据分片才传输原始数据,从而实现网络数据去重。上传数据分片序列通过网络传输,抵达服务器数据处理装置,先恢复成原始的上传数据,再提交服务器处理。
当客户端向服务器下载数据时,下载数据流经服务器数据处理装置,转换成数据分片序列,然后送入网络。在网络中,数据按分片形式进行传输。其中,重复的有效数据分片只传输分片索引,无效数据分片或不重复的有效数据分片才传输原始数据,从而实现网络数据去重。下载数据分片序列通过网络传输,抵达客户端数据处理装置,先恢复成原始的下载数据,再提交客户端处理。
客户端与服务器两端的数据处理装置分别建有数据分片及其特征索引库,二者必须保持一致,才能确保一端发布的分片索引,对端可以解析。
同样的,本发明所述的数据处理方法及装置还可以应用于数据存储,实现存储数据去重。数据处理装置部署在数据中心连接网络侧。
当客户端保存数据时,存储数据流经数据处理装置,转换成数据分片序列,然后提交数据中心存储。在数据中心上,数据按分片形式进行存储。其中,有效数据分片只存储分片索引,无效数据分片才存储原始数据,从而实现存储数据去重。
当客户端获取数据时,数据中心组织相应的数据分片序列,送入数据处理装置进行数据恢复,然后提交客户端处理。数据处理装置建有数据分片及其特征索引库,用以参考将数据中心存储的数据分片予以还原。
本发明所述数据处理方法及装置还可以应用于数据备份,配合数据处理装置实现备份数据去重。数据处理装置部署在服务器连接网络侧。
当服务器备份数据时,备份数据流经数据处理装置,转换成数据分片序列,然后提交备份服务器存储。在备份服务器上,数据按分片形式进行存储。其中有效数据分片只存储分片索引,无效数据分片才存储原始数据,从而实现备份数据去重。
当服务器提取数据时,备份服务器组织相应的数据分片序列,送入数据处理装置进行数据恢复,然后提交服务器处理。数据处理装置建有数据分片及其特征索引库,用以参考将备份服务器存储的数据分片予以还原。
通过上述实施例的描述,本发明具有以下优点:
通过确定数据窗口的滑动,筛选出数据流中符合中间极值特征的中间极值点,并根据得到的中间极值点进行后续的数据切片,对数据只有一次比较的处理过程,因为数据处理的效率较高,且得到的数据分片至少大于半个数据窗口,避免了切割出大量的较短数据分片而带来的数据去重效果差、管理成本高的缺点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (30)
1.一种数据处理方法,其特征在于,包括:
构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;
若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
提取相邻中间极值点之间的数据组合成有效数据分片,将所述相邻中间极值点之外的数据作为无效数据分片。
2.如权利要求1所述的方法,其特征在于,所述极值包括极大值或极小值。
3.如权利要求1或2所述的方法,其特征在于,判断所述数据窗口中心位置数据对应的哈希值是否为极值,包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
4.如权利要求1或2所述的方法,其特征在于,判断所述数据窗口中心位置数据对应的哈希值是否为极值,包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
5.如权利要求1或2所述的方法,其特征在于,判断所述数据窗口中心位置数据对应的哈希值是否为极值,包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
6.如权利要求1或2所述的方法,其特征在于,判断所述数据窗口中心位置数据对应的哈希值是否为极值,包括:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
7.如权利要求1所述的方法,其特征在于,在确定所述第一个中间极值点之前,还包括:
将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
8.如权利要求7所述的方法,其特征在于,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
9.如权利要求8所述的方法,其特征在于,所述最小单位对应的整数为无符号整数。
10.如权利要求1所述的方法,其特征在于,所述提取相邻中间极值点之间的数据组合成有效数据分片,将所述相邻中间极值点之外的数据作为无效数据分片之后,还包括:
对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
若不存在,则存储所述数据分片及对应的数据签名;
若已存在,则不存储所述数据分片及对应的数据签名。
11.如权利要求1所述的方法,其特征在于,所述数据为网络数据或存储数据。
12.一种数据处理装置,其特征在于,包括:
窗口构造单元,用于构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
极值判断单元,用于所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
数据切片单元,用于提取相邻中间极值点之间的数据组合成有效数据分片,将所述相邻中间极值点之外的数据作为无效数据分片。
13.如权利要求12所述的装置,其特征在于,所述极值包括极大值或极小值。
14.如权利要求12或13所述的装置,其特征在于,所述极值判断单元进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
15.如权利要求12或13所述的装置,其特征在于,所述极值判断单元进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
16.如权利要求12或13所述的装置,其特征在于,所述极值判断单元进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
17.如权利要求12或13所述的装置,其特征在于,所述极值判断单元进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
18.如权利要求12所述的装置,其特征在于,所述装置还包括:
字节扩展单元,用于在确定所述第一个中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个整数,N>1。
19.如权利要求18所述的装置,其特征在于,所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
20.如权利要求19所述的装置,其特征在于,所述最小单位对应的整数为无符号整数。
21.如权利要求12所述的装置,其特征在于,所述装置还包括:
计算单元,用于对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
检索单元,用于在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
存储单元,用于当所述检索单元判定所述数据签名不存在时,存储所述数据分片及对应的数据签名,若所述数据签名已存在,则不存储所述数据分片及对应的数据签名。
22.如权利要求12所述的装置,其特征在于,所述数据为网络数据或存储数据。
23.一种数据处理装置,其特征在于,包括:处理器及与所述处理器相配合的存储器;
所述存储器用于存储所述处理器执行的程序、极值点信息及数据分片;
所述处理器用于执行以下步骤:
构造沿数据流滑动的数据窗口,所述数据窗口的长度为预设数目的字节;
所述数据窗口滑动时,判断所述数据窗口中心位置数据对应的哈希值是否为极值;
若是,则确定该位置为第一个中间极值点,所述数据窗口继续滑动以确定后续的中间极值点;若否,则所述数据窗口继续滑动以确定第一个中间极值点;
提取相邻中间极值点之间的数据组合成有效数据分片,将所述相邻中间极值点之外的数据作为无效数据分片。
24.如权利要求23所述的装置,其特征在于,所述极值包括极大值或极小值。
25.如权利要求23或24所述的装置,其特征在于,所述处理器进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值大于所述中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
26.如权利要求23或24所述的装置,其特征在于,所述处理器进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极大值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值大于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
27.如权利要求23或24所述的装置,其特征在于,所述处理器进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值小于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b的距离,新的数据窗口以y+a-b作为第二起始点,所述位置点y作为第二中间点,y+b-a作为第二截止点;
比较所述第二中间点y对应的数据的哈希值与所述第二中间点y至所述第二起始点y+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点y对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+1)作为第三起始点,(y+1)+b-a作为第三中间点,(y+1)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
28.如权利要求23或24所述的装置,其特征在于,所述处理器进一步用于:
确定所述数据窗口在数据流上滑动的第一起始点a,第一中间点b及第一截止点2b-a;
当采用极小值进行处理时,比较所述第一中间点b对应的数据的哈希值与所述第一中间点b至所述第一截止点2b-a的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点y,所述位置点y对应的数据的哈希值等于所述第一中间点b对应的数据的哈希值,则将所述数据窗口右移y-b+1的距离,新的数据窗口以(y+1)+a-b为第二起始点,(y+1)为第二中间点,(y+1)+b-a为第二截止点;
比较所述第二中间点(y+1)对应的数据的哈希值与所述第二中间点(y+1)至所述第二起始点(y+1)+a-b的区域之间各个位置点对应的数据的哈希值;
若存在一个位置点x,所述位置点x对应的数据的哈希值小于或等于所述第二中间点(y+1)对应的数据的哈希值,则将所述数据窗口右移b-a+1的距离,新的数据窗口以(y+2)作为第三起始点,(y+2)+b-a作为第三中间点,(y+2)+2b-2a作为第三截止点;
其中,a、b、x、y均为自然数。
29.如权利要求23所述的装置,其特征在于,所述处理器还用于:
在确定所述第一个中间极值点之前,将数据流中的每个字节扩展成N个新字节作为数据处理的最小单位,其中,每个最小单位对应一个无符号整数,N>1;所述最小单位中新字节的数目N与进行数据处理的处理器单次处理的最大字节数目相等,且所述新字节之间采用256进制。
30.如权利要求23所述的装置,其特征在于,所述处理器更进一步用于:
对所述有效数据分片及无效数据分片进行哈希计算得到对应的数据签名;
在已建立的数据签名库中检索所述数据签名,判断所述数据签名是否存在;
若不存在,则存储所述数据分片及对应的数据签名;
若已存在,则不存储所述数据分片及对应的数据签名。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/086538 WO2014089802A1 (zh) | 2012-12-13 | 2012-12-13 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104012055A CN104012055A (zh) | 2014-08-27 |
CN104012055B true CN104012055B (zh) | 2017-04-12 |
Family
ID=50933713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280002719.8A Active CN104012055B (zh) | 2012-12-13 | 2012-12-13 | 一种数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104012055B (zh) |
WO (1) | WO2014089802A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572872B (zh) * | 2014-12-19 | 2017-08-25 | 华中科技大学 | 一种基于极值的数据去重分块方法 |
KR20210076652A (ko) * | 2019-12-16 | 2021-06-24 | 현대자동차주식회사 | 차량용 멀티미디어 시스템 및 그를 위한 메모리 관리 방법 |
CN112115108A (zh) * | 2020-09-11 | 2020-12-22 | 哈尔滨工业大学(威海) | 一种车辆物联网云存储系统重复数据删除方法 |
CN114625316A (zh) * | 2022-02-11 | 2022-06-14 | 华南理工大学 | 应用在重复数据删除的基于内容分块方法、系统及介质 |
CN116939047B (zh) * | 2023-09-18 | 2023-11-24 | 吉林省车桥汽车零部件有限公司 | 一种用于数控机床系统的数据智能通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059802A (zh) * | 2006-04-17 | 2007-10-24 | 中国科学院计算技术研究所 | 计算滑动窗口下数据流最大值和最小值的方法和系统 |
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN102214210A (zh) * | 2011-05-16 | 2011-10-12 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法、装置和系统 |
WO2012044366A1 (en) * | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100717064B1 (ko) * | 2006-03-03 | 2007-05-10 | 삼성전자주식회사 | 소프트웨어 업데이트 실행 방법 및 장치 |
CN101409630A (zh) * | 2007-10-11 | 2009-04-15 | 北京大学 | 一种流媒体数据发送接收方法、装置及系统 |
US8712035B2 (en) * | 2008-01-31 | 2014-04-29 | Hewlett-Packard Development Company, L.P. | Online data conversion technique using a sliding window |
CN101931495B (zh) * | 2009-06-18 | 2013-04-24 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN101841691B (zh) * | 2010-03-04 | 2011-11-16 | 中国科学院计算技术研究所 | 一种流媒体数据交换方法与装置 |
-
2012
- 2012-12-13 WO PCT/CN2012/086538 patent/WO2014089802A1/zh active Application Filing
- 2012-12-13 CN CN201280002719.8A patent/CN104012055B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059802A (zh) * | 2006-04-17 | 2007-10-24 | 中国科学院计算技术研究所 | 计算滑动窗口下数据流最大值和最小值的方法和系统 |
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
WO2012044366A1 (en) * | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
CN102214210A (zh) * | 2011-05-16 | 2011-10-12 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法、装置和系统 |
Non-Patent Citations (3)
Title |
---|
Combining Chunk Boundary and Chunk signature Calculations for deduplication;Darrell D.E.Long;《IEEE LATIN AMERICA TRANSACTIONS》;20120131;全文 * |
基于可变长数据分块的灾备数据恢复算法设计与实现;戴金辉;《成都信息工程学院学报》;20101231;第25卷(第6期);全文 * |
基于字节指纹极值特征的数据分块算法;孙继忠等;《计算机工程》;20100430;第36卷(第8期);正文的第1部分、第2部分和第3部分以及图2 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014089802A1 (zh) | 2014-06-19 |
CN104012055A (zh) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104012055B (zh) | 一种数据处理方法及装置 | |
US10652265B2 (en) | Method and apparatus for network forensics compression and storage | |
CN103095843B (zh) | 一种基于版本矢量的数据备份方法及客户端 | |
CN102724310B (zh) | 一种通过移动终端实现云搜索的方法 | |
CN104408177B (zh) | 基于云文档系统的密文检索方法 | |
CN107958079A (zh) | 聚合文件删除方法、系统、装置及可读存储介质 | |
CN109451006B (zh) | 一种数据传输方法、装置、服务器及计算机存储介质 | |
CN105553660B (zh) | 一种动态可搜索公钥加密方法 | |
CN101313495A (zh) | 数据同步方法、系统及装置 | |
CN103227818A (zh) | 终端、服务器、文件传输方法、文件存储管理系统和方法 | |
CN107046812A (zh) | 一种数据保存方法和装置 | |
CN104135452A (zh) | 一种iq数据同步压缩还原算法及装置 | |
CN103780707B (zh) | 一种数据传输的方法及装置 | |
CN106603561A (zh) | 一种云存储中的块级加密方法及多粒度去重复方法 | |
KR101568947B1 (ko) | 폰트 파일을 다운로드하는 방법 및 시스템 | |
CN104661042A (zh) | 一种传输流的传输方法、装置和系统 | |
WO2017097106A1 (zh) | 一种文件差量的传输方法以及装置 | |
CN102063498A (zh) | 基于内容特征信息对链接进行去重处理的方法与设备 | |
CN111224974A (zh) | 用于网络通信内容加密的方法、系统、电子设备及存储介质 | |
WO2021017305A1 (zh) | 数据的查询方法、装置、电子设备及计算机可读存储介质 | |
US20110154015A1 (en) | Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File | |
CN111460043A (zh) | 三维空间图像区块链存储方法及页面显示方法 | |
CN107612969B (zh) | 基于B-Tree布隆过滤器的云存储数据完整性审计方法 | |
CN107422980B (zh) | 物联网数据文件存储系统及其数据文件存储方法 | |
CN104579637B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220211 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies 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 |