Rabin-Karp算法与重复数据删除之间的关系

时间:2016-11-07 08:54:44

标签: algorithm hash duplicates rabin-karp

许多重复数据删除库或应用程序使用Rabin Karp滚动哈希算法进行快速哈希以从文件二进制文件中删除一个块。
我的问题是,为什么Rabin Karp算法经常用于削减块? 我知道它是快速滚动哈希算法,但我的问题更为基础 切割块的方法会有很多种 例如,将一个字节(没有mod操作)与切割块的值进行比较将导致平均256字节的块 比较9位将导致平均512字节块等 不仅仅是比较最后几位没有散列结果,类似于滚动哈希算法,如Rabin Karp,但速度更快?

1 个答案:

答案 0 :(得分:0)

对于可变大小的分块重复数据删除,我们有两个步骤:

  1. 分块
  2. 索引
  3. Rabin Karp滚动哈希是一种分块算法,可将文件切割成不同大小的块。然后我们需要索引/查询数据块,因为我们进行重复数据删除。一般方法是计算块的哈希值,并以哈希为键存储块。使用Rabin Karp算法,所有这些都是直截了当的,因为我们同时获得了哈希和数据块。

    你提到了比较最后几位可以帮助将文件分割成碎片的方法,但是如果你想索引这些块,我们怎样才能获得密钥?所以你必须计算哈希。

    希望这会有所帮助。