文件数据去重能够节省存储空间,通过对重复数据的删除,可以大大降低需要的存储介质数量,进而降低成本。另一方面,则能够大大提升用户体验。
文件数据去重原理
粒度去重:看最粗粒度也是最容易实现的一种,通过计算文件hash值,对于相同的hash值的文件只存储一份。缺点是去重效果较差。比较适合小文件。关于利用hash值去重我在相似图片快速去重软件,对比计算速度全网第一这篇文章中有给大家提供相应软件,可以去体验一下。
固定分块的数据去重:将文件按照offset切分为固定大小的数据块,比如2MB,比如200KB,然后在数据块的级别做去重。这种方法实现简单,还可以用来实现断点续传和并发传输。缺点是去重效果还是比较差,难以应对在文件中间insert数据的情况。
可变分块的数据去重:通过对数据的每一个滑动窗口计算滚动hash值,并选取具有满足固定模式的hash值的窗口作为分界点,这样就实现了基于内容的数据分块。然后对数据分块计算hash值,在分块的级别上实现数据去重。这种方式的优点是去重效果好,可以应对数据的各种变化情况,缺点是技术流程复杂。