一种云存储中重复数据删除的检索算法的制作方法

文档序号:11063557阅读:559来源:国知局

计算机存储、云存储中重复数据的删除及检索



背景技术:

随着信息技术和网络技术的发展,大数据与海量数据已经成为数据中心的主要业务,而重复数据删除与压缩是可以节约大量数据存储的技术。只有备份还不够;重复数据删除与压缩即将成为主存储的必备功能。重复数据删除是一种压缩技术,通过识别重复内容,进行去重,并在对应的存储位置留下指针来最小化数据量;这个指针通过给定大小的数据模式进行哈希创建。目前只有少数主存储阵列提供重复数据删除作为产品的附加功能;对于租用云空间的用户来说,大量重复数据充斥在云空间内,不仅对检索造成麻烦,还浪费了宝贵的云资源,产生额外开销,据报道,只有不到5%的磁盘阵列真正支持在线重复数据删除与压缩,通过数据去重节约的空间十分可观。要进行重复数据的删除,首先要检索出新写入文件在整个存储系统中与哪一个文件相似,从而输出相似度,已决定是否进行精细对比,这种做法对系统的开销极大,同时随着存储空间内文件的增加,运算将越来越耗时,不利于大量文件的周转,而且,仅仅用相似度作为判断依据是有缺陷的,因为相似度还会受到抽样方法和抽样大小的影响。为解决这种需求,本发明提出一种云存储中重复数据删除的检索算法,解决了抽样对相似度的影响。



技术实现要素:

针对重复数据在云空间中,对检索造成麻烦,还浪费了宝贵的云资源,产生额外开销以及为了解决抽样对相似度的影响,本发明提出了一种云存储中重复数据删除的检索算法。

本发明为了实现上述目的所采用的技术方案:对存储空间内的文件进行分块,并随机抽取部分数据块作为样本,对样本数据进行哈希,提取指纹特征,计算不同文件样本之间的相似度,相似度结合抽样大小,建立系统文件之间重复率函数,通过重复率设定的阈值来判断文件之间的重复情况,选取对比文件,对其余文件冗余的数据块进行删除处理,建立索引并进行存储,在提取文件时候依据索引和对比文件,重构出数据。

本发明的有益效果:本发明对系统开销较小,运行时间短,并且维持较高的重复删除率。更适用于大量数据存储和云存储环境下使用。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚,以下是本发明技术方案的具体计算步骤过程:

步骤1.指纹数据值得是文件分块后,对每一个文件块哈希,对应的哈希值即为指纹。

步骤2.计算不同文件样本之间的相似度,其具体求解过程如下:

设在存储空间中有文件P将他们按照字长分为n个文件块,对每一个文件块进行哈希,输出哈希值的集合AP,AP=(aP1,aP2,…,aPn);同理,对于文件Q则有:AQ=(aQ1,aQ2,…,aQn)

如果:APi=aQi,表示两个文件块相同,那么在文件P/Q中,具有相同块的数量可以表示为:∑imin(APi,aQi)两个文件的总块数为:∑imax(APi,aQi),那么令r表示两个文件之间的相似度,则:

但是,如果这样去判定,在大数据环境和云存储环境下,明显是不可行的,因为计算量太大,引起的系统开销大,而且耗时长。

所以在相似度的计算上,本发明采用抽样处理:在文件P哈希值的集合AP=(aP1,aP2,…,aPn),随机抽取u个样本放入集合U中UP=(aP1,aP2,…,aPu),1<u<n,对文件Q做同样处理,可以得到样本的相似度为:

步骤3.相似度结合抽样大小,建立系统文件之间重复率函数,其具体求解过程如下:

由于抽样计算,系统的运算时间和占用率都大为缩小,但是r并不能准确表示表示文件Q,P之间的相似性。由此,文件P在分为n个文件块,哈希后得到n个哈希值,也就是n个文件指纹,设m表示冗余块,k是从n个文件指纹中抽取出来的样品文件指纹数,当从文件块中抽取一定数目的哈希时,有概率(c)抽取到冗余块,那么抽取到冗余数据块的概率符合离散型随机变量分布规律,故抽取到冗余块的期望(E)为:

由此可得样本冗余度为t:

抽样样本相似度r:

在理想状态下,抽样数目最大可以等于文件总数,此时冗余度和相似度为

所以,而文件之间的重复率f(k,r),则有:

f(k,r)=E/m=(2k·r)/((r+1)·m)

在本发明方法中,是以文件为单位抽样的,分别从每个文件中抽取部分块的哈希指纹以实现相似度检测,在运行实际中,数据集中每个文件的大小不同,假设系统中共有l个文件在对第j个文件进行抽样的时候则有:

fj(k,rj)=E/m=(2k·rj)/((rj+1)·mj)

所以,对于整个系统则有:

其中,1≤j≤l

步骤4.通过重复率设定的阈值来判断文件之间的重复情况以及通过对比文件来重构数据,其具体描述过程如下:

系统文件之间重复率函数计算的是写入文件与存储空间内的文件或者是存储空间内文件之间的重复率,重复率越大,则说明两个文件之间的冗余越多。

在初次运行程序时候,会在存储空间所有文件之间进行一次对比,设定一个重复率的阈值δ,0≤δ≤1,对于两两重复率值都大于δ的,则认为几个文件之间重复率大,需要进行删重处理,选取其中一个文件作为基准文件,然后对其他文件遍历所有指纹块,快速找出冗余块,重复的数据直接舍弃,只记录下索引信息。在首次运行时候,受文件的多少影响,首次运行时间花费大于后续写入文件。

后续写入新文件时候,只需要抽样查找新文件与系统中文件的指纹信息,计算重复性,在与某个文件的f值大于δ时候停下,然后精确对比,舍弃新写入文件的冗余部分,只将索引信息和不同的信息块上传至云空间或者其他存储空间。

提取信息的时候,只需要根据索引文件和对比文件,快速恢复文件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1