一种基于相似性的文件分类方法技术

技术编号:8593767 阅读:172 留言:0更新日期:2013-04-18 06:54
一种基于相似性的文件分类方法,属于计算机存储系统领域,解决现有分类方法计算量和内存占用较大的问题。本发明专利技术包括分块步骤、计算校验和步骤、统计步骤和分类步骤。本发明专利技术对文件数据的处理不需要随机读写,只需要从头到尾的进行一次处理,就可以完成分块,计算校验和,统计,排序以及最终确定分类所有步骤;可以高效的获取文件间的关联信息,将在二进制数据层面上相似的文件划归为一类,对文件给出所属类别的唯一标识,在判定两个文件是否相似时,只需要判断它们所属类别的标识是否相同即可,处理速度快,占用内存少,可以通过运行参数调整判定精度;适用于各类需要获取数据相似性的应用,特别面向存储、数据去重的相关应用。

【技术实现步骤摘要】

本专利技术属于计算机存储系统领域,具体涉及,用于提高按相似性对文件进行分类时的处理速度,降低内存占用。
技术介绍
图灵奖获得者Jim Gray提出了一个经验定律网络环境下,每18个月产生的数据量等于有史以来数据量之和。国际数据公司(IDC)最新“数字宇宙”研究结果显示,全世界的信息量每两年以超过翻番的速度增长,2011年产生和复制1. 8ZB的海量数据,其增长速度超过摩尔定律。大数据已经成为学术界与工业界讨论的热点话题。如何有效的存储这些数据已经成为目前存储系统面临的一大挑战。分布式存储系统解决了海量数据的存储问题,重复数据删除技术则解决了节省存储空间和网络带宽的问题。对于像网盘这样的网络应用,由于其管理着海量的数据,而且文件之间有较高的相似性,利用相似性进行重复数据删除可以起到提高存储空间使用效率,提升系统输入输出吞吐量的效果。目前业界所使用的线上重复数据删除系统多是采用了局部性原理来提高重删处理的吞吐率,缓解磁盘瓶颈。最新的研究成果显示,利用相似性可以在损失少量重复数据删除率的情况下,提升重复数据删除的速度,吞吐率,减少重复数据删除时占用的资源。所以,将这一新的技术加以研究,解决其在延迟,删除等方面的问题后,将显著提升存储系统的磁盘利用率,吞吐率,降低对网络的需求。目前公开的主流相似数据检测技术,主要有三种,第一种是基于瓦(shingle)的检测技术,见Broder AZ.1dentifying and filtering near-duplicatedocuments.1n Giancarlo R,Sankoff D,eds. Proc. of the Ilth Annual Symp. OnCombinatorial PatternMatching. London :Springer-Verlag,2000. 1-10 ;该方法实现简单,适用性广,在实际系统中多有使用,但计算量大,内存占用大;第二种是基于布隆过滤器(bloom filter)的检测技术,见Jain N,Dahlin M,TewariR. Taper Tiered approach for eliminatingredundancy in replica synchronization.1n Proc. of the4th Usenix Conf. on Fileand Storage Technologies(FAST2005). Berkeley USENIX Association,2005. 281-294.这种方法比第一种方法在时间和空间开销有较大优势,但存在一定的错误匹配概率,计算量和内存占用仍然有进一步减小的空间;第三种是基于模式匹配的检测技术,见Manber U. Finding similar files in a large file system.1n Proc. of the USENIXWinter 1994Technical Conf. Berkeley USENIX Association,1994. 1-10.该方法则需要对整个文件集进行扫描,也没有解决计算量和内存占用较大的问题。MD5哈希算法与SHAl哈希算法,都是计算机广泛使用的哈希算法,主流编程语言已有MD5哈希算法与SHAl哈希算法的实现
技术实现思路
本专利技术提供,解决现有分类方法计算量和内存占用较大的问题。本专利技术所提供的,包括下述步骤(I)分块步骤,包括下述子步骤(1.1)将文件字节流上的开始与结束位置作为两个分界点,将一个窗口的后沿置于文件字节流的开始位置上,利用哈希函数计算窗口内字节的哈希值,所述窗口长度LO为4字节 1024字节;所述哈希函数的散列空间不大于设定的块最大字节数P,P = 128 8192 ;(1.2)判断所述哈希值与预定值是否相同,是则进行子步骤(1. 3),否则转子步骤(1. 4),所述预定值从所述哈希函数的值域中任意选择一个;(1. 3)将窗口的前沿所在字节作为当前分界点,判断当前分界点与前一个分界点之间的字节数是否小于设定的块最小字节数,是则忽略当前分界点,执行子步骤(1. 4),否则执行子步骤(1. 5),所述块最小字节数为8 P ;(1.4)将所述窗口沿文件字节流滑动一个字节,判断窗口前沿与前一个分界点之间的字节数是否达到设定的块最大字节数P,是则把窗口前沿设定为当前分界点,执行子步骤(1. 5),否则计算窗口内字节的哈希值,转子步骤(1.2);(1.5)将当前分界点与前一个分界点之间的字节作为一个块,记为当前块,将窗口后沿置于文件字节流上当前分界点的下一个字节处,执行步骤(2);(2)计算校验和步骤计算检验和s,并将其保存在临时校验和结果集中,s = a+2%,其中,a、b为中间参数本文档来自技高网
...

【技术保护点】
一种基于相似性的文件分类方法,包括下述步骤:(1)分块步骤,包括下述子步骤:(1.1)将文件字节流上的开始与结束位置作为两个分界点,将一个窗口的后沿置于文件字节流的开始位置上,利用哈希函数计算窗口内字节的哈希值,所述窗口长度L0为4字节~1024字节;所述哈希函数的散列空间不大于设定的块最大字节数P,P=128~8192;(1.2)判断所述哈希值与预定值是否相同,是则进行子步骤(1.3),否则转子步骤(1.4),所述预定值从所述哈希函数的值域中任意选择一个;(1.3)将窗口的前沿所在字节作为当前分界点,判断当前分界点与前一个分界点之间的字节数是否小于设定的块最小字节数,是则忽略当前分界点,执行子步骤(1.4),否则执行子步骤(1.5),所述块最小字节数为8~P;(1.4)将所述窗口沿文件字节流滑动一个字节,判断窗口前沿与前一个分界点之间的字节数是否达到设定的块最大字节数P,是则把窗口前沿设定为当前分界点,执行子步骤(1.5),否则计算窗口内字节的哈希值,转子步骤(1.2);(1.5)将当前分界点与前一个分界点之间的字节作为一个块,记为当前块,将窗口后沿置于文件字节流上当前分界点的下一个字节处,执行步骤(2);(2)计算校验和步骤:计算检验和s,并将其保存在临时校验和结果集中,s=a+216b,其中,a、b为中间参数:a=(Σi=1L1xi)modM,b=(Σi=1L1(L1-i-1)xi)modM,L1为当前块长度,xi表示当前块中的第i个字节,1≤i≤L1,M为大于215且小于232的整数;重复执行步骤(1)和步骤(2),直至计算完文件字节流的最后一个块的校验和;(3)统计步骤,包括下述子步骤:(3.1)统计各个相同校验和出现的次数;(3.2)按相同校验和出现次数从多到少,对所有校验和进行排序,形成校验和序列,相同校验和在校验和序列中仅出现一次;(4)分类步骤,包括下述子步骤:(4.1)判断校验和序列中的校验和数目是否大于或等于设定的取样数N,是则执行子步骤(4.2),否则分类失败,返回分类失败提示;N=1~10,取样数越大,分类精度越高,但系统开销越大,反之亦然;(4.2)在所述校验和序列中取前N个校验和,计算其指纹值,将该指纹值作为文件所属类别标识。...

【技术特征摘要】
1.一种基于相似性的文件分类方法,包括下述步骤 (1)分块步骤,包括下述子步骤(1.1)将文件字节流上的开始与结束位置作为两个分界点,将一个窗口的后沿置于文件字节流的开始位置上,利用哈希函数计算窗口内字节的哈希值,所述窗口长度LO为4字节 1024字节;所述哈希函数的散列空间不大于设定的块最大字节数P,P = 128 8192 ;(1.2)判断所述哈希值与预定值是否相同,是则进行子步骤(1.3),否则转子步骤(1. 4),所述预定值从所述哈希函数的值域中任意选择一个; (1. 3)将窗口的前沿所在字节作为当前分界点,判断当前分界点与前一个分界点之间的字节数是否小于设定的块最小字节数,是则忽略当前分界点,执行子步骤(1. 4),否则执行子步骤(1. 5),所述块最小字节数为8 P ; (1...

【专利技术属性】
技术研发人员:王芳冯丹陈俭喜杜鑫郑超
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1