数据分块的处理方法和装置制造方法

文档序号:6521024阅读:333来源:国知局
数据分块的处理方法和装置制造方法
【专利摘要】本发明提供一种数据分块的处理方法和装置,方法包括将宽度为m的窗口在待处理文件中滑动;当待处理文件中的字符bi滑出窗口时,查询表格获取与bi对应的U(bi)和T((Pb+i-1-U(bi))>>23);并根据公式Pb+i=(28(Pb+i-1-U(bi)))mod232+bm+i+T((Pb+i-1-U(bi))>>23)对窗口中的字符进行拉宾指纹运算获取对应的指纹Pb+i;再对Pb+i进行求模获取求模结果Rb+i;将i加1,重复执行该步骤直至获取到求模结果Rb+N;根据Rb+i至Rb+N,进行边界判定,获取待处理文件的数据分块结果,并将数据分块结果返回给处理器,以供处理器根据接收到的数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理。
【专利说明】数据分块的处理方法和装置

【技术领域】
[0001] 本发明涉及通信技术,尤其涉及一种数据分块的处理方法和装置。

【背景技术】
[0002] 拉宾指纹算法的计算效率高、随机性好,且可将数据更改对连续指纹序列的影响 限制在局部范围内,因此可以广泛应用于重复数据中数据分块场景,例如:广域网加速、 数据中心备份等。目前,拉宾指纹算法是将字符串以多项式的形式进行表示,该多项式被 另一个不可约多项式求余,所得的余数即为该字符串的指纹。具体的,假设 b^bj)是包含m个字符的字符串,那么可以根据A构造相应的(m-1)度的多项式: A(t)=b1tm_1+b2tm_ 2+*"+bm_1t+bm,其中,t是不定元。同时,给定一个k次多项式(即上述的不 可约多项式a^t+ak,则A⑴除以P(t)的余数f(t)的次数为(k-1), 从而对于给定的字符串A,定义A的指纹f㈧为:f㈧=A(t)modP(t)。
[0003] 但是,现有的拉宾指纹算法相对复杂,处理速度相对较慢,从而降低了分块性能。


【发明内容】

[0004] 本发明提供一种数据分块的处理方法和装置,用于有效地提高分块处理能力。
[0005] 本发明的第一个方面是提供一种数据分块的处理方法,包括:
[0006] 将宽度为m的窗口在待处理文件中滑动;
[0007] 当所述待处理文件中的字符匕滑出所述窗口时,查询表格,获取与所述 字符 bi 对应的 u(bi)和 TUPb+H-uo^mws);并根据公式 Pb+edPb+H-UODi))) mod232+bm+i+T ((Pb+H-U (bi))》23),对所述窗口中的字符进行拉宾指纹运算,获取对应的指纹 Pb+i ;再对所述Pb+i进行求模,获取求模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求 丰旲结果Rb+N;
[0008] 根据所述求模结果Rb+i至Rb+N,进行边界判定,获取所述待处理文件的数据分块结 果,并将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结 果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理;
[0009] 其中,初始时,i等于1 fb+g为所述Pb+i对应的窗口的前一个窗口中的字符对应的 指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大 于m。
[0010] 本发明的另一个方面是提供一种数据分块的处理装置,包括:
[0011] 滑动模块,用于将宽度为m的窗口在待处理文件中滑动;
[0012] 处理模块,用于当所述待处理文件中的字符匕滑出所述窗口时,查询表格,获取 与所述字符4对应的U如)和T ((Pb+^-U㈨))》23);并根据公式Pb+i= (28 (Pb+H-U如))) mod232+bm+i+T ((Pb+H-U如))》23),对所述窗口中的字符进行拉宾指纹运算,获取对应的指纹 Pb+i ;再对所述Pb+i进行求模,获取求模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求 丰旲结果Rb+N;
[0013] 边界判定模块,用于根据所述求模结果Rb+i至Rb+N,进行边界判定,获取所述待处理 文件的数据分块结果;
[0014] 发送模块,用于将所述数据分块结果返回给处理器,以供所述处理器根据接收到 的所述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分 块进行传输处理;
[0015] 其中,初始时,i等于1 Λ+h为所述Pb+i对应的窗口的前一个窗口中的字符对应的 指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大 于m。
[0016] 本发明的技术效果是:通过将宽度为m的窗口在待处理文件中滑动,当该 待处理文件中的字符h滑出该窗口时,查询表格,获取与该字符h对应的U(bi)和 T ((Pb+^-U ㈨))》23);并根据公式 Pb+i= (28 (Pb+^-U ㈨)))mod232+bm+i+T ((Pb+i_「U )》23), 对该窗口中的字符进行拉宾指纹运算,获取对应的指纹Pb+i ;再对该Pb+i进行求模,获取求 模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求模结果Rb+N ;根据该求模结果Rb+i至 Rb+N,进行边界判定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理 器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希 值替代对应的数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉 宾算法相对简单,即只需要两次查表,获取与该字符h对应的U(bi)和TUPb+H-UO^))》 23),并根据公式 Pb+i= (28 (Pb+i_「U ㈨)))mod232+bm+i+T ((Pb+i_「U ㈨))》23),SP 3 次异或计算便 可以获取对应的指纹Pb+i,因此,有效地提高了分块处理能力。

【专利附图】

【附图说明】
[0017] 图1为本发明数据分块的处理方法的一个实施例的流程图;
[0018] 图2为本发明数据分块的处理方法的另一个实施例的流程图;
[0019] 图3为本发明数据分块的处理方法中边界判定的一个实施例的流程图;
[0020] 图4为本发明数据分块的处理装置的一个实施例的结构示意图;
[0021] 图5为本发明数据分块的处理装置的另一个实施例的结构示意图。

【具体实施方式】
[0022] 图1为本发明数据分块的处理方法的一个实施例的流程图,如图1所示,本实施例 的方法包括:
[0023] 步骤101、将宽度为m的窗口在待处理文件中滑动。
[0024] 在本实施例中,N为该待处理文件的字节长度,N和m为整数,且N大于m。
[0025] 步骤102、当该待处理文件中的字符h滑出该窗口时,查询表格,获取与该字符h 对应的U如)和T ((Pb+H-U㈨))》23)。
[0026] 在本实施例中,初始时,i等于1。其中,"》"表示右移位。
[0027] 步骤103、根据公式(1):
[0028] Pb+i= (28 (Pb+H-U ))mod232+bm+i+T ((Pb+H-U )》23) (1)
[0029] 对该窗口中的字符进行拉宾指纹运算,获取对应的指纹Pb+i。
[0030] 步骤104、对该Pb+i进行求模,获取求模结果Rb+i。
[0031] 步骤105、将i加1,并执行步骤102,直至获取到求模结果Rb+N。
[0032] 步骤106、根据该求模结果Rb+i至Rb+N,进行边界判定,获取该待处理文件的数据分 块结果。
[0033] 步骤107、将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分 块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理。
[0034] 其中,Pb+H为该Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当 前窗口的字符。
[0035] 在本实施例中,需要说明的是,对于第一个移入窗口的字符,可以认为前面一个窗 口是全〇的窗口,即前一个窗口指纹是〇,从而从窗口中移出的字符也为0。
[0036] 在本实施例中,通过将宽度为m的窗口在待处理文件中滑动,当该待处理文件 中的字符4滑出该窗口时,查询表格,获取与该字符h对应的U(bD和T ((Pb+H-U(bj)》 23);并根据公式 Pb+i= (28 (Pb+i_rU 如)))mod232+bm+i+T ((Pb+^-U ㈨))》23),对该窗口 中的字 符进行拉宾指纹运算,获取对应的指纹Pb+i ;再对该Pb+i进行求模,获取求模结果Rb+i ;将i 加1,重复执行该步骤,直至获取到求模结果Rb+N ;根据该求模结果Rb+i至Rb+N,进行边界判 定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理器,以供该处理 器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的 数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉宾算法相对简 单,即只需要两次查表,获取与该字符4对应的U如)和T ((Pb+H-U如))》23),并根据公式 Pb+i= (28 (Pb+H-U㈨)))mod232+bm+i+T ((Pb+i_「U㈨))》23),即3次异或计算便可以获取对应的 指纹Pb+i,因此,有效地提高了分块处理能力。
[0037] 图2为本发明数据分块的处理方法的另一个实施例的流程图,在上述图1所示实 例的基础上,如图2所示,在步骤101之前,该方法还可以包括:
[0038] 步骤100a、根据公式(2):
[0039] U(bi)=bitm_1modP(t) (2)
[0040] 获取h与U如)的对应关系并存储在该表格中;
[0041] 步骤100b、根据公式(3):
[0042] T(j) = (231*j)modP(t)-(j*231)mod232 (3)
[0043] 获取j与T(j)的对应关系并存储在该表格中;
[0044] 其中,该P(t)为预设的k次多项式。k为整数,优选地,k为31。
[0045] 另夕卜,在本实施例中,以i等于1,且指纹Pb对应的字符串为 A= [bp b2, b3,. . . U,bm],指纹 Pb+1 对应的字符串为 B= [b2, b3, b4,. . . bm,bm+1]为例,公式(1)的 具体推导为:
[0046] Pb+1=B (t)modP (t)
[0047] = (b2tm 1+b3tm 2+b4tm 3+··· +bmt+bm+1) modP (t)
[0048] = 2+b4t m 3+…modP (t)
[0049] = (t (b1tm_1+b2tm_2+b3tm^+b 4tm_4+... +bm) -bir+b^) modP (t)
[0050] = (tA (t) -b^^b^) modP (t)
[0051] = (t (A (t) modP (t)) -b^^b^) modP (t)
[0052] =(tPb-b1tm+b m+1)rnodP(t)
[0053] = (t (Pb-t^i^modP (t)) +bm+1) modP (t)
[0054] 令 U (bj Ai^modP (t),则上式:
[0055] = (t (Pb-U (bi)) +bm+1) modP (t)
[0056] 由于一个字符采用ASCII码标识需要一个字节,即8比特(bit),故此处令t=28 ;另 外令DMPb-UO^)),则上式:
[0057] = (28D+bm+1) modP (t)
[0058] 令0=280+1^+1,由于Pb和Uh)均是对P(t)的求模的结果,P(t)的最高次为31,故 Pb和U(bi)的最高次为30,因此D的最高次为30,即28D+bm+1的最高幂为30+8=38,上式可表 示如下:
[0059] = (231 (D/223) +28Dmod231+bm+1) modP (t)
[0060] =2^)1110(12^+1^+231 (D》23) modP (t)
[0061] =2^110(1232-0^2^1^+231 (D》23) modP (t)
[0062] 右移出界将被丢弃,故可修改为
[0063] =28Dmod23\+1- ((D》23) *231) mod232+231 (D》23) modP (t)
[0064] 令 T(j) = (231*j)modP(t)-(j*231)mod232,上式可表示如下:
[0065] =2^)1110(1232+1^+1 (D》23)
[0066] =28 (Pb-U (bi)) mod232+bm+1+T ((Pb-U (b^))) 23)
[0067] 综上所述,最终公式可以为:
[0068] Pb+1= (28 (Pb_U ))mod232+bm+1+T ((Pb_U )》23)
[0069] 其中,多项式P (t)和m均是固定的,因此U (b) zbjMmodP (t),只与从窗口移出的 h 有关,且 T (j) = (231*j)modP (t) -(j*231)mod232,只与 j 有关。
[0070] 可选地,步骤102的具体实现方式为:
[0071] 步骤201、当该待处理文件中的字符h滑出该窗口时,查询该表格,获取与该字符 h对应的U(bi)。
[0072] 步骤202、令jMPn-UO^))》23,查询该表格,获取与该(Pb+H-UO^))》23对应的 T((Pb+i_rU ^^)))23).,
[0073] 图3为本发明数据分块的处理方法中边界判定的一个实施例的流程图,在上述图 1所示实例的基础上,如图3所示,上述步骤106的一种具体实现方式为:
[0074] 步骤301、将该求模结果Rb+i至Rb+N组成待判定文件,并将该待判定文件向前跳跃 m个位置,获取第m位置。
[0075] 在本实施例中,初始时,是从待判定文件的首部向前跳跃m个位置。
[0076] 步骤302、判断该第m位置对应的求模结果是否为期望值;若是,则执行步骤303 ; 若否,则执行步骤308。
[0077] 在本实施例中,窗口的宽度不同,其对应的期望值也不相同,期望值的具体数值是 根据实际情况来决定的。优选地,该期望值为〇至500内的素数。
[0078] 步骤303、确定该第m位置为边界。
[0079] 步骤304、判断剩余的待判定文件的长度是否大于m,若大于,则执行步骤305 ;若 小于,则将剩余的待判定文件作为一个数据分块,并结束。
[0080] 在本实施例中,剩余的待判定文件是指待判定文件进行跳跃后的剩余文件。
[0081] 步骤305、将该剩余的待判定文件继续向前跳跃m个位置,获取第fm位置。
[0082] 需要说明的是,初始时,该f等于2。其中,f为整数,且大于1。另外,fm表示f乘 以m。
[0083] 步骤306、判断该第fm位置对应的求模结果是否为该期望值;若是,则执行步骤 307 ;若否,则执行步骤308。
[0084] 步骤307、确定第fm位置为边界,并将f加1后执行步骤304。
[0085] 步骤308、将该剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1位置。
[0086] 在本实施例中,初始时,该f等于2。其中,f为整数,且大于1。
[0087] 步骤309、判断所述第m+f-1位置对应的求模结果是否为该期望值,若否,则执行 步骤310 ;若是,则执行步骤313。
[0088] 步骤310、判断所述第m+f-1位置至第m位置之间的长度是否大于或等于预设阈 值,若大于或等于,则执行步骤313 ;若小于,则执行步骤311 ;
[0089] 步骤311、判断所述第m+f-1位置是否为判定文件的结尾;若是,则执行步骤313 ; 若否,则执行步骤312。
[0090] 步骤312,将f加1并执行步骤308。
[0091] 在本实施例中,举例来说,当第m+f-1位置不为边界时,重复执行步骤308,将该剩 余的待判定文件继续向前跳跃1个位置,获取第m+f-1+l位置,若第m+f-1+l位置不满足上 述步骤309至311的三个边界条件,则再将该剩余的待判定文件继续向前跳跃1个位置,获 取第m+f-1+2位置,继续判断,直至确定第m+f-1+t位置对应的信息满足边界条件中的任一 个,则确定m+f-1+t位置为边界即可。
[0092] 步骤313、确定第m+f-1位置为边界。
[0093] 在本实施例中,需要说明的是,当在执行完步骤313之后,可以按照上述步骤304 以后的方式继续执行,其实现原理相类似,此处不再赘述,其区别在于,剩余的待判定文件 继续向前跳跃的m个位置是以第m+f位置为基准。
[0094] 在本实施例中,值得注意的是,步骤309至步骤311的逻辑顺序并不限于上述描述 的逻辑顺序,还可以是其他逻辑顺序,本实施例并不以此为限。
[0095]另外,在本实施例中,举例来说,若第m位置为边界,且剩余的待判定文件的长度 大于m,则将该剩余的待判定文件继续向前跳跃m个位置,获取第2m位置;若第2m位置为边 界,且剩余的待判定文件的长度大于m,则将该剩余的待判定文件继续向前跳跃m个位置, 获取第3m位置。若第3m位置不为边界,则将该剩余的待判定文件继续向前跳跃1个位置, 获取第3m+l位置,若判断第3m+l位置对应的求模结果为该期望值,或者第3m+l位置至第 2m位置之间的长度大于或等于预设阈值,或者第3m+l位置为剩余的待判定文件的结尾,则 确定第3m+l位置为边界,并在剩余的待判定文件的长度大于m时,将将该剩余的待判定文 件继续向前跳跃m个位置,获取第4m+l位置,并确定第4m+l位置是否为边界,其实现原理 与上述相似,此处不再赘述,重复执行,直至获取待判定文件的所有边界。
[0096] 需要说明的是,预设阈值大于窗口宽度。另外,如果判断出第3m+l位置对应的求 模结果不为该期望值,第3m+l位置至第2m位置之间的长度小于预设阈值,第3m+l位置不 为剩余的待判定文件的结尾,则确定第3m+l位置不为边界,则将剩余的待判定文件向前跳 跃1个位置,获取低3m+2位置,并继续进行判定处理。
[0097] 综上,当确定某个位置为边界,并在剩余的待判定文件的长度大于m时,需要将剩 余的待判定文件继续向前跳跃m个位置,以进行边界判定;当确定某个位置不为边界时,需 要将剩余的待判定文件继续向前跳跃1个位置,以进行边界判定。
[0098] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟 或者光盘等各种可以存储程序代码的介质。
[0099] 图4为本发明数据分块的处理装置的一个实施例的结构示意图,如图4所示,本实 施例的装置包括:滑动模块11、处理模块12、边界判定模块13和发送模块14 ;其中,滑动模 块11用于将宽度为m的窗口在待处理文件中滑动;处理模块12用于当该待处理文件中的 字符h滑出该窗口时,查询表格,获取与该字符h对应的U叫)和T ((Pb+H-U如))》23);并 根据公式Pb+i= (28 (Pb+i_rU如)))mod232+bm+i+T ((Pb+^-U如))》23),对该窗口中的字符进行 拉宾指纹运算,获取对应的指纹Pb+i ;再对该Pb+i进行求模,获取求模结果Rb+i ;将i加1,重 复执行该步骤,直至获取到求模结果Rb+N;边界判定模块13用于根据该求模结果R b+i至Rb+N, 进行边界判定,获取该待处理文件的数据分块结果;发送模块14用于将该数据分块结果返 回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值, 并用该哈希值替代对应的数据分块进行传输处理;其中,初始时,i等于1 ;Pb+H为该Pb+i对 应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为该待处理文 件的字节长度,N和m为整数,且N大于m。
[0100] 本实施例的数据分块的处理装置可以执行图1所示方法实施例的技术方案,其实 现原理相类似,此处不再赘述。
[0101] 在本实施例中,通过将宽度为m的窗口在待处理文件中滑动,当该待处理文件 中的字符4滑出该窗口时,查询表格,获取与该字符h对应的U(bD和T ((Pb+H-U(bj)》 23);并根据公式 Pb+i= (28 (Pb+i_rU 如)))mod232+bm+i+T ((Pb+^-U ㈨))》23),对该窗口 中的字 符进行拉宾指纹运算,获取对应的指纹Pb+i ;再对该Pb+i进行求模,获取求模结果Rb+i ;将i 加1,重复执行该步骤,直至获取到求模结果Rb+N ;根据该求模结果Rb+i至Rb+N,进行边界判 定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理器,以供该处理 器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的 数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉宾算法相对简 单,即只需要两次查表,获取与该字符4对应的U如)和T ((Pb+H-U如))》23),并根据公式 Pb+i= (28 (Pb+H-U㈨)))mod232+bm+i+T ((Pb+i_「U㈨))》23),即3次异或计算便可以获取对应的 指纹Pb+i,因此,有效地提高了分块处理能力。
[0102] 图5为本发明数据分块的处理装置的另一个实施例的结构示意图,在上述图 4所示实施例的基础上,如图5所示,本实施例的装置还包括:存储模块15,用于根据 公式UO^zbif^modPa),获取h与以匕)的对应关系并存储在该表格中;并根据公式 T(j) = (231*j)m〇dP(t)-(j*231)m〇d2 32,获取j与T(j)的对应关系并存储在该表格中;其中, 该P(t)为预设的k次多项式。
[0103] 优选地,处理模块12具体用于当该待处理文件中的字符h滑出该窗口时,查 询该表格,获取与该字符4对应的U(bi);令jMPb+H-UO^))》23,查询该表格,获取与 该(Pb+H-U (bi))》23 对应的 T ((Pb+H-U (bi))》23);并根据公式 Pb+i= (28 (Pb+H-U (bi))) mod232+bm+i+T ((Pb+H-U如))》23),对该窗口中的字符进行拉宾指纹运算,获取对应的指纹 Pb+i ;再对该Pb+i进行求模,获取求模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求模 结果Rb+N。
[0104] 更为优选地,边界判定模块13包括:跳跃单元131、判断单元132和边界确定单元 133 ;其中,跳跃单元131用于将该求模结果Rb+i至Rb+N组成待判定文件,并将该待判定文件 向前跳跃m个位置,获取第m位置;判断单元132用于判断该第m位置对应的求模结果是否 为期望值;边界确定单元133用于若该判断单元132判断出该第m位置对应的求模结果为 该期望值,则确定该第m位置为边界;该判断单元132还用于判断剩余待判定文件的长度是 否大于m ;
[0105] 该跳跃单元131还用于若该判断单元132判断出该剩余的待判定文件的长度大于 m,则将该剩余的待判定文件继续向前跳跃m个位置,获取第fm位置,并触发该判断单元132 继续判断该第fm位置对应的求模结果是否为期望值,若判断出该第fm位置对应的求模结 果为该期望值,则触发该边界确定单元133确定该第fm位置为边界,并将f加1后重复执 行该步骤;
[0106] 该跳跃单元131还用于若该判断单元132判断出该第m位置对应的求模结果不为 该期望值,则将该剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1位置,并触发该 判断单元132判断该第m+f-1位置对应的信息是否为边界条件,若判断出该第m+f-1位置 对应的信息不满足该边界条件,则将f加1,并重复执行该步骤,直至该边界确定单元133确 定该第m+f-1+t位置对应的信息满足边界条件中的任一个,则确定该第m+f-1+t位置为边 界;
[0107] 其中,该边界条件包括:该第m+f-1位置对应的求模结果为该期望值;该第m+f-1 位置至第m位置之间的长度大于或等于预设阈值;以及该第m+f-1位置为该判定文件的结 尾;
[0108] f和t为整数,且f大于1。
[0109] 可选地,该边界确定单元133还用于若该判断单元132判断出该剩余的待判定文 件的长度小于m,则将该剩余的待判定文件作为一个数据分块。
[0110] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征 进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。
【权利要求】
1. 一种数据分块的处理方法,其特征在于,包括: 将宽度为m的窗口在待处理文件中滑动; 当所述待处理文件中的字符h滑出所述窗口时,查询表格,获取与所述字 符 4 对应的 U(bi)和 TUPb+H-UO^mWS);并根据公式 Pb+rdPb+H-UO^))) mod232+bm+i+T ((Pb+H-U如))》23),对所述窗口中的字符进行拉宾指纹运算,获取对应的指纹 Pb+i ;再对所述Pb+i进行求模,获取求模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求 丰旲结果Rb+N; 根据所述求模结果Rb+i至Rb+N,进行边界判定,获取所述待处理文件的数据分块结果,并 将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结果,计 算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理; 其中,初始时,i等于1 ;Pb+H为所述Pb+i对应的窗口的前一个窗口中的字符对应的指 纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于 m〇
2. 根据权利要求1所述的方法,其特征在于,在所述查询表格,获取与所述字符h对应 的U如)和T ((Pb+H-U㈨))》23)之前,所述方法还包括: 根据公式U㈨)zbif^modP (t),获取h与U (bj的对应关系并存储在所述表格中; 根据公式T (j) = (231*j)modP (t) -(j*231)mod232,获取j与T (j)的对应关系并存储在所 述表格中; 其中,所述P(t)为预设的k次多项式。
3. 根据权利要求2所述的方法,其特征在于,所述查询表格,获取与所述字符h对应的 U 如)和 T ((Pb+i_「U ㈨))》23),包括: 查询所述表格,获取与所述字符4对应的U (bD ; 令j= (Pb+H_U㈨))》23,查询所述表格,获取与所述(Pb+i_rU㈨))》23对应的 T((Pb+i_rU ^^)))23).,
4. 根据权利要求1至3任一所述的方法,其特征在于,所述根据所述求模结果Rb+i至 Rb+N,进行边界判定,获取所述待处理文件的数据分块结果,包括: 将所述求模结果Rb+i至Rb+N组成待判定文件,并将所述待判定文件向前跳跃m个位置, 获取第m位置; 若所述第m位置对应的求模结果为期望值,则确定所述第m位置为边界; 若剩余的待判定文件的长度大于m,将所述剩余的待判定文件继续向前跳跃m个位置, 获取第fm位置,并判断所述第fm位置对应的求模结果是否为期望值;若所述第fm位置对 应的求模结果为所述期望值,则确定第fm位置为边界,并将f加1,重复执行该步骤; 若所述第m位置对应的求模结果不为所述期望值,则将所述剩余的待判定文件继续向 前跳跃1个位置,获取第m+f-1位置,并判断所述第m+f-1位置对应的信息是否满足边界 条件;若所述第m+f-1位置对应的信息不满足所述边界条件,则将f加1,并重复执行该步 骤,直至确定的第m+f-1+t位置对应的信息满足所述边界条件中的任一个,则确定所述第 m+f-1+t位置为边界; 其中,所述边界条件包括:所述第m+f-1位置对应的求模结果为所述期望值;所述第 m+f-1位置至第m位置之间的长度大于或等于预设阈值;以及所述第m+f-1位置为所述判 定文件的结尾; f和t为整数,且f大于1。
5. 根据权利要求4所述的方法,其特征在于,还包括: 若所述剩余的待判定文件的长度小于m,则将所述剩余的待判定文件作为一个数据分 块。
6. -种数据分块的处理装置,其特征在于,包括: 滑动模块,用于将宽度为m的窗口在待处理文件中滑动; 处理模块,用于当所述待处理文件中的字符h滑出所述窗口时,查询表格,获取与 所述字符4对应的U如)和T ((Pb+^-U㈨))》23);并根据公式Pb+i= (28 (Pb+^-U如))) mod232+bm+i+T ((Pb+H-U如))》23),对所述窗口中的字符进行拉宾指纹运算,获取对应的指纹 Pb+i ;再对所述Pb+i进行求模,获取求模结果Rb+i ;将i加1,重复执行该步骤,直至获取到求 丰旲结果Rb+N; 边界判定模块,用于根据所述求模结果Rb+i至Rb+N,进行边界判定,获取所述待处理文件 的数据分块结果; 发送模块,用于将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所 述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进 行传输处理; 其中,初始时,i等于1 ;Pb+H为所述Pb+i对应的窗口的前一个窗口中的字符对应的指 纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于 m〇
7. 根据权利要求6所述的装置,其特征在于,还包括: 存储模块,用于根据公式U (bj ibif^modP (t),获取h与U (bj的对应关系并存储在所 述表格中;并根据公式T (j) = (231* j) modP (t) - (j*231) mod232,获取j与T (j)的对应关系并存 储在所述表格中; 其中,所述P(t)为预设的k次多项式。
8. 根据权利要求7所述的装置,其特征在于,所述处理模块具体用于当所述待处理 文件中的字符h滑出所述窗口时,查询所述表格,获取与所述字符h对应的U(bi);令 j= (Pb+^-U㈨))》23,查询所述表格,获取与所述(Pb+^-U如))》23对应的T ((Pb+^-U㈨))》 23);并根据公式 Pb+i= (28 (Pb+i_rU 如)))mod232+bm+i+T ((Pb+^-U ㈨))》23),对所述窗 口中的 字符进行拉宾指纹运算,获取对应的指纹Pb+i ;再对所述Pb+i进行求模,获取求模结果Rb+i ; 将i加1,重复执行该步骤,直至获取到求模结果Rb+N。
9. 根据权利要求6至8任一所述的装置,其特征在于,所述边界判定模块包括: 跳跃单元,用于将所述求模结果Rb+i至Rb+N组成待判定文件,并将所述待判定文件向前 跳跃m个位置,获取第1位置; 判断单元,用于判断所述第1位置对应的求模结果是否为期望值; 边界确定单元,用于若所述判断单元判断出所述第1位置对应的求模结果为所述期望 值,则确定所述第1位置为边界; 所述判断单元还用于判断剩余待判定文件的长度是否大于m ; 所述跳跃单元还用于若所述判断单元判断出所述剩余的待判定文件的长度大于m,则 将所述剩余的待判定文件继续向前跳跃m个位置,获取第fm位置,并触发所述判断单元继 续判断所述第fm位置对应的求模结果是否为期望值,若判断出该第fm位置对应的求模结 果为所述期望值,则触发所述边界确定单元确定所述第fm位置为边界,并将f加1后重复 执行该步骤; 所述跳跃单元还用于若所述判断单元判断出所述第m位置对应的求模结果不为所述 期望值,则将所述剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1位置,并触发所 述判断单元判断所述第m+f-1位置对应的信息是否为边界条件,若判断出所述第m+f-1位 置对应的信息不满足所述边界条件,则将f加1,并重复执行该步骤,直至所述边界确定单 元确定所述第m+f-1+t位置对应的信息满足边界条件中的任一个,则确定所述第m+f-1+t 位置为边界; 其中,所述边界条件包括:所述第m+f-1位置对应的求模结果为所述期望值;所述第 m+f-lf位置至第m位置之间的长度大于或等于预设阈值;以及所述第m+f-1位置为所述判 定文件的结尾; f和t为整数,且f大于1。
10.根据权利要求9所述的装置,其特征在于,所述边界确定单元还用于若所述判断单 元判断出所述剩余的待判定文件的长度小于m,则将所述剩余的待判定文件作为一个数据 分块。
【文档编号】G06F17/30GK104142969SQ201310616966
【公开日】2014年11月12日 申请日期:2013年11月27日 优先权日:2013年11月27日
【发明者】王瑶宝 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1