Rabin指纹算法在重复数据检测中的应用研究.docVIP

Rabin指纹算法在重复数据检测中的应用研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Rabin指纹算法在重复数据检测中的应用研究.doc

Rabin指纹算法在重复数据检测中的应用研究 摘要:Rabin指纹算法计算效率高、随机性好,可将数据更改对连续指纹序列的影响限制在局部范围内,广泛应用于重复数据检测领域。分析了Rabin指纹在有限域GF(2n)上的运算原理,得出滑动窗口移动时定长字符序列的数字指纹快速计算公式。用伪代码描述了Rabin指纹算法在重复数据检测中的应用,并用VC++语言进行了算法实现,在普通计算机上提取Word文档、程序源代码和BMP图像等三类文件作为测试数据集,测试结果表明算法是有效的。 关键词: 存储系统; 重复数据检测; Rabin指纹; 基于内容分块; 有限域 中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2013)21-4918-03 Rabin指纹算法[1]由美国哈佛大学教授拉宾(Rabin)提出,具有计算效率高、结果对任意数据呈现出均匀分布的特点,常用于进行快速比较并识别出重复数据,在很多领域有着广泛的应用。文献[2]利用通过计算邮件正文的Rabin指纹实现高速网络环境下的实时垃圾邮件检测。文献[3]基于Rabin指纹方法实现URL的去重,提高检索速度。文献[4]在对Web页面并行采集过程中利用Rabin指纹实现网页的识别。文献[5]利用改进的Rabin指纹算法实现对大规模分布式网络中恶意代码特征码的自动提取。 重复数据检测和删除技术能够消除存储系统中的冗余数据,降低用户的磁盘采购费用,减少在网络中传输的数据量,为企业和个人节约在人力、设备、资源、资金等方面的开销,带来良好的经济效益。Rabin指纹算法常用在基于内容分块(Content Defined Chunking,CDC)[6]的重复数据检测中,以便实现文件中数据的分块,在LBFS[7]、Pastiche[8]、Deep Store[9]等归档或存储系统中得到广泛应用。国内也对Rabin指纹在重复数据检测和删除中的应用进行了一些研究,文献[10]提出一种并行层次化的重复数据删除算法,文献[11]实现了一个基于重复数据删除的多用户文件备份系统,文献[12]实现了一个基于因果关系的数据去重结构CABDedupe,文献[13]提出了一种基于重复数据删除的Oracle数据库备份系统。 1 技术原理 CDC方法采取一个数据滑动窗口从文件的开头向尾部滑动,逐一计算出滑动窗口内数据块的Rabin指纹,如果指纹值跟某个预设的值相同,则将该窗口的开始位置作为数据块的分割点。当窗口滑动到文件末尾时,文件分块结束。对于划分的每一个数据块计算出其哈希值,以便进一步检测它是否重复数据块。CDC方法可以将数据更新对数据块边界划分的影响控制在更新位置附近的少数几个块内,保持其他数据块不变,适合应用于更新频繁的数据集。为了避免产生过大的块,一般要规定数据块大小的上限。为了避免产生过小的块,可以规定数据块大小的下限。 以文件类型为作为分类项目,对比数据块最大容量分别为64、256、512、1024、4096时的重复数据检测率,结果如图3所示。可见数据块越大,意味着检测粒度更粗,重复数据检测率将会下降,每类文件的在数据分块大小分别取不同值的表现排序基本是一致的。 3.2 磁盘利用率测试 磁盘利用率是数据实际容量与占用空间的比值,用于衡量磁盘空间的实际使用比例。磁盘空间是以簇为基本单位进行分配的(如在NTFS文件系统为4KB),比如某个数据块只有3000字节, 但它实际上要占用4096字节的磁盘空间, 因此这个数据块对磁盘空间的利用率只有73%。对于采用了重复数据删除技术的存储系统, 由于很多数据块的容量可能不是簇的整数倍,造成磁盘空间无法完全利用,将会抵消重复数据删除的效果。 以文件类型为作为分类项目,对比数据块最大容量分别为64、256、512、1024、4096时的磁盘利用率, 结果如图4所示。可见随着数据块的增大, 磁盘利用率将会略有下降,由于数据块分块大小不一的原因,导致约有10%到15%的磁盘空间无法利用,一定程度上抵消了重复数据消冗的效果。 4 结论 实验仅在小数据集上进行, 实际生产中使用的存储系统中的数据分块粒度会更大些, 一般在4KB至128KB之间, 但系统中的重复数据比例也将会更多, 两方面产生的影响相互抵消, 因此实验测试结果与实际存储环境不会有大太差距, 实际上很多公开报道的重复数据删除系统的数据指标也与本实验结果相近。该文的工作结果具有实际指导意义。 以Rabin指纹作为数据块划分依据的重复数据检测方法适合应用于更新频繁的数据集,已被国内外很多存储系统所采用。近年来, 随着数据信息的爆炸性增长, 企业对存储的需求越来越大, 已从前几年的TB级上升到PB级, 甚至EB级。由于网络共享手段的日益普及,人们交流数据的机会大大增加,以网络硬盘为代表的网络存储系统中充斥着

文档评论(0)

lnainai_sj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档