【问题标题】:Relationship between Rabin-Karp Algorithm and DeduplicationRabin-Karp算法与去重的关系
【发布时间】:2017-03-20 13:24:23
【问题描述】:

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

【问题讨论】:

    标签: algorithm hash duplicates rabin-karp


    【解决方案1】:

    对于可变大小的分块去重,我们有两个步骤:

    1. 分块
    2. 索引

    Rabin Karp rolling hash 是一种分块算法,可将文件切割成不同大小的块。然后我们需要索引/查询数据块,因为我们进行了重复数据删除。一般的方法是计算chunk的hash值,并以hash为key存储chunk。使用 Rabin Karp 算法,一切都很简单,因为我们同时获得了哈希和数据块。

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2022-01-18
      • 2018-04-09
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多