一种基于服务器查找数据流分割点的方法及服务器技术

技术编号:10687376 阅读:317 留言:0更新日期:2014-11-26 16:48
本发明专利技术实施例提供了一种基于服务器查找数据流分割点的方法。本发明专利技术实施例中通过判断M个窗口中某一个窗口中至少部分数据是否满足预定条件,来查找数据流分割点,当某一个窗口中至少部分数据不满足预定条件,则跳过N*U个长度,获得下一个潜在分割点,提高了数据流分割点查找效率。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】本专利技术实施例提供了一种基于服务器查找数据流分割点的方法。本专利技术实施例中通过判断M个窗口中某一个窗口中至少部分数据是否满足预定条件,来查找数据流分割点,当某一个窗口中至少部分数据不满足预定条件,则跳过N*U个长度,获得下一个潜在分割点,提高了数据流分割点查找效率。【专利说明】一种基于服务器查找数据流分割点的方法及服务器
本专利技术涉及信息
,尤其涉及一种基于服务器查找数据流分割点的方法及服务器。
技术介绍
数据量的不断增长,使得提供充足的数据存储成为当前存储领域面临的严峻挑战。目前应对这一挑战的一种方式为利用需要存储的数据的冗余特性,使用重复数据删除技术,从而减少存储的数据量。 现有技术中,基于内容分块(Content Defined Chunk, CDC)的重复数据删除算法,首先要将待存储的数据流分成很多数据块,而将数据流分成数据块就需要在数据流中查找合适的分割点,两个相邻数据流分割点之间的数据构成一个数据块。计算数据块的特征值,从而查找是否存在相同特征值的数据块,如果查找到相同特征指的数据块,则认为存在重复数据。具体的,基于内容分块的重复数据删除技术是应用滑动窗口技术(Sliding WindowTechnique)基于文件的内容来查找分块的分割点,即通过计算窗口内数据的Rabin指纹来确定数据流分割点。假设从数据流的左边向右边查找分割点,每次计算滑动窗口内数据的指纹,并且将指纹值基于给定的整数K取模后,与给定的余数R进行比对;若相等则窗口的右端为数据流分割点,否则将窗口继续往右滑动一个字节,依次循环地进行计算和比对,直到到达数据流末尾。在基于内容分块的重复数据删除过程中,查找数据流分割点,需要消耗大量的计算资源,从而成为提升重复数据删除性能的瓶颈。
技术实现思路
第一方面,本专利技术实施例提供了一种基于服务器查找数据流分割点的方法,在所述服务器上预设有规则,所述规则为:为潜在分割点 k 确定 M 个点 px、点 Px 对应的窗口 Wx对应的预定条件Cx,其中,X为I到M连续的自然数,M ^ 2, Ax和Bx为整数;所述方法包括: a)依据所述规则为当前潜在分割点Ici确定点Piz及所述点Piz对应的窗口WiJpiz-Az, piz+Bz],i 和 z 为整数,并且 I 彡 z 彡 M ; b)判断所述窗口 Wiz[piz_Az, piz+Bj中至少部分数据是否满足预定条件Cz ; 当所述窗口Wiz中至少部分数据不满足所述预定条件Cz,从所述点P i z沿所述数据流分割点查找方向跳跃N个数据流分割点最小查找单位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),获得新的潜在分割点,执行步骤a); c)当所述当前潜在分割点Ici的皿个窗口中的每一个窗口 Wix中至少部分数据满足预定条件Cx,则所述当前潜在分割点Ici为数据流分割点。 结合第一方面,第一种可能的实现方式中,所述规则还包括:至少两个点Pe和Pf,满足条件 Ae = Af, Be = Bf, Ce = Cf。 结合第一方面的第一种可能的实现方式,第二种可能的实现方式中,所述规则还包括:所述至少两个点Pe和?。相对于所述潜在分割点k,在所述数据流分割点查找反方向上。 结合第一方面的第一种可能的实现方式或第二种可能的实现方式,第三种可能的实现方式中,所述规则还包括:所述至少两个点Pe和Pf之间的距离为I个U。 结合第一方面,或第一方面第一至第三种任一可能的实现方式,第四种可能的实现方式中,判断所述窗口 Wiz中至少部分数据是否满足所述预定条件Cz,具体包括: 使用随机函数判断所述窗口 Wiz[piz_Az,piz+Bj中至少部分数据是否满足所述预定条件Cz。 结合第一方面的第四种可能的实现方式,第五种可能的实现方式中,所述使用随机函数判断所述窗口 Wiz中至少部分数据是否满足所述预定条件Cz,具体为使用hash函数判断所述窗口 Wiz 中至少部分数据是否满足所述预定条件Cz。 结合第一方面,或第一方面第一至第五种任一可能的实现方式,第六种可能的实现方式中,当所述窗口 Wiz中至少部分数据不满足所述预定条件Cz,从所述点Piz沿所述数据流分割点查找方向跳跃N个数据流分割点最小查找单位U,获得所述新的潜在分割点,根据所述规则,为所述新的潜在分割点确定的点Pi。对应的窗口ffic的左边界与所述窗口 Wiz的右边界重合或者为所述新的潜在分割点确定的所述点Pic;对应的所述窗口 WiJpicH^piJBJ的左边界位于所述窗口Wiz范围之内;其中,为所述新的潜在分割点确定的所述点Pi。是根据所述规贝U,为所述新的潜在分割点确定的M个点按照数据流查找方向获得的序列中排序第一的点。 结合第一方面的第四种可能的实现方式,第七种可能的实现方式中,使用随机函数判断所述窗口 Wiz中至少部分数据是否满足所述预定条件Cz,具体包括: 在所述窗口 Wiz 中选择F个字节,将所述F个字节反复利用H次,共获得F*H个字节,其中每个字节由8位组成,记为a。,表示所述F*H个字节中第m个 ^1,1 ai'2 …^1,8 字节的第I到第8位,所述F*H个字节对应的位可以表示为:ar ": 8 , \α¥*ΗΛ aF*H二 …j 当an,n = I时,Vamjn = 1,当Bni,n = O时,Vam;n = -1,其中a"表示B111,广、』中的任一个,所述F*H个字节对应的位按照am,n与Vam,n的转换关系得到矩阵所述矩阵Va表示为:(V VV λν α?,?ν α\α Κ:1 Κ:'2:,从服务正态分布的随机数中选择F*H*8个随机数组成矩 Vγ...Vhi'i hl2...hi%阵R,所述矩阵R表示为:? k〒 7 V ,将所述矩阵Va的第m行与所述矩阵 ^F*H,2...J R的第m行的随机数相乘,然后求和得到一个值,具体表示为Sam =… +Vamj8^hnij8,同理,获得Sal、Sa2…到SaFW,统计Sal、Sa2…到SaM中满足大于O的值的个数K,当K为偶数,则所述窗口 Wiz 中至少部分数据满足所述预定条件Cz。 第二方面,本专利技术实施例提供了一种基于服务器查找数据流分割点的方法,在所述服务器上预设有规则,所述规则为:为潜在分割点k确定M个窗口 Wx[k-Ax,k+Bj和窗口Wx[k-Ax, k+Bj对应的预定条件Cx,其中,X为I到M连续的自然数,M彡2,Ax和Bx为整数; 所述方法包括: a)依据所述规则为当前潜在分割点Iii确定对应的窗口 WiJk1-Az, k^Bj,i和z为整数,并且I彡z彡Μ; b)判断所述窗口 WiJk1-Az, k^Bj中至少部分数据是否满足预定条件Cz ; 当所述窗口WiJk1-Az, h+Bj中至少部分数据不满足所述预定条件Cz,从所述当前潜在分割点h沿所述数据流分割点查找方向跳跃N个数据流分割点最小查找单位U,N*U不大于Il Bz Il +maxx( Il Ax || ),获得新的潜在分割点,执行步骤a); c)当所述当前潜在分割点Iii的M个窗本文档来自技高网
...

【技术保护点】
一种基于服务器查找数据流分割点的方法,其特征在于:在所述服务器上预设有规则,所述规则为:为潜在分割点k确定M个点px、点px对应的窗口Wx[px‑Ax,px+Bx]和窗口Wx[px‑Ax,px+Bx]对应的预定条件Cx,其中,x为1到M连续的自然数,M≥2,Ax和Bx为整数;所述方法包括:a)依据所述规则为当前潜在分割点ki确定点piz及所述点piz对应的窗口Wiz[piz‑Az,piz+Bz],i和z为整数,并且1≤z≤M;b)判断所述窗口Wiz[piz‑Az,piz+Bz]中至少部分数据是否满足预定条件Cz;当所述窗口Wiz[piz‑Az,piz+Bz]中至少部分数据不满足所述预定条件Cz,从所述点piz沿所述数据流分割点查找方向跳跃N个数据流分割点最小查找单位U,N*U不大于‖Bz‖+maxx(‖Ax‖+‖(ki‑pix)‖),获得新的潜在分割点,执行步骤a);c)当所述当前潜在分割点ki的M个窗口中的每一个窗口Wix[pix‑Ax,pix+Bx]中至少部分数据满足预定条件Cx,则所述当前潜在分割点ki为数据流分割点。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:于传帅张程伟徐林波
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1