数据去重的收敛分块方法及装置制造方法及图纸

技术编号:15283516 阅读:50 留言:0更新日期:2017-05-06 10:18
本发明专利技术公开了一种数据去重的收敛分块方法。所述方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置。本发明专利技术还公开了一种数据去重的收敛分块装置。本发明专利技术在分块时通过引入所述当前分块的长度作为分块参数,动态地选择放宽或者紧缩分块判断条件,控制了数据块的平均块长,也减少了数据块的总数,提高了去重分块效率。

Method and apparatus for convergence of data De blocking

The present invention discloses a method of data block convergence. The method comprises the following steps: the starting position for recording the data flow into a block, and the sliding window from the starting position gradually began to move forward; when the sliding window after each step, whether the sliding window where the current position is the end position of the data stream; if not, according to the current block length, dynamic selection criterion of judging whether the current position is to block position. The invention also discloses a data convergence and block device. The invention introduces the current block length as a parameter in the block block, dynamically select relaxation or tightening block judging conditions, control block data block length, but also reduces the total number of data blocks, the block to improve efficiency.

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及存储系统数据去重的收敛分块方法及装置
技术介绍
目前数据流去重领域采取分块获取哈希值进行比对判断数据流是否重复,在分块后平均块长越大,数据流去重的粒度也就越大,去重率下降;平均块长越小,去重效率低。而目前广泛采用的基于内容分块方法采用的是逐个字节滑动窗口,然后计算和判断窗口内容哈希值的方法,由于基于内容分块算法中哈希值的随机性特征,导致分块后产生的块长数量与块长成指数分布:既有非常多的超小的数据块和超大的数据块;其中分块出非常多的小的数据块,会导致分块的数据块的总数很大,从而导致计算和判断窗口内容哈希值的次数增加,降低了分块效率。
技术实现思路
本专利技术的主要目的在于提供一种数据去重的收敛分块方法,旨在控制超小的数据块和超大的数据块的数量的同时控制数据块的总数,提高分块效率。为实现上述目的,本专利技术提供的一种数据去重的收敛分块方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则记录所述结束位置为一个分块位置,并结束分块操作。优选地,所述当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:判断所述当前分块的长度是否小于标准预设长度;若是,则使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。优选地,所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;判断所述对比值与预设哈希值是否匹配;若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使所述滑动窗口向前移动一步。优选地,当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;判断所述对比值与预设哈希值是否匹配;若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使所述滑动窗口向前移动一步。优选地,在所述判断所述当前分块的长度是否小于标准预设长度之前还包括:跳跃移动所述滑动窗口一个预设跳跃长度;当跳跃移动所述滑动窗口一个预设跳跃长度后,判断所述滑窗口的位置是否是所述数据流的结束位置;若是,则记录所述结束位置为一个分块位置,并结束分块操作;若否,则使所述滑动窗口向前移动一步。此外,为实现上述目的,本专利技术还提供一种一种数据去重的收敛分块装置包括:启动模块,用于记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;判断模块,用于当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是数据流的结束位置;第一分块模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;结束模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作。优选地,所述第一分块模块包括:第一判断单元,用于判断所述当前分块的长度是否小于标准预设长度;第二分块模块,用于当所述当前分块的长度小于所述标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;第三分块模块,用于当所述当前分块的长度不小于所述标准预设长度时,使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。优选地,所述第二分块模块包括:第一获取单元,用于获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;第二判断单元,用于判断所述对比值与预设哈希值是否匹配;第一分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;第一移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。优选地,所述第三分块模块包括:第二获取单元,获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;第三判断单元,用于判断所述对比值与预设哈希值是否匹配;第二分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;第二移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。优选地,所述第一分块模块还包括:跳跃单元,用于跳跃移动所述滑动窗口一个预设跳跃长度;第四判断单元,用于当跳跃移动所述滑动窗口后,判断所述滑窗口的位置是否是所述数据流的结束位置;结束单元,用于当所述滑窗口的位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作;第四移动单元,用于当所述滑窗口的位置是所述数据流的结束位置时,使所述滑动窗口向前移动一步。本专利技术公开了一种数据去重的收敛分块方法及装置,所述数据去重的收敛分块方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块。在分块时通过引入所述当前分块的长度作本文档来自技高网...
数据去重的收敛分块方法及装置

【技术保护点】
一种数据去重的收敛分块方法,其特征在于,所述数据去重的收敛分块方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则记录所述结束位置为一个分块位置,并结束分块操作。

【技术特征摘要】
1.一种数据去重的收敛分块方法,其特征在于,所述数据去重的收敛分块方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则记录所述结束位置为一个分块位置,并结束分块操作。2.如权利要求1所述的数据去重的收敛分块方法,其特征在于,所述当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:判断所述当前分块的长度是否小于标准预设长度;若是,则使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。3.如权利要求2所述的数据去重的收敛分块方法,其特征在于,所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;判断所述对比值与预设哈希值是否匹配;若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使所述滑动窗口向前移动一步。4.如权利要求2所述的数据去重的收敛分块方法,其特征在于,当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;判断所述对比值与预设哈希值是否匹配;若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;若否,则使所述滑动窗口向前移动一步。5.如权利要求2至4任一项所述的数据去重的收敛分块方法,其特征在于,在所述判断所述当前分块的长度是否小于标准预设长度之前还包括:跳跃移动所述滑动窗口一个预设跳跃长度;当跳跃移动所述滑动窗口一个预设跳跃长度后,判断所述滑窗口的位置是否是所述数据流的结束位置;若是,则记录所述结束位置为一个分块位置,并结束分块操作;若否,则使所述滑动窗口向前移动一步。6.一种数据去重的收敛分块装置...

【专利技术属性】
技术研发人员:夏文付忞吴大立古亮
申请(专利权)人:深圳市深信服电子科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1