许多重复数据删除库或应用程序使用Rabin Karp滚动哈希算法进行快速哈希以从文件二进制文件中删除一个块。
我的问题是,为什么Rabin Karp算法经常用于削减块?
我知道它是快速滚动哈希算法,但我的问题更为基础
切割块的方法会有很多种
例如,将一个字节(没有mod操作)与切割块的值进行比较将导致平均256字节的块
比较9位将导致平均512字节块等
不仅仅是比较最后几位没有散列结果,类似于滚动哈希算法,如Rabin Karp,但速度更快?
答案 0 :(得分:0)
对于可变大小的分块重复数据删除,我们有两个步骤:
Rabin Karp滚动哈希是一种分块算法,可将文件切割成不同大小的块。然后我们需要索引/查询数据块,因为我们进行重复数据删除。一般方法是计算块的哈希值,并以哈希为键存储块。使用Rabin Karp算法,所有这些都是直截了当的,因为我们同时获得了哈希和数据块。
你提到了比较最后几位可以帮助将文件分割成碎片的方法,但是如果你想索引这些块,我们怎样才能获得密钥?所以你必须计算哈希。
希望这会有所帮助。