专利名称:重复数据删除系统的优化方法
技术领域:
本发明涉及数据存储领域,具体涉及一种重复数据删除系统的优化方法。
背景技术:
重复数据删除系统基于内容寻址,能够消除重复的数据,提高空间利用率。重复数据删除系统将文件按给定的数据划分策略分割成若干个小的数据分块,并基于数据分块的某种特征进行相同检测,只存储不重复的数据分块,从而达到删除冗余数据,节省存储空间的目的。实际应用中还常常结合数据压缩技术进一步缩减数据分块所占的存储空间。现有重复数据删除技术的研究主要集中在挖掘冗余信息和提高效率上,对存储节点的管理和和空间分配只采用简单的分配管理策略;而对于存储空间分配时存储节点的负载和能耗状态等没有足够的考虑,不能自适应存储节点所处的各种状态,也不利于整个系统的负载均衡和性能提高。
发明内容
本发明的目的在于提供一种重复数据删除系统的优化方法,该方法能够根据重复数据删除系统当前各存储节点的负载和能耗状态动态地分配存储空间,平衡各存储节点的工作负载,提高系统性能。本发明是通过以下方案实现的一种重复数据删除系统的优化方法,包括以下步骤获取当前数据的分块,对分块进行哈希计算,以得到分块的哈希指纹,判断分块的哈希指纹是否存在于哈希指纹库中,若分块的哈希指纹存在于哈希指纹库中,则判断哈希指纹库中分块的引用数大于阈值并且副本数是否小于阈值,若哈希指纹库中分块的引用数大于阈值并且副本数小于阈值,则判断分块的信息是否存在于索引表中,若分块的信息存在于索引表中,则调用节点分配过程,以选择轻负载节点,将分块存储于轻负载节点中,更新索引表中分块的信息,将哈希指纹库中分块的引用数加1。本发明的优化方法还包括步骤若分块的哈希指纹不存在于哈希指纹库中,则调用节点分配过程,以选择轻负载节点,将分块存储于轻负载节点中,将分块的信息加入哈希指纹库中。本发明的优化方法还包括步骤若哈希指纹库中分块的引用数不大于阈值并且副本数不小于阈值,则进入将哈希指纹库中分块的引用数加1的步骤。本发明的优化方法还包括步骤若分块的信息不存在于索引表中,则将分块的信息加入索引表中,并进入调用节点分配过程,以选择轻负载节点的步骤。调用节点分配过程,以选择轻负载节点的步骤包括判断当前空闲负载队列是否为空,若当前空闲负载队列为空,则判断当前轻负载队列是否为空,若当前轻负载队列为空,则判断当前重负载队列是否为空,若当前重负载队列为空,则判断当前休眠队列是否为空,若当前休眠负载队列不为空,则唤醒处于休眠状态的存储节点,发出系统无可用轻负载节点的通知。调用节点分配过程,以选择轻负载节点的步骤还包括若当前空闲负载队列不为空,则在当前空载负载队列的第一个存储节点上分配存储空间。调用节点分配过程,以选择轻负载节点的步骤还包括若当前轻负载队列不为空,则在在当前轻负载队列的第一个存储节点上分配存储空间。调用节点分配过程,以选择轻负载节点的步骤还包括若当前重负载队列不为空,则进入发出系统无可用轻负载节点的通知的步骤。调用节点分配过程,以选择轻负载节点的步骤还包括若当前休眠负载队列为空,则进入发出系统无可用轻负载节点的通知的步骤。分块的信息包括分块的哈希指纹、引用数以及地址。本发明的优化方法具有以下优点(1)能耗感知本发明通过获取各存储节点的当前负载和能耗状态信息,对数据分块灵活的分配存储空间;(2)负载均衡本发明通过指定相对较轻负载的存储节点用于数据分块的存储,使数据存储过程分散化,并均衡了各存储节点的负载;引入副本策略,对那些被多个文件引用的数据分块建立副本,提高了重复数据删除系统的可用性和可靠性。
图1为本发明重复数据删除系统的优化方法的流程图。图2为本发明优化方法中步骤(6)的细化流程图。
具体实施例方式
下面结合附图对本发明作进一步详细的说明。如图1所示,本发明重复数据删除系统的优化方法包括以下步骤(1)获取当前数据的分块;(2)对分块进行哈希计算,以得到分块的哈希指纹;(3)判断分块的哈希指纹是否存在于哈希指纹库中,若分块的哈希指纹存在于哈希指纹库中,则转入步骤G),否则转入步骤(10);(4)判断哈希指纹库中分块的引用数是否大于阈值并且副本数是否小于阈值,若哈希指纹库中分块的引用数大于阈值并且副本数小于阈值,则进入步骤(5),否则进入步骤(9);(5)判断分块的信息是否存在于索引表中,若分块的信息存在于索引表中,则进入步骤(6),否则进入步骤(11);在本实施方式中,分块的信息包括分块的哈希指纹、引用数以及地址。(6)调用节点分配过程,选择轻负载节点;(7)将分块存储于选择的轻负载节点中;(8)更新索引表中相应分块的信息;(9)分块的引用数加1 ;(10)调用节点分配过程,选择轻负载节点,将分块存储于选择的轻负载节点中,将分块的信息加入哈希指纹库中,然后返回步骤(9);(11)将分块的信息加入索引表中,然后返回步骤(6)。如图2所示,上述步骤(6)进一步包括以下子步骤(61)判断当前空闲负载队列是否为空,若空闲负载队列为空,则进入步骤(62),否则进入步骤(66);(62)判断当前轻负载队列是否为空,若轻负载队列为空,则进入步骤(63),否则进入步骤(67);(63)判断当前重负载队列是否为空,若重负载队列为空,则进入步骤(64),否则进入步骤(65);(64)判断当前休眠队列为空,是则进入步骤(65),否则进入步骤(68);(65)发出系统无可用轻负载节点的通知;(66)选择当前空闲负载队列的第一个存储节点分配存储空间;(67)选择当前轻负载队列的第一个存储节点分配存储空间;(68)唤醒处于休眠状态的存储节点,并返回步骤(65)。本发明不仅局限于上述具体实施方式
,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方式
实施本发明,因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。
权利要求
1.一种重复数据删除系统的优化方法,包括以下步骤获取当前数据的分块;对所述分块进行哈希计算,以得到所述分块的哈希指纹;判断所述分块的哈希指纹是否存在于哈希指纹库中;若所述分块的哈希指纹存在于所述哈希指纹库中,则判断所述哈希指纹库中所述分块的引用数大于阈值并且副本数是否小于阈值;若所述哈希指纹库中所述分块的引用数大于所述阈值并且副本数小于所述阈值,则判断所述分块的信息是否存在于索引表中;若所述分块的信息存在于所述索引表中,则调用节点分配过程,以选择轻负载节点;将所述分块存储于所述轻负载节点中;更新所述索引表中所述分块的信息;将所述哈希指纹库中所述分块的引用数加1。
2.根据权利要求1所述的优化方法,其特征在于,还包括步骤若所述分块的哈希指纹不存在于所述哈希指纹库中,则调用节点分配过程,以选择轻负载节点,将所述分块存储于所述轻负载节点中,将所述分块的信息加入所述哈希指纹库中。
3.根据权利要求1所述的优化方法,其特征在于,还包括步骤若所述哈希指纹库中所述分块的引用数不大于阈值并且副本数不小于所述阈值,则进入所述将所述哈希指纹库中所述分块的引用数加1的步骤。
4.根据权利要求1所述的优化方法,其特征在于,还包括步骤若所述分块的信息不存在于所述索引表中,则将所述分块的信息加入所述索引表中,并进入所述调用节点分配过程,以选择轻负载节点的步骤。
5.根据权利要求1所述的优化方法,其特征在于,所述调用节点分配过程,以选择轻负载节点的步骤包括判断当前空闲负载队列是否为空;若所述当前空闲负载队列为空,则判断当前轻负载队列是否为空;若所述当前轻负载队列为空,则判断当前重负载队列是否为空;若所述当前重负载队列为空,则判断当前休眠队列是否为空;若所述当前休眠负载队列不为空,则唤醒处于休眠状态的存储节点;发出系统无可用轻负载节点的通知。
6.根据权利要求5所述的优化方法,其特征在于,所述调用节点分配过程,以选择轻负载节点的步骤还包括若所述当前空闲负载队列不为空,则在所述当前空载负载队列的第一个存储节点上分配存储空间。
7.根据权利要求5所述的优化方法,其特征在于,所述调用节点分配过程,以选择轻负载节点的步骤还包括若所述当前轻负载队列不为空,则在在所述当前轻负载队列的第一个存储节点上分配存储空间。
8.根据权利要求5所述的优化方法,其特征在于,所述调用节点分配过程,以选择轻负载节点的步骤还包括若所述当前重负载队列不为空,则进入所述发出系统无可用轻负载节点的通知的步骤。
9.根据权利要求5所述的优化方法,其特征在于,所述调用节点分配过程,以选择轻负载节点的步骤还包括若所述当前休眠负载队列为空,则进入所述发出系统无可用轻负载节点的通知的步骤。
10.根据权利要求1所述的优化方法,其特征在于所述分块的信息包括所述分块的哈希指纹、引用数以及地址。
全文摘要
一种重复数据删除系统的优化方法,包括步骤获取当前数据的分块,对分块进行哈希计算,以得到分块的哈希指纹,判断分块的哈希指纹是否存在于哈希指纹库中,若分块的哈希指纹存在于哈希指纹库中,则判断哈希指纹库中分块的引用数大于阈值并且副本数是否小于阈值,若哈希指纹库中分块的引用数大于阈值并且副本数小于阈值,则判断分块的信息是否存在于索引表中,若分块的信息存在于索引表中,则调用节点分配过程,以选择轻负载节点,将分块存储于轻负载节点中,更新索引表中分块的信息,将哈希指纹库中分块的引用数加1。本方法能够根据重复数据删除系统当前各存储节点的负载和能耗状态动态分配存储空间,平衡各存储节点的工作负载,提高系统性能。
文档编号G06F12/06GK102385554SQ20111033511
公开日2012年3月21日 申请日期2011年10月28日 优先权日2011年10月28日
发明者万胜刚, 曹强, 谢平, 谢长生, 韩帅军, 黄建忠 申请人:华中科技大学