一种重复数据删除方法及装置制造方法及图纸

技术编号:14652607 阅读:63 留言:0更新日期:2017-02-16 15:09
本发明专利技术公开了一种重复数据删除方法及装置,将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据固定长度前缀将数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除数据块中的重复数据。本申请基于数据块指纹的固定长度前缀,将接收的数据块分发到不同的处理队列中,使用单独的线程对每个处理队列中的数据块进行处理,只从对应指纹固定长度前缀的重删元数据块子表中查重,避免了一致性锁的开销;每个处理队列工作线程通过并行的方式实现查重操作,减少了去重计算中系统资源的消耗,提高了数据重删效率。

【技术实现步骤摘要】

本专利技术涉及数据存储
,特别是涉及一种重复数据删除方法及装置
技术介绍
随着信息技术和互联网技术的发展,各种数据正以倍数级速度逐年增长,高性能但容量相对较小的固态存储介质在存储系统中占的比重越来越大。重复数据删除技术通过对发送到存储系统的数据流进行分块、比对计算,将重复的数据删除掉,实现存储资源的高效利用。在重复数据删除的实现中,用户写到存储中的数据流首先根据一定的块大小进行分割,然后重删模块对分割后的数据块的全部数据进行哈希计算(MD5或SHA1),生成该数据块的全局唯一的数据指纹。然后系统在全局重删元数据表(数据块的指纹信息和数据块的存储地址等信息)中对该指纹进行查找,如果查找到该指纹信息,则将该数据块丢弃并返回给上层模块查找到的与指纹信息对应的LBA地址,如果查找不到,这为该数据块分配地址并将重删数据块元数据添加到全局表中。由于对数据块计算签名和从全局重删元数据表中查找数据块签名是数据重删模块的性能瓶颈点,业界普遍使用带互斥锁保护的全局删除元数据表并行查找策略。在全局元数据表中,HASH桶的桶标的大小决定了互斥锁的粒度大小。随着桶标大小的增大,数据重删的效率越高。随着并行线程数量的增加,数据重删的效率同样越来越高,当并行线程数据增长到一定数量后,数据重删效率增长幅度逐渐减小并达到一个极限。这种并行策略由于处理一致性锁的开销,未能达到期望的性能需求。
技术实现思路
本专利技术的目的是提供一种重复数据删除方法及装置,以解决现有带互斥锁的重复数据删除方法效率较低、资源消耗较多的问题。为解决上述技术问题,本专利技术提供一种重复数据删除方法,包括:将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据所述固定长度前缀将所述数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据。可选地,所述根据所述固定长度前缀将所述数据块分发到不同的处理队列中包括:根据所述固定长度前缀将全局重删元数据表划分为多个重删子元数据表;所述每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据包括:每个查重线程对应一个所述重删子元数据表,分别对相应重删子元数据表中的元数据进行查重,删除所述重复数据。可选地,所述分别对相应重删子元数据表中的元数据进行查重,删除所述重复数据包括:根据数据块的指纹信息从所述重删子元数据表中进行查找,如果查找到数据块指纹,则调用数据块的回调函数更新所述数据块的地址;如果未查找到所述数据块指纹,则为所述数据块申请存储地址,并将所述数据块添加到写入列表中。可选地,在所述将所述数据块添加到写入列表中之后还包括:对所述数据块进行调度与合并,进行数据的写入。可选地,所述对每个数据块进行指纹计算包括:采用MD5或SAH1的方法对所述数据进行指纹计算。本专利技术还提供了一种重复数据删除装置,包括:数据分块子模块,用于将数据流划分为预设块大小的数据块;指纹计算子模块,用于对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;固定长度前缀获取子模块,用于获取计算出的指纹的固定长度前缀,根据所述固定长度前缀将所述数据块分发到不同的处理队列中;查重子模块,用于每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据。可选地,所述固定长度前缀获取子模块具体为根据所述固定长度前缀将全局重删元数据表划分为多个重删子元数据表的模块;所述查重子模块具体为每个查重线程对应一个所述重删子元数据表,分别对相应重删子元数据表中的元数据进行查重,删除所述重复数据的模块。可选地,所述查重子模块具体用于:根据数据块的指纹信息从所述重删子元数据表中进行查找,如果查找到数据块指纹,则调用数据块的回调函数更新所述数据块的地址;如果未查找到所述数据块指纹,则为所述数据块申请存储地址,并将所述数据块添加到写入列表中。可选地,还包括:写入模块,用于在将所述数据块添加到写入列表中之后,对所述数据块进行调度与合并,进行数据的写入。可选地,所述指纹计算子模块具体为:采用MD5或SAH1的方法对所述数据进行指纹计算的模块。本专利技术所提供的重复数据删除方法及装置,将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据固定长度前缀将数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除数据块中的重复数据。本申请基于数据块指纹的固定长度前缀,将接收的数据块分发到不同的处理队列中,使用单独的线程对每个处理队列中的数据块进行处理,只从对应指纹固定长度前缀的重删元数据块子表中查重,避免了一致性锁的开销;每个处理队列工作线程通过并行的方式实现查重操作,减少了去重计算中系统资源的消耗,提高了数据重删效率。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术所提供的重复数据删除方法的一种具体实施方式的流程图;图2为本专利技术所提供的重复数据删除方法的另一种具体实施方式的流程图;图3为本专利技术所提供的重复数据删除方法的另一种具体实施方式的示意图;图4为本专利技术实施例提供的重复数据删除装置的结构框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术所提供的重复数据删除方法的一种具体实施方式的流程图如图1所示,该方法包括:步骤S101:将数据流划分为预设块大小的数据块;步骤S102:对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;具体地,可以采用MD5或SAH1的方法对所述数据进行指纹计算,当然并不限于这两种方式。步骤S103:获取计算出的指纹的固定长度前缀,根据所述固定长度前缀将所述数据块分发到不同的处理队列中;步骤S104:每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据。本专利技术所提供的重复数据删除方法,将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据固定长度前缀将数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除数据块中的重复数据。本申请基于数据块指纹的固定长度前缀,将接收的数据块分发到不同的处理队列中,使用单独的线程对每个处理队列中的数据块进行处理,只从对应指纹固定长度前缀的重删元数据块子表中查重,避免了一致性锁的开销;每个处理队列工作线程通过并行的方式实现查重操作,减少了去重计算中系统资源的消耗,提高了数据重删效率。在上述实施例的基础上,本专利技术所提本文档来自技高网
...
一种重复数据删除方法及装置

【技术保护点】
一种重复数据删除方法,其特征在于,包括:将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据所述固定长度前缀将所述数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据。

【技术特征摘要】
1.一种重复数据删除方法,其特征在于,包括:将数据流划分为预设块大小的数据块;对每个数据块进行指纹计算,将计算出的指纹信息添加到数据块结构的属性中;获取计算出的指纹的固定长度前缀,根据所述固定长度前缀将所述数据块分发到不同的处理队列中;每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据。2.如权利要求1所述的重复数据删除方法,其特征在于,所述根据所述固定长度前缀将所述数据块分发到不同的处理队列中包括:根据所述固定长度前缀将全局重删元数据表划分为多个重删子元数据表;所述每个处理队列的工作线程通过并行的方式进行查重操作,删除所述数据块中的重复数据包括:每个查重线程对应一个所述重删子元数据表,分别对相应重删子元数据表中的元数据进行查重,删除所述重复数据。3.如权利要求2所述的重复数据删除方法,其特征在于,所述分别对相应重删子元数据表中的元数据进行查重,删除所述重复数据包括:根据数据块的指纹信息从所述重删子元数据表中进行查找,如果查找到数据块指纹,则调用数据块的回调函数更新所述数据块的地址;如果未查找到所述数据块指纹,则为所述数据块申请存储地址,并将所述数据块添加到写入列表中。4.如权利要求3所述的重复数据删除方法,其特征在于,在所述将所述数据块添加到写入列表中之后还包括:对所述数据块进行调度与合并,进行数据的写入。5.如权利要求1至4任一项所述的重复数据删除方法,其特征在于,所述对每个数据块进行指纹计算包括:采用MD5或SAH1的方法对所述...

【专利技术属性】
技术研发人员:苑忠科殷雷
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南;41

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

1