【技术实现步骤摘要】
一种分块方法及其装置
本申请涉及数据处理领域,尤其涉及一种分块方法及其装置。
技术介绍
随着网络的高速发展,数据总量呈爆炸式增长,这对数据存储和数据传输提出了新的挑战。数据去重作为一种能够有效地消除冗余数据的技术,成为了研究热点。一般来说,数据去重可以分为四个环节:数据分块、指纹计算、指纹索引和存储。数据流在数据分块阶段被分割成较小的数据块,在指纹计算阶段对分割得到的各个数据块计算指纹,然后在指纹索引阶段通过匹配数据块的指纹辨识出重复的数据块,最后将不重复的数据块进行存储,而重复的数据块不重复存储。目前,数据分块技术主要包括定长分块算法,定长分块算法是设定一个预先定义的块大小,对所有数据流均按照这个预先定义的块大小进行划分,定长分块算法会受到边界偏移问题的影响。边界偏移即数据的插入或删除等操作导致的数据块的边界发生偏移,进而使得本来重复的数据块被检测为不重复。例如,在原文件的最前面插入一个字符,采用定长分块算法,那么编辑后的文件的所有数据块的边界与原文件的数据块相比都会相差一个字符的长度,因此没有任何一个数据 ...
【技术保护点】
1.一种分块方法,其特征在于,所述方法包括:/n从待分块数据流的头部开始,确定出第一长度的第一数据段,所述第一数据段包括多个字符,所述多个字符的字符长度为所述第一长度;/n根据所述第一数据段中的字符的字符值,确定所述第一数据段的数据分布特征;/n根据所述第一数据段的数据分布特征,确定所述待分块数据流的分块位置;/n将所述第一数据段中的第一个字符的起始位置与所述分块位置之间的字符作为数据块。/n
【技术特征摘要】
1.一种分块方法,其特征在于,所述方法包括:
从待分块数据流的头部开始,确定出第一长度的第一数据段,所述第一数据段包括多个字符,所述多个字符的字符长度为所述第一长度;
根据所述第一数据段中的字符的字符值,确定所述第一数据段的数据分布特征;
根据所述第一数据段的数据分布特征,确定所述待分块数据流的分块位置;
将所述第一数据段中的第一个字符的起始位置与所述分块位置之间的字符作为数据块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据段的数据分布特征,确定所述待分块数据流的分块位置,包括:
若所述第一数据段的数据分布特征为平原分布,则根据期望分块长度确定所述待分块数据流的分块位置,数据分布特征为所述平原分布的数据段中的每个字符的字符值均相同。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一数据段的中字符的字符值,确定所述第一数据段的数据分布特征,包括:
若所述第一数据段中的第一个字符的字符值为所述第一数据段中的字符的字符值中的最大值,且所述第一数据段中的第一个字符的字符值与所述第一数据段中的最后一个字符的字符值相等,则将所述第一数据段的数据分布特征确定为所述平原分布。
4.根据权利要求2或3所述的方法,其特征在于,所述根据期望分块长度确定所述待分块数据流的分块位置,包括:
从所述第一数据段的最后一个字符之后的字符中,确定第一目标字符,所述第一目标字符满足分块条件,所述分块条件包括所述第一目标字符的字符值与所述第一数据段中的第一个字符的字符值不同,且以所述第一数据段中的第一个字符作为起始字符,以所述第一目标字符的前一个字符作为结束字符的数据段的字符长度大于或等于所述期望分块长度;
将所述第一目标字符的起始位置确定为所述待分块数据流的分块位置。
5.根据权利要求2或3所述的方法,其特征在于,所述根据期望分块长度确定所述待分块数据流的分块位置,包括:
将与所述第一数据段的第一个字符的起始位置之间的字符长度为所述期望分块长度的位置确定为所述待分块数据流的分块位置。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据段的数据分布特征,确定所述待分块数据流的分块位置,包括:
若所述第一数据段的数据分布特征为非平原分布,则根据第二长度确定所述待分块数据流的分块位置,其中,所述第二长度小于期望分块长度,数据分布特征为所述非平原分布的数据段中至少存在两个字符的字符值不同。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一数据段中的字符的字符值,确定所述第一数据段的数据分布特征,包括:
若所述第一数据段中存在第二目标字符,则将所述第一数据段的数据分布特征确定为所述非平原分布,所述第一数据段中位于所述第二目标字符之前的字符的字符值均小于所述第二目标字符的字符值,所述第一数据段中位于所述第二目标字符之后的字符的字符值均小于或等于所述第二目标字符的字符值。
8.根据权利要求7所述的方法,其特征在于,所述根据第二长度确定所述待分块数据流的分块位置,包括:
从所述待分块数据流中确定第二数据段,所述第二数据段的第一个字符与所述第一数据段的最后一个字符相邻,所述第二目标字符的结束位置与所述第二数据段的最后一个字符的结束位置之间的字符长度为所述第二长度;
若所述第二数据段中的每个字符的字符值均小于所述第二目标字符的字符值,则将所述第二数据段的最后一个字符的结束位置确定为所述待分块数据流的分块位置。
9.根据权利要求7所述的方法,其特征在于,所述根据第二长度确定所述待分块数据流的分块位置,包括:
从所述待分块数据流中确定第三数据段,所述第三数据段的第一个字符与所述第一数据段的最后一个字符相邻,所述第三数据段的最后一个字符的字符值既大于或等于所述第二目标字符的字符值,又大于或等于所述第三数据段中的其他字符的字符值;
从所述待分块数据流中确定第四数据段,所述第四数据段的第一个字符与所述第三数据段的最后一个字符相邻,所述第四数据段中的多个字符的字符长度为所述第二长度;
若所述第四数据段中的每个字符的字符值均小于所述第三数据段的最后一个字符的字符值,则将所述第四数据段的最后一个字符的结束位置确定为所述待分块数据流的分块位置。
10.根据权利要求9所述的方法,其特征在于,所述从所述待分块数据流中确定第三数据段之前,所述方法还包括:
从所述待分块数据流中确定第二数据段,所述第二数据段的第一个字符与所述第一数据段的最后一个字符相邻,所述第二目标字符的结束位置与所述第二数据段的最后一个字符的结束位置之间的字符长度为所述第二长度;
若所述第二数据段中至少存在一个字符的字符值大于或等于所述第二目标字符的字符值,则触发从所述待分块数据流中确定第三数据段的步骤。
11.根据权利要求6~10任一项所述的方法,其特征在于,所述方法还包括:
根据所述期望分块长度确定所述第一长度及所述第二长度。
12....
【专利技术属性】
技术研发人员:陈庆,周军,开毅,卜琪,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。