CN102682086A - 数据分块方法及设备 - Google Patents
数据分块方法及设备 Download PDFInfo
- Publication number
- CN102682086A CN102682086A CN2012101213985A CN201210121398A CN102682086A CN 102682086 A CN102682086 A CN 102682086A CN 2012101213985 A CN2012101213985 A CN 2012101213985A CN 201210121398 A CN201210121398 A CN 201210121398A CN 102682086 A CN102682086 A CN 102682086A
- Authority
- CN
- China
- Prior art keywords
- data
- deblocking
- moving window
- length
- end position
- 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
Images
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/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
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
技术领域
本发明涉及数据处理技术,尤其涉及一种数据分块方法及设备,属于存储技术领域。
背景技术
分块技术广泛用于重复数据删除系统和广域网加速系统等。以重复数据删除系统为例,分块模块利用分块技术将一个字节序列S划分为数据块集合C,并由重复数据删除模块以这些数据块为单位进行数据重复性判断,若某数据块与存储库内的另一个数据块是重复的,则将这个数据块用长度较小的相应索引替代,从而节约存储空间。稳定性和存储效率是分块技术的两项重要指标。其中,稳定性是指对同样的序列S进行少量更改得出S’,则对S’进行分块所获得的数据块集合C’相对于数据块集合C,除了序列被改动的地方外,其他数据块应保持一致。
目前的分块技术主要包括基于固定尺寸划分(FSP)算法。FSP算法是设定一个预先定义的块大小,其独立于所存取的数据内容,并对所有文件均按照这个预先定义的块大小进行划分。FSP算法的数据分块稳定性较低。例如,当第一数据流进行数据分块后,若得到的数据分块为新的数据块,则存储到数据库中,而当收到需要进行重复数据删除的第二数据流,对第二数据流进行分块时,如果第二数据流和第一数据流的不同之处,仅仅是在第二数据流中增加、删除或是更改了某几个数据,其余的相同,采用FSP算法进行数据分块,往往有大量数据分块均不同于利用FSP算法对第一数据流进行分块获得的数据分块。这种数据分块的低稳定性,导致占用了较多的存储空间。
发明内容
针对现有技术存在的缺陷,本发明提供一种数据分块方法及设备,用以实现稳定性高的数据分块。
一方面,本发明实施例提供一种数据分块方法,包括:
设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;
判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准;若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;若是,则根据所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据生成第二数据分块;
若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
另一方面,本发明实施例还提供一种数据分块设备,包括:
第一处理模块,用于设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;
第二处理模块,用于判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准;若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;
第三处理模块,用于判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;
第四处理模块,用于若所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度大于等于所述滑动窗口的长度,则根据所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据生成第二数据分块;
第五处理模块,用于若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,由所述第二处理模块返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
根据本发明的数据分块方法及设备,基于数据的特征值来划分一个数据分块,并且基于这个数据分块与前一数据分块之间的数据长度来划分另一个数据块,而非按照固定长度对待分块数据对象进行分块。当第一数据流进行数据分块后,若得到的数据分块为新的数据块,则存储到数据库中,而当收到需要进行重复数据删除的第二数据流,对第二数据流进行分块时,如果第二数据流和第一数据流的不同之处,仅仅是在第二数据流中增加、删除或是更改了某几个数据,其余的相同,采用本发明实施例的方法对第二数据流进行数据分块时,仅发生更改的数据所在数据分块可能发生变化,其余数据分块与对应的第一数据流的数据分块保持一致。因此本发明实施例的数据分块方法具有较好的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据分块方法的一个实施例的流程示意图;
图2为本发明数据分块方法的另一个实施例的流程示意图;
图3为本发明数据分块设备的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的数据分块方法由一个数据分块设备来执行,该数据分块设备可以为存储控制器等设备,本实施例不限定该数据分块设备采用何种装置、也不限定该数据分块设备的具体结构,只要其能够进行数据处理即可。
实施例一
图1为本发明数据分块方法的一个实施例的流程示意图。如图1所示,本实施例的数据分块方法包括:
步骤1,设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;
步骤2,判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准,若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;
步骤3,判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;
步骤4,若是,则根据所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据生成第二数据分块;
其中,当所述滑动窗口第一次滑动的起始位置为待分块数据对象的头部时,所述第一数据分块为待分块数据对象的第一个数据分块,则将所述待分块数据对象的头部作为所述上一个数据分块的结束位置;
步骤5,若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
其中,返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤包括返回执行判断滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准,并当判断结果符合步骤2-5的执行条件时,执行步骤2-5。在每次返回执行步骤2和4的过程中,当满足生成第一数据分块/第二数据分块的条件时,所生成的第一数据分块/第二数据分块为新的数据分块,而非对在先生成的第一数据分块/第二数据分块的更新,即:上述步骤中的第一数据分块/第二数据分块并非用于表示一个特定的数据分块,而是一类数据分块的集合。
在本实施例中,所形成的数据分块包括两种情况,一种为若滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将滑动窗口在当前位置覆盖的数据划分为第一数据分块,此时所形成的数据分块的尺寸与滑动窗口的尺寸相同;另一种为通过对第一数据分块与前一数据分块之间的数据碎片进行处理所形成的,即判断第一数据分块与前一数据分块之间的数据碎片长度是否大于或等于滑动窗口的长度,若否,则丢弃该数据碎片,若是,则将从该数据碎片中划分出第二数据分块。
根据本实施例的数据分块方法,基于数据的特征值来划分第一数据分块,并且基于第一数据分块与前一数据分块之间的数据长度来划分第二数据块,而非按照固定长度对待分块数据对象进行分块,所以当第一数据流进行数据分块后,若得到的数据分块为新的数据块,则存储到数据库中,而当收到需要进行重复数据删除的第二数据流,对第二数据流进行分块时,如果第二数据流和第一数据流的不同之处,仅仅是在第二数据流中增加、删除或是更改了某几个数据,其余的相同,采用本发明实施例的方法对第二数据流进行数据分块时,仅发生更改的数据所在数据分块可能发生变化,其余数据分块与对应的第一数据流的数据分块保持一致。因此本实施例的数据分块方法具有较好的稳定性。
此外,由于根据本实施例的数据分块方法还对第一数据分块与上一个数据分块之间的数据碎片进行处理,当满足数据碎片长度大于等于滑动窗口的长度时,根据数据碎片形成第二数据分块,从而减少了在数据分块过程中产生的数据碎片。而且,根据本实施例的数据分块方法形成的第一数据分块和第二数据分块,其尺寸均大于等于滑动窗口的长度,对于任意的存储系统,这种尺寸较为固定的数据分块相较于任意长度的数据分块的存储效率都较高。
进一步地,步骤4中,根据所述一个数据分块的起始位置与上一个数据分块的结束位置之间的数据生成第二数据分块包括:
将滑动窗口的N倍长度的数据作为第二数据分块,其中所述N为所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度相对于所述滑动窗口的长度的倍数取整。
进一步地,将滑动窗口的N倍长度的数据划分为第二数据分块具体包括:
将连续且长度为滑动窗口的N倍长度的数据划分为一个第二数据分块;或者
将连续且长度为滑动窗口的N倍长度的数据划分为N个与滑动窗口等长的第二数据分块。
可以看出,根据本实施例的数据分块方法所形成的第一数据分块和第二数据分块,其尺寸均为滑动窗口的长度的整数倍,这种具有一定规定的尺寸的数据分块,提高了存储效率。另外,当将连续且长度为滑动窗口的N倍长度的数据划分为N个与滑动窗口等长的第二数据分块时,则根据本实施例的数据分块方法所形成的第一数据分块和第二数据分块,其尺寸均与滑动窗口等长,进一步提高了存储效率。
实施例二
图2为本发明数据分块方法的另一个实施例的流程示意图。如图2所示,本实施例的数据分块方法包括以下步骤:
S201,对输入的待分块数据对象进行缓存;
S202,初始化,将待分块数据对象的头部位置作为上一个数据分块的结束位置,将滑动窗口的长度值作为当前滑动窗口的结束位置坐标;
例如初始化K=W,K0=0;其中,K为当前滑动窗口的结束位置,W为滑动窗口的大小,K0为上一个数据分块的结束位置;
S203,定义一个用于表示当前滑动窗口所覆盖数据的数据集合;
例如定义Vk,Vk为大小是W的数据集合,即将位置K之前的W长度的数据缓存作为Vk;
S204,计算数据集合的特征值,并判断该特征值是否符合预设标准,若否,则执行步骤S205,若是,则执行步骤S206;
例如定义一个预测函数P(Vk,K)来执行步骤S204。即,利用预测函数P(Vk,K)对数据集合Vk进行评估,以预测位置K是否符合分块条件,例如设定P(Vk,K)=1表示符合,P(Vk,K)=0表示不符合。P(Vk,K)的一种实施方式为:对Vk用Rabin算法计算Vk的指纹(Fingerprint),判断是否存在Fingerprint%D=r,若存在,则函数P(Vk,K)返回1,否则返回0,其中D和r为预设值,r<D。
S205,将滑动窗口向后滑动一个字节,即令K=K+1,并返回执行步骤S203;
S206,将当前滑动窗口所覆盖数据作为第一数据分块;之后执行步骤S207;
例如以坐标对的形成生成并存储第一数据分块,即生成一对分块点(SEGj,SEGj+1),SEGj为第一数据分块的起始位置坐标,SEGj+1为第一数据分块的结束位置坐标,则对于第一数据分块,SEGj=K-W+1,SEGj+1=K;
S207,判断第一数据分块的起始位置与上一个数据分块的结束位置之间的距离是否为滑动窗口长度的整数倍;若是,则执行步骤S208,若否,则执行步骤S209;
例如,判断SEGj与K0之间的距离是否为W的整数倍;
S208,将第一数据分块的起始位置与上一个数据分块的结束位置之间的全部数据作为第二数据分块;之后执行步骤S211;
当SEGj与K0之间的距离恰好为W的整数倍时,则将SEGj与K0之间的全部数据划分为第二数据分块,即所生成的第二数据分块的坐标为(K0+1,K-W),其中K0+1为第二数据分块的起始位置坐标,K-W为第二数据分块的结束位置坐标。
S209,判断第一数据分块的起始位置与上一个数据分块的结束位置之间的距离是否大于等于滑动窗口长度;若是,则执行步骤S210,若否,则执行步骤S211;
例如,判断SEGj与K0之间的距离是否大于等于W;
S210,将第一数据分块的起始位置与上一个数据分块的结束位置之间的数据中,连续且长度为滑动窗口的N倍长度的数据划分为第二数据分块,其中N为所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度相对于所述滑动窗口的长度的倍数取整;之后执行步骤S211;
例如,当SEGj与K0之间的距离大于等于W且为W的(n+m)时,在SEGj与K0之间的数据中,生成一个数据长度为W的n倍的数据分块,其中n为正整数,m为大于0且小于1的小数,其中该长度为n倍W的数据分块既可以从上一数据分块的结束位置开始向尾部方向选取,即生成的第二数据分块坐标为(K0+1,K0+nW),也可以从步骤S206中生成第一数据分块(K-W+1,K)的起始位置开始向头部方向选取,即生成的第二数据分块坐标为(K-(n+1)W+1,K-W)。
S211,判断剩余数据长度是否大于等于所述滑动窗口的长度,即第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度是否大于等于所述滑动窗口的长度,即K之后的剩余数据长度是否大于等于W,若是,则执行步骤S212,若否,则完成待分块数据对象的分块处理,结束流程;
S212,将滑动窗口向后滑动滑动窗口的长度,即向后滑动W个字节,即令K0=K,令K=K+W;之后返回执行步骤S203。
根据本实施例的数据分块方法,在保障高稳定性和高存储效率的基础上,还通过对第一数据分块与上一个数据分块之间的数据碎片进行处理,根据数据碎片与滑动窗口的长度关系,灵活生成长度为滑动窗口整数倍的第二数据分块,有效减少了数据分块过程中所产生的数据碎片。
实施例三
图3为本发明数据分块设备的一个实施例的结构示意图。如图3所示,该数据分块设备包括:
第一处理模块31,用于设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;;
第二处理模块32,用于判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准;若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;
第三处理模块33,用于判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;
第四处理模块34,用于若所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度大于等于所述滑动窗口的长度,则根据所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据生成第二数据分块;
第五处理模块35,用于若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,由所述第二处理模块返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
本实施例的数据分块设备执行数据分块的具体流程与上述任一实施例的数据分块方法相同,故此处不再赘述。
根据本实施例的数据分块设备,基于数据的特征值来划分第一数据分块,并且基于第一数据分块与前一数据分块之间的数据长度来划分第二数据块,而非按照固定长度对待分块数据对象进行分块,所以当第一数据流进行数据分块后,若得到的数据分块为新的数据块,则存储到数据库中,而当收到需要进行重复数据删除的第二数据流,对第二数据流进行分块时,如果第二数据流和第一数据流的不同之处,仅仅是在第二数据流中增加、删除或是更改了某几个数据,其余的相同,采用本发明实施例的方法对第二数据流进行数据分块时,仅发生更改的数据所在数据分块可能发生变化,其余数据分块与对应的第一数据流的数据分块保持一致。因此本实施例的数据分块方法具有较好的稳定性。
此外,由于本实施例的数据分块设备还对第一数据分块与上一个数据分块之间的数据碎片进行处理,当满足数据碎片大于等于滑动窗口的长度时,根据数据碎片形成第二数据分块,从而减少了在数据分块过程中产生的数据碎片。而且,根据本实施例的数据分块设备所形成的第一数据分块和第二数据分块,其尺寸均大于等于滑动窗口的长度,对于任意的存储系统,这种尺寸较为固定的数据分块的存储效率都较高。
进一步地,在上述实施例的数据分块设备中,第一处理模块在当滑动窗口第一次滑动的起始位置为待分块数据对象的头部时,将所述待分块数据对象的头部作为所述上一个数据分块的结束位置。
进一步地,在上述实施例的数据分块设备中,所述第四处理模块具体用于若所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度大于等于所述滑动窗口的长度,将所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据中,连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块;其中N为所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度相对于所述滑动窗口的长度的倍数取整。
进一步地,在上述实施例的数据分块设备中,第四处理模块中,将连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块,具体包括:
将连续且长度为所述滑动窗口的N倍长度的数据划分为一个第二数据分块;或者
将连续且长度为所述滑动窗口的N倍长度的数据划分为N个与所述滑动窗口等长的第二数据分块。
进一步地,在上述实施例的数据分块设备中,还包括:
第六处理模块,用于若判断获知所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准,且所述滑动窗口的结束位置与所述待分块数据对象的尾部之间仍存在数据,则将所述滑动窗口向后滑动一个字节,并由所述第二处理模块返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
进一步地,在上述实施例的数据分块设备中,第二处理模块具体用于获取所述滑动窗口在当前位置覆盖的数据的指纹;判断所述指纹除以第一预设数值的余数是否等于第二预设数值,若等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准;若不等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准。
进一步地,在上述实施例的数据分块设备中,所述第四处理模块具体用于:将所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据中,从所述上一个数据分块的结束位置的下一字节开始的、向所述待分块数据对象的尾部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块;或者
将所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据中,从所述第一数据分块的起始位置的上一字节开始的、向所述待分块数据对象的头部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种数据分块方法,其特征在于,包括:
设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;
判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准;若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;若是,则根据所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据生成第二数据分块;
若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
2.根据权利要求1所述的数据分块方法,其特征在于,当所述滑动窗口第一次滑动的起始位置为待分块数据对象的头部时,将所述待分块数据对象的头部作为所述上一个数据分块的结束位置。
3.根据权利要求1所述的数据分块方法,其特征在于,所述根据所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据生成第二数据分块包括:
将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块;其中所述N为所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度相对于所述滑动窗口的长度的倍数取整。
4.根据权利要求3所述的数据分块方法,其特征在于,所述将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块具体包括:
将连续且长度为所述滑动窗口的N倍长度的数据划分为一个第二数据分块;或者
将连续且长度为所述滑动窗口的N倍长度的数据划分为N个与所述滑动窗口等长的第二数据分块。
5.根据权利要求1所述的数据分块方法,其特征在于,还包括:
若判断获知所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准,且所述滑动窗口的结束位置与所述待分块数据对象的尾部之间仍存在数据,则将所述滑动窗口向后滑动一个字节,并返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
6.根据权利要求1所述的数据分块方法,其特征在于,所述判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准包括:
获取所述滑动窗口在当前位置覆盖的数据的指纹;
判断所述指纹除以第一预设数值的余数是否等于第二预设数值,若等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准;若不等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准。
7.根据权利要求3所述的数据分块方法,其特征在于,所述将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块具体包括:
将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,从所述上一个数据分块的结束位置的下一字节开始的、向所述待分块数据对象的尾部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块;或者
将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,从所述第一数据分块的起始位置的上一字节开始的、向所述待分块数据对象的头部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块。
8.一种数据分块设备,其特征在于,包括:
第一处理模块,用于设定滑动窗口,从待分块数据对象中上一个数据分块的结束位置开始滑动所述滑动窗口;
第二处理模块,用于判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准;若判断获知所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准,则将所述当前位置覆盖的数据划分为第一数据分块;
第三处理模块,用于判断所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度是否大于等于所述滑动窗口的长度;
第四处理模块,用于若所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度大于等于所述滑动窗口的长度,则根据所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据生成第二数据分块;
第五处理模块,用于若所述第一数据分块的结束位置至所述待分块数据对象的尾部之间的数据的长度大于等于所述滑动窗口的长度,则所述滑动窗口从所述第一数据分块的结束位置开始,由所述第二处理模块返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
9.根据权利要求8所述的数据分块设备,其特征在于,所述第一处理模块在当滑动窗口第一次滑动的起始位置为待分块数据对象的头部时,将所述待分块数据对象的头部作为所述上一个数据分块的结束位置。
10.根据权利要求8所述的数据分块设备,其特征在于,所述第四处理模块具体用于若所述第一数据分块的起始位置与上一个数据分块的结束位置之间的数据的长度大于等于所述滑动窗口的长度,将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块;其中所述N为所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据的长度相对于所述滑动窗口的长度的倍数取整。
11.根据权利要求10所述的数据分块设备,其特征在于,所述第四处理模块中,将连续且长度为所述滑动窗口的N倍长度的数据划分为所述第二数据分块,具体包括:
将连续且长度为所述滑动窗口的N倍长度的数据划分为一个第二数据分块;或者
将连续且长度为所述滑动窗口的N倍长度的数据划分为N个与所述滑动窗口等长的第二数据分块。
12.根据权利要求8所述的数据分块设备,其特征在于,还包括:
第六处理模块,用于若判断获知所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准,且所述滑动窗口的结束位置与所述待分块数据对象的尾部之间仍存在数据,则将所述滑动窗口向后滑动一个字节,并由所述第二处理模块返回执行判断所述滑动窗口在当前位置覆盖的数据的特征值是否符合预设标准的步骤。
13.根据权利要求8所述的数据分块设备,其特征在于,所述第二处理模块具体用于获取所述滑动窗口在当前位置覆盖的数据的指纹;判断所述指纹除以第一预设数值的余数是否等于第二预设数值,若等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值符合预设标准;若不等于,则判定所述滑动窗口在当前位置覆盖的数据的特征值不符合预设标准。
14.根据权利要求10所述的数据分块设备,其特征在于,所述第四处理模块具体用于:将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,从所述上一个数据分块的结束位置的下一字节开始的、向所述待分块数据对象的尾部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块;或者
将所述第一数据分块的起始位置与所述上一个数据分块的结束位置之间的数据中,从所述第一数据分块的起始位置的上一字节开始的、向所述待分块数据对象的头部延伸、连续且长度为所述滑动窗口的N倍长度的数据划分为第二数据分块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210121398.5A CN102682086B (zh) | 2012-04-23 | 2012-04-23 | 数据分块方法及设备 |
PCT/CN2013/073474 WO2013159631A1 (zh) | 2012-04-23 | 2013-03-29 | 数据分块方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210121398.5A CN102682086B (zh) | 2012-04-23 | 2012-04-23 | 数据分块方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682086A true CN102682086A (zh) | 2012-09-19 |
CN102682086B CN102682086B (zh) | 2014-11-05 |
Family
ID=46814011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210121398.5A Active CN102682086B (zh) | 2012-04-23 | 2012-04-23 | 数据分块方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102682086B (zh) |
WO (1) | WO2013159631A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020299A (zh) * | 2012-12-29 | 2013-04-03 | 天津南大通用数据技术有限公司 | 全文检索中倒排索引及其追加数据的保存方法及存储装置 |
WO2013159631A1 (zh) * | 2012-04-23 | 2013-10-31 | 华为技术有限公司 | 数据分块方法及设备 |
CN105446964A (zh) * | 2014-05-30 | 2016-03-30 | 国际商业机器公司 | 用于文件的重复数据删除的方法及装置 |
CN106610794A (zh) * | 2016-11-21 | 2017-05-03 | 深圳市深信服电子科技有限公司 | 数据去重的收敛分块方法及装置 |
CN108415869A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的发送方法及装置 |
CN109408545A (zh) * | 2018-09-30 | 2019-03-01 | 中科驭数(北京)科技有限公司 | 目标聚合操作处理方法和装置 |
CN109543002A (zh) * | 2018-10-19 | 2019-03-29 | 中南民族大学 | 简写字符的还原方法、装置、设备及存储介质 |
CN111831297A (zh) * | 2019-04-17 | 2020-10-27 | 中兴通讯股份有限公司 | 零差分升级方法及装置 |
CN115374070A (zh) * | 2022-08-16 | 2022-11-22 | 北京连山科技股份有限公司 | 一种数据粒子化技术与分布式存储结合的存储方法及系统 |
WO2024021491A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种数据切片方法、装置和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968796A (zh) * | 2010-09-09 | 2011-02-09 | 北京邮电大学 | 一种双向并发执行的文件级可变长数据分块方法 |
US20110313975A1 (en) * | 2010-06-16 | 2011-12-22 | Microsoft Corporation | Validating files using a sliding window to access and correlate records in an arbitrarily large dataset |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546320B (zh) * | 2008-03-27 | 2011-11-16 | 北京兴宇中科科技开发股份有限公司 | 一种基于滑动窗口的数据差异分析方法 |
CN101788976B (zh) * | 2010-02-10 | 2012-05-09 | 北京播思软件技术有限公司 | 一种基于内容的文件分割方法 |
CN102214210B (zh) * | 2011-05-16 | 2013-03-13 | 华为数字技术(成都)有限公司 | 重复数据处理方法、装置和系统 |
CN102682086B (zh) * | 2012-04-23 | 2014-11-05 | 华为技术有限公司 | 数据分块方法及设备 |
-
2012
- 2012-04-23 CN CN201210121398.5A patent/CN102682086B/zh active Active
-
2013
- 2013-03-29 WO PCT/CN2013/073474 patent/WO2013159631A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110313975A1 (en) * | 2010-06-16 | 2011-12-22 | Microsoft Corporation | Validating files using a sliding window to access and correlate records in an arbitrarily large dataset |
CN101968796A (zh) * | 2010-09-09 | 2011-02-09 | 北京邮电大学 | 一种双向并发执行的文件级可变长数据分块方法 |
Non-Patent Citations (2)
Title |
---|
孙继忠: "基于字节指纹极值特征的数据分块算法", 《计算机工程》 * |
戴金辉: "基于可变长数据分块的灾备数据恢复算法设计与实现", 《成都信息共程序员学报》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013159631A1 (zh) * | 2012-04-23 | 2013-10-31 | 华为技术有限公司 | 数据分块方法及设备 |
CN103020299B (zh) * | 2012-12-29 | 2016-01-13 | 国家计算机网络与信息安全管理中心 | 全文检索中倒排索引及其追加数据的保存方法及存储装置 |
CN103020299A (zh) * | 2012-12-29 | 2013-04-03 | 天津南大通用数据技术有限公司 | 全文检索中倒排索引及其追加数据的保存方法及存储装置 |
CN105446964B (zh) * | 2014-05-30 | 2019-04-26 | 国际商业机器公司 | 用于文件的重复数据删除的方法及装置 |
CN105446964A (zh) * | 2014-05-30 | 2016-03-30 | 国际商业机器公司 | 用于文件的重复数据删除的方法及装置 |
US10769112B2 (en) | 2014-05-30 | 2020-09-08 | International Business Machines Corporation | Deduplication of file |
CN106610794A (zh) * | 2016-11-21 | 2017-05-03 | 深圳市深信服电子科技有限公司 | 数据去重的收敛分块方法及装置 |
CN106610794B (zh) * | 2016-11-21 | 2020-05-15 | 深信服科技股份有限公司 | 数据去重的收敛分块方法及装置 |
CN108415869A (zh) * | 2018-02-28 | 2018-08-17 | 北京零壹空间科技有限公司 | 串行数据的发送方法及装置 |
CN109408545A (zh) * | 2018-09-30 | 2019-03-01 | 中科驭数(北京)科技有限公司 | 目标聚合操作处理方法和装置 |
CN109408545B (zh) * | 2018-09-30 | 2019-10-25 | 中科驭数(北京)科技有限公司 | 目标聚合操作处理方法和装置 |
CN109543002A (zh) * | 2018-10-19 | 2019-03-29 | 中南民族大学 | 简写字符的还原方法、装置、设备及存储介质 |
CN109543002B (zh) * | 2018-10-19 | 2020-12-11 | 中南民族大学 | 简写字符的还原方法、装置、设备及存储介质 |
CN111831297A (zh) * | 2019-04-17 | 2020-10-27 | 中兴通讯股份有限公司 | 零差分升级方法及装置 |
WO2024021491A1 (zh) * | 2022-07-29 | 2024-02-01 | 天翼云科技有限公司 | 一种数据切片方法、装置和系统 |
CN115374070A (zh) * | 2022-08-16 | 2022-11-22 | 北京连山科技股份有限公司 | 一种数据粒子化技术与分布式存储结合的存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2013159631A1 (zh) | 2013-10-31 |
CN102682086B (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102682086A (zh) | 数据分块方法及设备 | |
US9851917B2 (en) | Method for de-duplicating data and apparatus therefor | |
EP3217298B1 (en) | Data processing method and apparatus in cluster system | |
CN103677674B (zh) | 一种数据处理方法及装置 | |
CN105468642A (zh) | 数据的存储方法及装置 | |
CN104239518A (zh) | 重复数据删除方法和装置 | |
CN103189867A (zh) | 重复数据检索方法及设备 | |
CN110297810B (zh) | 一种流数据处理方法、装置及电子设备 | |
CN102880555A (zh) | 面向实时系统的内存算法 | |
CN104252457A (zh) | 一种用于对数据集合进行管理的方法与设备 | |
CN108093024B (zh) | 一种基于数据频度的分类路由方法及装置 | |
CN105701128A (zh) | 一种查询语句的优化方法和装置 | |
CN104956340A (zh) | 可扩展数据重复删除 | |
CN103930890B (zh) | 数据处理方法、装置及重删处理器 | |
US7484068B2 (en) | Storage space management methods and systems | |
CN104731722A (zh) | 一种针对缓存页面的页面管理方法及装置 | |
KR101780534B1 (ko) | 이미지 기반 검색을 위한 맵리듀스 기반의 이미지 특징 추출 방법 및 시스템 | |
CN104462280A (zh) | 用于嵌入式系统的数据信息存储及快速查询方法 | |
CN103049561A (zh) | 一种数据压缩方法、存储引擎及存储系统 | |
JP7299334B2 (ja) | チャンキング方法および装置 | |
CN103559106B (zh) | 一种数据的备份方法、装置及系统 | |
CN103106221A (zh) | 一种网页链接库的更新方法及系统 | |
CN104298614A (zh) | 数据块在存储设备中存储方法和存储设备 | |
CN105787107B (zh) | 一种大数据冗余检测方法 | |
Boyar et al. | Relative interval analysis of paging algorithms on access graphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |