为基于散列的消重进行子块分割的方法和系统技术方案

技术编号:9596779 阅读:88 留言:0更新日期:2014-01-23 02:16
公开了为基于散列的消重进行子块分割的方法和系统。用于基于散列的消重的子块分割是通过定义子块的最小尺寸和最大尺寸来执行的。对于子块的每个边界开始位置,通过使用多个搜索标准来测试在搜索期间计算的散列值,在子块的最小尺寸之后开始对后续子块的边界位置的搜索。如果所述散列值中的一个满足多个搜索标准中的一个,则把所述散列值的位置声明为所述子块的边界结束位置。如果在满足多个搜索标准中的一个之前到达子块的最大尺寸,则把基于所述多个搜索标准中的另一个选择的另外一个散列值的位置声明为所述子块的边界结束位置。

【技术实现步骤摘要】
为基于散列的消重进行子块分割的方法和系统
本专利技术总体上涉及计算机,更具体而言,涉及计算环境中用于基于散列的消重(deduplication)的改进的子块分割。
技术介绍
在当今社会,计算机系统是普遍存在的。计算机系统可以在工作场所、在家庭或者在学校找到。计算机系统可以包括数据存储系统,或者说盘存储系统,来处理和存储数据。每天要必须处理大量的数据,而且当前的趋势表明,在可以预见的将来,这些量将继续增加。缓解这个问题的一种有效途径是通过使用消重。通过定位重复的数据并且只存储其第一次出现,作为消重系统的基础的思想是利用大部分可用数据被一次又一次没有任何变化地拷贝和转发的事实。后续的拷贝被指向存储的出现的指针所代替,如果数据事实上是重复的,那么这显著降低了存储需求。
技术实现思路
数据消重是指冗余数据的减少和/或消除。在数据消重中,可以是文件、数据流或者某种其它形式的数据的数据对象被分成一个或多个被称为子块的部分。在数据消重处理中,数据的复制拷贝被减少或消除,分别留下最少量的冗余拷贝或者数据的单个拷贝。利用消重处理提供了各种好处,诸如所需存储容量的减少和增加的网络带宽。由于这些及其它好处,近年来,消重已经作为计算存储系统中的一个高度重要的
而显现出来。已经推荐了几种消重方法,这些方法中的许多都使用散列技术。例如,在基于散列的消重操作中,数据消重涉及把数据分成可变或固定尺寸的子块、计算每个子块的散列值并且通过其散列值来匹配完全相同的子块。基于散列的消重系统应当能够提供平均子块尺寸,同时维持子块尺寸的一致性,而不是经历显著变化的子块尺寸。当前,基于散列的消重系统不能够在维持子块尺寸的一致性的同时提供平均子块尺寸。因而,在处理子块尺寸变化时出现困难,这使存储与处理考虑复杂化。换句话说,人为最小和最大子块尺寸使基于散列的消重系统中的子块和子块元数据的存储和检索复杂化。连同平均子块尺寸的偏移一起,子块尺寸的大而多样的分布降低了元数据(索引和指针)和数据之间的平衡的效率。子块边界的再现性的破坏降低了消重系统关于数据序列中的数据的重新排序、插入、移动和删除来识别完全相同的子块的能力。因此,需要避免关于子块的人为最小和最大尺寸的基于散列的消重系统,这种人为最小和最大尺寸会降低关于找出有效子块边界的概率的效果以及降低关于平均子块尺寸的偏移效果,从而打破可再现子块边界的基本属性。因此,所说明的实施例设法提供定义的最小和最大子块尺寸(为了数据的方便管理)和子块尺寸围绕可预测平均尺寸的紧密分布(为了存储和处理资源消耗的可预测性),同时产生可再现和统计上显著的子块边界(为了有效的子块匹配和消重)。相应地,并且鉴于以上所述,提供了用于在计算环境中为基于散列的消重进行改进的子块分割的各种示例性方法、系统和计算机程序产品实施例。在一种实施例中,仅仅是作为例子,定义子块的最小和最大尺寸。对于子块的每个边界开始位置,通过使用多个搜索标准来测试在搜索期间计算的各个散列值和/或一组基础散列值的导出散列值,在该子块的最小尺寸之后开始对后续子块的边界位置的搜索。如果所述散列值中的一个满足多个搜索标准中的一个,则把该散列值的位置声明为所述子块的边界结束位置。如果在满足多个搜索标准中的一个之前到达子块的最大尺寸,则把基于多个搜索标准中的另一个选择的另外一个散列值的位置声明为所述子块的边界结束位置。除了以上示例性方法实施例,还提供了其它的示例性系统和计算机产品实施例并且提供了相关的优点。以上概述的提供是为了以简化的形式提供以下在具体描述中进一步描述的概念的选择。这个概述不是要识别所保护主题的关键特征或基本特征,也不是要用于帮助确定所保护主题的范围。所保护的主题不限于解决
技术介绍
中所提到的任何或全部缺点的实现。附图说明为了很容易地理解本专利技术的优点,将参考在附图中说明的具体实施例给出以上简单描述过的本专利技术的更特定的描述。应当理解,这些图绘出了本专利技术的实施例而且并不能因此就认为是限定其范围,本专利技术将通过附图的使用以附加的特殊性与细节进行描述,其中:图1是说明具有例子存储设备的计算系统环境的框图,其中可以实现本专利技术的各方面;图2是说明计算机系统中的数据存储系统的硬件结构的框图,其中可以实现本专利技术的各方面;图3是说明用于基于散列的消重的改进子块分割的示例性方法的流程图;图4是说明计算机系统中的示例性子块定义的框图,其中可以实现本专利技术的各方面;图5A是说明子块尺寸的分布的图(现有技术);以及图5B是说明子块尺寸的示例性分布的图(本专利技术)。具体实施方式如前面所提到的,基于散列的消重操作涉及把数据分成可变或固定尺寸的子块、计算每个子块的散列值并且通过其散列值来匹配完全相同的子块。然而,由于子块尺寸的大的变化,基于散列的消重系统经历低效和生产力损失。关于子块的人为最小和最大尺寸降低了找到有效子块边界的概率,以及降低了关于平均子块尺寸的偏移效果。而且,关于子块的人为最小和最大尺寸破坏了可再现子块边界的基本属性。因此,所说明的实施例设法提供定义的最小和最大子块尺寸(为了数据的方便管理)和子块尺寸围绕可预测平均尺寸的紧密分布(为了存储和处理资源消耗的可预测性),同时产生可再现和统计上显著的子块边界(为了有效的子块匹配和消重)。相应地,在一种实施例中,仅仅是作为例子,为子块定义最小和最大子块尺寸。对于子块的每个边界起点(这个起点是块的开始或者是跟在前一子块结束点之后的字节),在定义的最小子块尺寸之后开始对边界位置(例如,当前子块的边界结束点)的搜索。这既保证了最小子块尺寸,又节约了处理资源(通过计算更少的散列值)。对边界位置的搜索一直持续到满足搜索标准或到达最大子块尺寸。换句话说,对于子块的每个边界开始位置,通过使用多个搜索标准来测试在搜索期间在每个字节位置计算的各个散列值和/或从基础散列值的集合导出的导出散列值,在该子块的最小尺寸之后开始搜索,以便定位后续子块的边界位置。如果所述各个散列值和/或导出散列值中的一个满足多个搜索标准中的一个,则把该散列值的位置声明为所述子块的边界结束位置。如果在满足多个搜索标准中的一个之前到达子块的最大尺寸,则把基于多个搜索标准中的另一个选择的另外一个散列值的位置声明为所述子块的边界结束位置。因此,所说明的实施例保证了在定义的最小和最大子块尺寸之间的搜索数据间隔中找到可再现边界位置。在搜索间隔中使用的多个搜索标准包括至少三种类型:(1)考虑最后计算的散列值的标准,(2)考虑已经计算的散列值的子集的标准,以及(3)考虑在(最小和最大子块尺寸之间)的搜索间隔中计算的所有散列值的标准。通过从上述多个标准中定义一组标准,实现了两个有益的效果,其中这些标准在搜索间隔期间一起被应用。(1)在到达最大子块尺寸之前找到满足标准的边界位置的概率能够得到控制并且充分增加。(2)保证在定义的最小和最大子块尺寸之间的搜索间隔期间找到可再现边界位置。保证的原因是,如果没有找到满足类型(1)和(2)的标准的点,则保证类型(3)的标准产生可再现边界位置。此外,所说明的实施例提供了以下好处:(1)提供了最小和最大子块尺寸,(2)实现了子块尺寸围绕可预测平均子块尺寸的紧密分布,(3)实现了可再现而且统计上显著的子块边界,以及(4)通过计算更少的散列值而节约了资源处理。这本文档来自技高网
...
为基于散列的消重进行子块分割的方法和系统

【技术保护点】
一种用于在计算环境中由处理器设备对基于散列的消重进行子块分割的方法,该方法包括:定义子块的最小尺寸和最大尺寸;对于子块的每个边界开始位置,通过使用多个搜索标准来测试在搜索期间生成的多个散列值,在子块的最小尺寸之后开始对于子块的边界位置的搜索,其中,所述多个散列值至少包括各个散列值和从基础散列值的集合中导出的导出散列值;如果所述多个散列值中的一个满足所述多个搜索标准中的一个,则把所述多个散列值中的所述一个的位置声明为所述子块的边界位置;以及如果在满足多个搜索标准中的一个之前到达子块的最大尺寸,则把基于所述多个搜索标准中的另外一个搜索标准选择的所述多个散列值中的另外一个散列值的位置声明为所述子块的边界位置。

【技术特征摘要】
2012.07.03 US 13/541,0091.一种用于在计算环境中由处理器设备对基于散列的消重进行子块分割的方法,该方法包括:定义子块的最小尺寸和最大尺寸;对于子块的每个边界开始位置,通过使用多个搜索标准来测试在搜索期间生成的多个散列值,在子块的最小尺寸之后开始对于子块的边界位置的搜索,其中,所述多个散列值至少包括各个散列值和从基础散列值的集合中导出的导出散列值;如果所述多个搜索标准中的一个未被所述多个散列值中的一个满足,把所述多个散列值中的一个的当前位置递增至少一个字节,以及,如果在满足所述多个搜索标准中的一个之前没有到达子块的最大尺寸,则计算所述多个散列值中的下一个,以利用所述多个搜索标准中的所述一个进行测试;如果所述多个散列值中的一个满足所述多个搜索标准中的一个,则把所述多个散列值中的所述一个的位置声明为所述子块的边界位置;以及如果在满足多个搜索标准中的一个之前到达子块的最大尺寸,则把基于所述多个搜索标准中的另外一个搜索标准选择的所述多个散列值中的另外一个散列值的位置声明为所述子块的边界位置。2.如权利要求1所述的方法,进一步在所述多个散列值中包括最小散列值、最大散列值、最后计算的一个散列值和最后计算的k个散列值。3.如权利要求1所述的方法,进一步包括:把边界开始位置识别为下列之一:块的开始、最后选择的边界位置、以及跟在最后识别的边界结束位置之后的一个或多个字节。4.如权利要求1所述的方法,其中,所述多个搜索标准中的一个包括第一种类型搜索标准和第二种类型搜索标准中的一个,以及所述多个搜索标准中的另外一个搜索标准是第三种类型搜索标准。5.如权利要求4所述的方法,进一步包括:如果最后计算的一个散列值的预定义位置的n位等于第m个预定义的不同位模式中的一个,则满足第一种类型搜索标准。6.如权利要求4所述的方法,进一步包括通过下列至少之一满足第二种类型搜索标准:如果通过对最后计算的k个散列值应用XOR操作而计算的值的预定位置的n位等于第m个预定义的不同位模式中的一个,以及应用组合最后计算的k个散列值的值并且产生其统计分布与被组合的多个散列值的统计分布相似的备选值的多个操作中的一个。7.如权利要求4所述的方法,进一步包括通过选择子块的边界位置来满足第三种类型搜索标准,其中选择子块的边界位置是通过选择通过以下至少一个在搜索期间计算的多个散列值中的一个:选择最大散列值,选择最小散列值,以及选择第n大或小散列值。8.如权利要求7所述的方法,进一步包括提供被考虑为选择方法的输入的多个散列值的预定义位置的范围,其中,所述预定义位置的范围是用于预定义位置的整个可用范围的子集。9.如权利要求1所述的方法,进一步包括使用滚动散列函数来计算在每个字节位置的各个散列值。10.一种用于在计算环境中为基于散列的消重进行子块分割的系统,包括:...

【专利技术属性】
技术研发人员:L·阿罗诺维奇M·海尔什
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1