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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。