一种数据处理方法及重删引擎技术

技术编号:9519365 阅读:104 留言:0更新日期:2014-01-01 17:01
本发明专利技术实施例公开了一种数据处理方法及重删引擎。该数据处理方法应用于数据备份系统,数据备份系统包括重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立至少两个线程;所述重删引擎将数据查重任务划分为至少一个子任务,所述方法包括:所述重删引擎调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。该方法避免了线程长时间等待IO返回,实现了对CPU充分高效的利用,以及对重复数据删除性能的提升。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例公开了一种数据处理方法及重删引擎。该数据处理方法应用于数据备份系统,数据备份系统包括重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立至少两个线程;所述重删引擎将数据查重任务划分为至少一个子任务,所述方法包括:所述重删引擎调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。该方法避免了线程长时间等待IO返回,实现了对CPU充分高效的利用,以及对重复数据删除性能的提升。【专利说明】一种数据处理方法及重删弓I擎
本专利技术涉及数据处理
,特别是涉及一种数据处理方法及重删引擎。
技术介绍
重复数据删除技术是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量,是存储业界的热门技术。重复数据删除技术通过记录数据块的指纹,并根据数据块的指纹实现对重复数据的识别。在数据备份时,对于重复的数据块直接引用,并修改元数据中的引用计数,否则保存新的数据块并记录其指纹信息。现有技术中,在应用重复数据删除技术进行数据备份时,每条备份数据流占用一个线程直至该数据流备份完成,该方法中单个线程CPU运算不够充分,导致重复数据删除性能无法提升。
技术实现思路
本专利技术实施例中提供了一种数据处理方法及重删引擎,能够高效利用CPU,提升重复数据删除性能。为了解决上述技术问题,本专利技术实施例公开了如下技术方案:第一方面,提供一种数据处理方法,所述方法应用于数据备份系统,所述数据备份系统包括重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立至少两个线程;所述重删引擎将数据查重任务划分为至少一个子任务,所述方法包括:所述重删引擎调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。结合上述第一方面,在第一种可能的实现方式中,所述方法还包括:所述存储节点调取所述线程池中的一个线程对所述第一文件的数据进行存储;存储结束后,释放所述存储节点调取的所述线程。结合上述第一方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述重删引擎将数据查重任务划分为至少一个子任务,包括:所述重删引擎将所述数据查重任务划分为三个子任务,所述三个子任务依次为数据分块子任务、指纹计算子任务和重复块查询子任务;所述重删引擎调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,包括:所述重删引擎对输入第一线程的所述第一文件的数据执行所述数据分块子任务,并输出处理后数据至第二线程,在所述第二线程对所述第一线程处理后的数据执行所述指纹计算子任务,并输出处理后数据至所述第三线程,在所述第三线程对所述第二线程处理后的数据执行所述重复块查询子任务,其中,所述第一线程、第二线程和第三线程分别为所述线程池中的任意一个线程。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述重删引擎调取所述线程池中的一个线程对所述第一文件的数据执行所述数据查重任务中的一个子任务的过程包括:所述重删引擎生成子任务,并将所述子任务添加至所述子任务对应的任务队列;当所述任务队列中的所述子任务被调度执行时,调取所述线程池中的一个线程执行所述子任务,并在所述子任务完成后释放所述子任务占用的线程;其中,所述子任务为所述数据分块子任务、指纹计算子任务和重复块查询子任务中的任一子任务。第二方面,提供一种重删引擎,所述重删引擎应用于数据备份系统,所述数据备份系统包括所述重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立有至少两个线程;所述重删引擎包括:划分单元,用于将数据查重任务划分为至少一个子任务;线程处理单元,用于调取所述线程池中的至少一个线程;在查重单元执行所述数据查重任务包含的子任务后,释放调取的所述至少一个线程;所述查重单元,用于占用所述线程处理单元调取的线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;数据发送单元,用于当所述查重单元没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。结合上述第二方面,在第一种可能的实现方式中,所述划分单元,具体用于将所述数据查重任务划分为三个子任务,所述三个子任务依次为数据分块子任务、指纹计算子任务和重复块查询子任务;所述查重单元,具体用于对输入第一线程的所述第一文件的数据执行所述数据分块子任务,并输出处理后数据至第二线程,在所述第二线程对所述第一线程处理后的数据执行所述指纹计算子任务,并输出处理后数据至所述第三线程,在所述第三线程对所述第二线程处理后的数据执行所述重复块查询子任务,其中,所述第一线程、第二线程和第三线程分别为所述线程池中的任意一个线程。结合上述第二方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述查重单元包括:生成子单元,用于生成子任务,并将所述子任务添加至所述子任务对应的任务队列;执行子单元,用于当所述任务队列中的所述子任务被调度执行时,占用所述线程处理单元调取的所述线程池中的一个线程执行所述子任务;所述线程处理单元,具体用于在所述子任务完成后释放所述子任务占用的线程;其中,所述子任务为所述数据分块子任务、指纹计算子任务和重复块查询子任务中的任一子任务。结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,第三方面,还提供一种数据备份系统,包括重删引擎和存储节点,其中,所述数据备份系统预先在线程池中建立有至少两个线程;所述重删引擎,用于将数据查重任务划分为至少一个子任务,调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。结合上述第三方面,在第一种可能的实现方式中,所述存储节点,用于调取所述线程池中的一个线程对所述第一文件的数据进行存储;存储结束后,释放所述存储节点调取的所述线程。第四方面,还提供一种重删引擎,所述重删引擎应用于数据备份系统,所述数据备份系统包括重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立有至少两个线程;所述重删引擎包括处理器和存储器;所述存储器中存储有一段程序代码,所述处理器用于读取所述存储器中的程序代码,并执行以下步骤:将数据查重任务划分为至少一个子任务;调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件本文档来自技高网...

【技术保护点】
一种数据处理方法,其特征在于,所述方法应用于数据备份系统,所述数据备份系统包括重删引擎和存储节点;其中,所述数据备份系统预先在线程池中建立至少两个线程;所述重删引擎将数据查重任务划分为至少一个子任务,所述方法包括:所述重删引擎调取所述线程池中的至少一个线程对第一文件的数据执行所述数据查重任务包含的子任务,以查询所述存储节点是否存在所述第一文件的数据的重复数据;释放调取的所述至少一个线程;并当没有查询到所述第一文件的数据的重复数据时,将所述第一文件的数据发送到所述存储节点进行存储。

【技术特征摘要】

【专利技术属性】
技术研发人员:付旭东
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1