一种实现重复数据删除的方法及装置的制造方法

文档序号:9865558阅读:562来源:国知局
一种实现重复数据删除的方法及装置的制造方法
【技术领域】
[0001]本申请涉及数据存储技术,尤指一种实现数据删除的方法及装置。
【背景技术】
[0002]随着计算机信息化程度的提高,人类已经进入了信息时代。计算机以及互联网已经深入各行各业,这也使得信息数据量呈几个级数增长。而在这海量的数据中,存在大量的冗余数据。为了保证数据的安全,需要不断对数据进行备份,而在备份过程中,大量的冗余数据会随之产生。
[0003]针对冗余数据进行处理的方法被称为重复数据删除。根据对数据的处理时机不同,重复数据删除分为带内和带外两种;其中,带内是一种嵌入在整个输入/输出(I/o)流程中的处理方式,也称为实时重复数据删除。实时重复数据删除是数据在写入存储介质时分析是否有重复,并对重复的数据直接进行删除处理,以实现在第一时间减少空间占用,不过其更耗资源,但这有可能会影响写入的性能。带外是先正常写入数据,之后再在某个时刻对磁盘上的数据进行重删,也称为后处理重复数据删除。后处理重复数据删除是在数据写入磁盘后再进行重复数据删除操作,其技术优势在于其不会影响写入性能,但要求有足够的磁盘空间来存储所有数据,直到业务非高峰时刻时进行的重复数据删除操作。
[0004]无论是带内方式还是带外方式的重复数据删除,首先都要找到重复数据,由于需要处理的数据量可能是非常大的,从大量的数据中找到相同内容的数据块是非常费时的。尽管现有技术中通过对数据块内容的数据指纹(哈希值),在被称为数据重删表的重删信息索引表中实现重复数据查找,但是,记录重复数据信息数据重删表的数据量也非常的大,基于数据重删表的数据量大,因此其信息不能被全部放入内存,内存只能作为磁盘上数据重删表的缓冲(cache),所以在通过数据指纹进行查找时,需要在内存和磁盘中混合查找,因此,对数据重删表的检索成为重复数据重删系统的主要性能瓶颈。目前,对数据重删表的检索也提出了许多优化方法,例如散列表、分级索引和机制等,但通常对于一个数据存储节点,数据重删表仍然同时保存在内存和磁盘中,实时重删系统在检索到磁盘部分的数据重删表时,需要完整的数据重删表的查找,比较费时,对I/O性能造成影响。

【发明内容】

[0005]为了解决上述问题,本发明提供一种实现重复数据删除的方法及装置,无需进行完整数据重删表的查找,减少进行数据重删的时间消耗,降低对I/o性能的影响。
[0006]为了达到本发明的目的,本申请提供一种实现数据重删的方法;包括:
[0007]在执行实时数据重删过程中,在对内存的数据重删表完成存储数据块的重删查找后;或,在预设时长内,对磁盘的数据重删表未完成存储数据块的重删查找时,将存储数据块写入磁盘;
[0008]根据存储数据块的写入建立临时数据重删表,通过预设的策略对临时数据重删表中记录的存储数据块进行后处理重删。
[0009]进一步地,在执行实时数据重删之前,该方法还包括:
[0010]获取所述存储数据块的哈希值指纹,作为删除重复数据的关键字KEY ;
[0011]通过布鲁姆过滤器判断KEY是否记录在所述数据重删表中,当未记录在所述数据重删表中时,进行所述存储数据块的存储并将KEY和存储地址更新到所述数据重删表中;否则,执行实时数据重删。
[0012]进一步地,通过预设的策略对所述临时数据重删表中记录的存储数据块进行后处理重删具体包括:
[0013]设置所述临时数据重删表的处理时长阈值,在处理时长到达阈值时,启用独立线程,对所述临时数据重删表中记录的存储数据块进行后处理重删;或者,
[0014]设置所述临时数据重删表的存储量阈值,当临时数据重删表达到存储量阈值时,启用独立线程,对所述临时数据重删表中记录的存储数据块进行后处理重删;或者,
[0015]查询到系统空闲时,启用独立线程,对所述临时数据重删表中记录的存储数据块进行后处理重删。
[0016]进一步地,该方法还包括:将完成后处理重删的所述临时数据重删表并入到数据重删表中;具体包括:
[0017]对后处理重删过程中,对非重复的写入磁盘的所述存储数据块,将其在所述临时数据重删表的信息加入到数据重删表;对重复的存储数据块,将其在临时数据重删表的信息删除后,修改数据重删表中重复的存储数据块对应的引用次数信息。
[0018]另一方面,本申请还提供一种实现重复数据删除的装置,包括:写入单元和临时数据重删处理单元;其中,
[0019]写入单元,用于在执行实时数据重删过程中,在对内存的数据重删表完成存储数据块的重删查找后;或,在预设时长内,对磁盘的数据重删表未完成存储数据块的重删查找时,将存储数据块写入磁盘;
[0020]临时数据重删处理单元,用于根据存储数据块的写入建立临时数据重删表,通过预设的策略对临时数据重删表中记录的存储数据块进行后处理重删。
[0021]进一步地,该装置还包括获取单元和查找处理单元;其中,
[0022]获取单元,用于在写入单元执行实时数据重删之前,从存储数据块中获取存储数据块的哈希值指纹,作为删除重复数据的关键字KEY ;
[0023]查找处理单元,用于通过布鲁姆过滤器判断KEY是否记录在数据重删表中,当未记录在数据重删表中时,进行存储数据块的存储并将KEY和存储地址更新到数据重删表中;否则,执行实时数据重删。
[0024]进一步地,临时数据重删处理单元具体用于,根据存储数据块的写入建立临时数据重删表;
[0025]设置所述临时数据重删表的处理时长阈值,在处理时长到达阈值时,启用独立线程,对临时数据重删表中记录的存储数据块进行后处理重删;或者,
[0026]设置临时数据重删表的存储量阈值,当临时数据重删表达到存储量阈值时,启用独立线程,对所述临时数据重删表中记录的存储数据块进行后处理重删;或者,
[0027]查询到系统空闲时,启用独立线程,对所述临时数据重删表中记录的存储数据块进行后处理重删。
[0028]进一步地,临时数据重删处理单元还用于,在后处理重删后,将临时数据重删表并入到数据重删表中;具体的,
[0029]对后处理重删过程中,对非重复的写入磁盘的所述存储数据块,将其在所述临时数据重删表的信息加入到数据重删表;对重复的存储数据块,将其在临时数据重删表的信息删除后,修改数据重删表中重复的存储数据块对应的引用次数信息,以实现将后处理重删的临时数据重删表并入到数据重删表中。
[0030]与现有技术相比,本发明提供的技术方案,包括:在执行实时数据重删过程中,在对内存的数据重删表完成存储数据块的重删查找后;或,在预设时长内,对内存的数据重删表完成存储数据块的重删完成查找和对磁盘的数据重删表未完成存储数据块的重删查找时,将存储数据块写入磁盘,并根据存储数据块的写入建立临时数据重删表,根据预设的策略对临时数据重删表中记录的存储数据块进行后处理重删。本发明通过在完成内存中数据重删表的重删查找后,或预设时长内未完成完整的数据重删表的查找时、建立临时数据重删表,进行后处理重删,避免了数据重删表的全盘查找,减少了实时I/o时延,提高了数据重删的工作效率。进一步的,通过布鲁姆过滤器进行数据重删表的快速判断,减少了实时数据重删所要处理的存储数据块。
【附图说明】
[0031]附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
[0032]图1为本发明实现重复数据删除的方法的流程图;
[0033]图2为本发明实现重复数据删除的装置的结构框图;
[0034]图3为本发明第一实施例的方法的流程图。
【具体实施方式】
[0035]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0036]为了清楚的陈述本发明的内容,对布鲁姆过滤器(Bloom filter)做简要介绍,布鲁姆过滤器是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1