CN104142969A - 数据分块的处理方法和装置 - Google Patents
数据分块的处理方法和装置 Download PDFInfo
- Publication number
- CN104142969A CN104142969A CN201310616966.3A CN201310616966A CN104142969A CN 104142969 A CN104142969 A CN 104142969A CN 201310616966 A CN201310616966 A CN 201310616966A CN 104142969 A CN104142969 A CN 104142969A
- Authority
- CN
- China
- Prior art keywords
- file
- result
- character
- window
- deblocking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据分块的处理方法和装置,方法包括将宽度为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,进行边界判定,获取待处理文件的数据分块结果,并将数据分块结果返回给处理器,以供处理器根据接收到的数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理。
Description
技术领域
本发明涉及通信技术,尤其涉及一种数据分块的处理方法和装置。
背景技术
拉宾指纹算法的计算效率高、随机性好,且可将数据更改对连续指纹序列的影响限制在局部范围内,因此可以广泛应用于重复数据中数据分块场景,例如:广域网加速、数据中心备份等。目前,拉宾指纹算法是将字符串以多项式的形式进行表示,该多项式被另一个不可约多项式求余,所得的余数即为该字符串的指纹。具体的,假设A=([b1,b2,…bm-1,bm])是包含m个字符的字符串,那么可以根据A构造相应的(m-1)度的多项式:A(t)=b1tm-1+b2tm-2+…+bm-1t+bm,其中,t是不定元。同时,给定一个k次多项式(即上述的不可约多项式):P(t)=a1tk+a2tk-1+…ak-1t+ak,则A(t)除以P(t)的余数f(t)的次数为(k-1),从而对于给定的字符串A,定义A的指纹f(A)为:f(A)=A(t)modP(t)。
但是,现有的拉宾指纹算法相对复杂,处理速度相对较慢,从而降低了分块性能。
发明内容
本发明提供一种数据分块的处理方法和装置,用于有效地提高分块处理能力。
本发明的第一个方面是提供一种数据分块的处理方法,包括:
将宽度为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,进行边界判定,获取所述待处理文件的数据分块结果,并将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理;
其中,初始时,i等于1;Pb+i-1为所述Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于m。
本发明的另一个方面是提供一种数据分块的处理装置,包括:
滑动模块,用于将宽度为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,进行边界判定,获取所述待处理文件的数据分块结果;
发送模块,用于将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理;
其中,初始时,i等于1;Pb+i-1为所述Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于m。
本发明的技术效果是:通过将宽度为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,进行边界判定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉宾算法相对简单,即只需要两次查表,获取与该字符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),即3次异或计算便可以获取对应的指纹Pb+i,因此,有效地提高了分块处理能力。
附图说明
图1为本发明数据分块的处理方法的一个实施例的流程图;
图2为本发明数据分块的处理方法的另一个实施例的流程图;
图3为本发明数据分块的处理方法中边界判定的一个实施例的流程图;
图4为本发明数据分块的处理装置的一个实施例的结构示意图;
图5为本发明数据分块的处理装置的另一个实施例的结构示意图。
具体实施方式
图1为本发明数据分块的处理方法的一个实施例的流程图,如图1所示,本实施例的方法包括:
步骤101、将宽度为m的窗口在待处理文件中滑动。
在本实施例中,N为该待处理文件的字节长度,N和m为整数,且N大于m。
步骤102、当该待处理文件中的字符bi滑出该窗口时,查询表格,获取与该字符bi对应的U(bi)和T((Pb+i-1-U(bi))》23)。
在本实施例中,初始时,i等于1。其中,“》”表示右移位。
步骤103、根据公式(1):
Pb+i=(28(Pb+i-1-U(bi)))mod232+bm+i+T((Pb+i-1-U(bi))》23) (1)
对该窗口中的字符进行拉宾指纹运算,获取对应的指纹Pb+i。
步骤104、对该Pb+i进行求模,获取求模结果Rb+i。
步骤105、将i加1,并执行步骤102,直至获取到求模结果Rb+N。
步骤106、根据该求模结果Rb+i至Rb+N,进行边界判定,获取该待处理文件的数据分块结果。
步骤107、将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理。
其中,Pb+i-1为该Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符。
在本实施例中,需要说明的是,对于第一个移入窗口的字符,可以认为前面一个窗口是全0的窗口,即前一个窗口指纹是0,从而从窗口中移出的字符也为0。
在本实施例中,通过将宽度为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,进行边界判定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉宾算法相对简单,即只需要两次查表,获取与该字符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),即3次异或计算便可以获取对应的指纹Pb+i,因此,有效地提高了分块处理能力。
图2为本发明数据分块的处理方法的另一个实施例的流程图,在上述图1所示实例的基础上,如图2所示,在步骤101之前,该方法还可以包括:
步骤100a、根据公式(2):
U(bi)=bitm-1modP(t) (2)
获取bi与U(bi)的对应关系并存储在该表格中;
步骤100b、根据公式(3):
T(j)=(231*j)modP(t)-(j*231)mod232 (3)
获取j与T(j)的对应关系并存储在该表格中;
其中,该P(t)为预设的k次多项式。k为整数,优选地,k为31。
另外,在本实施例中,以i等于1,且指纹Pb对应的字符串为A=[b1,b2,b3,...bm-1,bm],指纹Pb+1对应的字符串为B=[b2,b3,b4,...bm,bm+1]为例,公式(1)的具体推导为:
Pb+1=B(t)modP(t)
=(b2tm-1+b3tm-2+b4tm-3+…+bmt+bm+1)modP(t)
=(b1tm+b2tm-1+b3tm-2+b4tm-3+…+bmt-b1tm+bm+1)modP(t)
=(t(b1tm-1+b2tm-2+b3tm-3+b4tm-4+…+bm)-b1tm+bm+1)modP(t)
=(tA(t)-b1tm+bm+1)modP(t)
=(t(A(t)modP(t))-b1tm+bm+1)modP(t)
=(tPb-b1tm+bm+1)modP(t)
=(t(Pb-b1tm-1modP(t))+bm+1)modP(t)
令U(b1)=b1tm-1modP(t),则上式:
=(t(Pb-U(b1))+bm+1)modP(t)
由于一个字符采用ASCII码标识需要一个字节,即8比特(bit),故此处令t=28;另外令D=(Pb-U(b1)),则上式:
=(28D+bm+1)modP(t)
令C=28D+bm+1,由于Pb和U(b1)均是对P(t)的求模的结果,P(t)的最高次为31,故Pb和U(b1)的最高次为30,因此D的最高次为30,即28D+bm+1的最高幂为30+8=38,上式可表示如下:
=(231(D/223)+28Dmod231+bm+1)modP(t)
=28Dmod231+bm+1+231(D》23)modP(t)
=28Dmod232-D23*231+bm+1+231(D》23)modP(t)
右移出界将被丢弃,故可修改为
=28Dmod232bm+1-((D》23)*231)mod232+231(D》23)modP(t)
令T(j)=(231*j)modP(t)-(j*231)mod232,上式可表示如下:
=28Dmod232+bm+1+T(D》23)
=28(Pb-U(b1))mod232+bm+1+T((Pb-U(b1))》23)
综上所述,最终公式可以为:
Pb+1=(28(Pb-U(b1)))mod232+bm+1+T((Pb-U(b1))》23)
其中,多项式P(t)和m均是固定的,因此U(b1)=b1tm-1modP(t),只与从窗口移出的b1有关,且T(j)=(231*j)modP(t)-(j*231)mod232,只与j有关。
可选地,步骤102的具体实现方式为:
步骤201、当该待处理文件中的字符bi滑出该窗口时,查询该表格,获取与该字符bi对应的U(bi)。
步骤202、令j=(Pb+i-1-U(bi))》23,查询该表格,获取与该(Pb+i-1-U(bi))》23对应的T((Pb+i-1-U(bi))》23)。
图3为本发明数据分块的处理方法中边界判定的一个实施例的流程图,在上述图1所示实例的基础上,如图3所示,上述步骤106的一种具体实现方式为:
步骤301、将该求模结果Rb+i至Rb+N组成待判定文件,并将该待判定文件向前跳跃m个位置,获取第m位置。
在本实施例中,初始时,是从待判定文件的首部向前跳跃m个位置。
步骤302、判断该第m位置对应的求模结果是否为期望值;若是,则执行步骤303;若否,则执行步骤308。
在本实施例中,窗口的宽度不同,其对应的期望值也不相同,期望值的具体数值是根据实际情况来决定的。优选地,该期望值为0至500内的素数。
步骤303、确定该第m位置为边界。
步骤304、判断剩余的待判定文件的长度是否大于m,若大于,则执行步骤305;若小于,则将剩余的待判定文件作为一个数据分块,并结束。
在本实施例中,剩余的待判定文件是指待判定文件进行跳跃后的剩余文件。
步骤305、将该剩余的待判定文件继续向前跳跃m个位置,获取第fm位置。
需要说明的是,初始时,该f等于2。其中,f为整数,且大于1。另外,fm表示f乘以m。
步骤306、判断该第fm位置对应的求模结果是否为该期望值;若是,则执行步骤307;若否,则执行步骤308。
步骤307、确定第fm位置为边界,并将f加1后执行步骤304。
步骤308、将该剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1位置。
在本实施例中,初始时,该f等于2。其中,f为整数,且大于1。
步骤309、判断所述第m+f-1位置对应的求模结果是否为该期望值,若否,则执行步骤310;若是,则执行步骤313。
步骤310、判断所述第m+f-1位置至第m位置之间的长度是否大于或等于预设阈值,若大于或等于,则执行步骤313;若小于,则执行步骤311;
步骤311、判断所述第m+f-1位置是否为判定文件的结尾;若是,则执行步骤313;若否,则执行步骤312。
步骤312,将f加1并执行步骤308。
在本实施例中,举例来说,当第m+f-1位置不为边界时,重复执行步骤308,将该剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1+1位置,若第m+f-1+1位置不满足上述步骤309至311的三个边界条件,则再将该剩余的待判定文件继续向前跳跃1个位置,获取第m+f-1+2位置,继续判断,直至确定第m+f-1+t位置对应的信息满足边界条件中的任一个,则确定m+f-1+t位置为边界即可。
步骤313、确定第m+f-1位置为边界。
在本实施例中,需要说明的是,当在执行完步骤313之后,可以按照上述步骤304以后的方式继续执行,其实现原理相类似,此处不再赘述,其区别在于,剩余的待判定文件继续向前跳跃的m个位置是以第m+f位置为基准。
在本实施例中,值得注意的是,步骤309至步骤311的逻辑顺序并不限于上述描述的逻辑顺序,还可以是其他逻辑顺序,本实施例并不以此为限。
另外,在本实施例中,举例来说,若第m位置为边界,且剩余的待判定文件的长度大于m,则将该剩余的待判定文件继续向前跳跃m个位置,获取第2m位置;若第2m位置为边界,且剩余的待判定文件的长度大于m,则将该剩余的待判定文件继续向前跳跃m个位置,获取第3m位置。若第3m位置不为边界,则将该剩余的待判定文件继续向前跳跃1个位置,获取第3m+1位置,若判断第3m+1位置对应的求模结果为该期望值,或者第3m+1位置至第2m位置之间的长度大于或等于预设阈值,或者第3m+1位置为剩余的待判定文件的结尾,则确定第3m+1位置为边界,并在剩余的待判定文件的长度大于m时,将将该剩余的待判定文件继续向前跳跃m个位置,获取第4m+1位置,并确定第4m+1位置是否为边界,其实现原理与上述相似,此处不再赘述,重复执行,直至获取待判定文件的所有边界。
需要说明的是,预设阈值大于窗口宽度。另外,如果判断出第3m+1位置对应的求模结果不为该期望值,第3m+1位置至第2m位置之间的长度小于预设阈值,第3m+1位置不为剩余的待判定文件的结尾,则确定第3m+1位置不为边界,则将剩余的待判定文件向前跳跃1个位置,获取低3m+2位置,并继续进行判定处理。
综上,当确定某个位置为边界,并在剩余的待判定文件的长度大于m时,需要将剩余的待判定文件继续向前跳跃m个位置,以进行边界判定;当确定某个位置不为边界时,需要将剩余的待判定文件继续向前跳跃1个位置,以进行边界判定。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明数据分块的处理装置的一个实施例的结构示意图,如图4所示,本实施例的装置包括:滑动模块11、处理模块12、边界判定模块13和发送模块14;其中,滑动模块11用于将宽度为m的窗口在待处理文件中滑动;处理模块12用于当该待处理文件中的字符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;边界判定模块13用于根据该求模结果Rb+i至Rb+N,进行边界判定,获取该待处理文件的数据分块结果;发送模块14用于将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用该哈希值替代对应的数据分块进行传输处理;其中,初始时,i等于1;Pb+i-1为该Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为该待处理文件的字节长度,N和m为整数,且N大于m。
本实施例的数据分块的处理装置可以执行图1所示方法实施例的技术方案,其实现原理相类似,此处不再赘述。
在本实施例中,通过将宽度为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,进行边界判定,获取该待处理文件的数据分块结果,并将该数据分块结果返回给处理器,以供该处理器根据接收到的该数据分块结果,计算每个数据块对应的哈希值,并用哈希值替代对应的数据分块进行传输处理;由于相较于现有的拉宾算法,本发明实施例中的拉宾算法相对简单,即只需要两次查表,获取与该字符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),即3次异或计算便可以获取对应的指纹Pb+i,因此,有效地提高了分块处理能力。
图5为本发明数据分块的处理装置的另一个实施例的结构示意图,在上述图4所示实施例的基础上,如图5所示,本实施例的装置还包括:存储模块15,用于根据公式U(bi)=bitm-1modP(t),获取bi与U(bi)的对应关系并存储在该表格中;并根据公式T(j)=(231*j)modP(t)-(j*231)mod232,获取j与T(j)的对应关系并存储在该表格中;其中,该P(t)为预设的k次多项式。
优选地,处理模块12具体用于当该待处理文件中的字符bi滑出该窗口时,查询该表格,获取与该字符bi对应的U(bi);令j=(Pb+i-1-U(bi))》23,查询该表格,获取与该(Pb+i-1-U(bi))》23对应的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。
更为优选地,边界判定模块13包括:跳跃单元131、判断单元132和边界确定单元133;其中,跳跃单元131用于将该求模结果Rb+i至Rb+N组成待判定文件,并将该待判定文件向前跳跃m个位置,获取第m位置;判断单元132用于判断该第m位置对应的求模结果是否为期望值;边界确定单元133用于若该判断单元132判断出该第m位置对应的求模结果为该期望值,则确定该第m位置为边界;该判断单元132还用于判断剩余待判定文件的长度是否大于m;
该跳跃单元131还用于若该判断单元132判断出该剩余的待判定文件的长度大于m,则将该剩余的待判定文件继续向前跳跃m个位置,获取第fm位置,并触发该判断单元132继续判断该第fm位置对应的求模结果是否为期望值,若判断出该第fm位置对应的求模结果为该期望值,则触发该边界确定单元133确定该第fm位置为边界,并将f加1后重复执行该步骤;
该跳跃单元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位置为边界;
其中,该边界条件包括:该第m+f-1位置对应的求模结果为该期望值;该第m+f-1位置至第m位置之间的长度大于或等于预设阈值;以及该第m+f-1位置为该判定文件的结尾;
f和t为整数,且f大于1。
可选地,该边界确定单元133还用于若该判断单元132判断出该剩余的待判定文件的长度小于m,则将该剩余的待判定文件作为一个数据分块。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据分块的处理方法,其特征在于,包括:
将宽度为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,进行边界判定,获取所述待处理文件的数据分块结果,并将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理;
其中,初始时,i等于1;Pb+i-1为所述Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于m。
2.根据权利要求1所述的方法,其特征在于,在所述查询表格,获取与所述字符bi对应的U(bi)和T((Pb+i-1-U(bi))》23)之前,所述方法还包括:
根据公式U(bi)=bitm-1modP(t),获取bi与U(bi)的对应关系并存储在所述表格中;
根据公式T(j)=(231*j)modP(t)-(j*231)mod232,获取j与T(j)的对应关系并存储在所述表格中;
其中,所述P(t)为预设的k次多项式。
3.根据权利要求2所述的方法,其特征在于,所述查询表格,获取与所述字符bi对应的U(bi)和T((Pb+i-1-U(bi))》23),包括:
查询所述表格,获取与所述字符bi对应的U(bi);
令j=(Pb+i-1-U(bi))》23,查询所述表格,获取与所述(Pb+i-1-U(bi))》23对应的T((Pb+i-1-U(bi))》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的窗口在待处理文件中滑动;
处理模块,用于当所述待处理文件中的字符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,进行边界判定,获取所述待处理文件的数据分块结果;
发送模块,用于将所述数据分块结果返回给处理器,以供所述处理器根据接收到的所述数据分块结果,计算每个数据块对应的哈希值,并用所述哈希值替代对应的数据分块进行传输处理;
其中,初始时,i等于1;Pb+i-1为所述Pb+i对应的窗口的前一个窗口中的字符对应的指纹;bm+i为移进当前窗口的字符;N为所述待处理文件的字节长度,N和m为整数,且N大于m。
7.根据权利要求6所述的装置,其特征在于,还包括:
存储模块,用于根据公式U(bi)=bitm-1modP(t),获取bi与U(bi)的对应关系并存储在所述表格中;并根据公式T(j)=(231*j)modP(t)-(j*231)mod232,获取j与T(j)的对应关系并存储在所述表格中;
其中,所述P(t)为预设的k次多项式。
8.根据权利要求7所述的装置,其特征在于,所述处理模块具体用于当所述待处理文件中的字符bi滑出所述窗口时,查询所述表格,获取与所述字符bi对应的U(bi);令j=(Pb+i-1-U(bi))》23,查询所述表格,获取与所述(Pb+i-1-U(bi))》23对应的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。
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-1f位置至第m位置之间的长度大于或等于预设阈值;以及所述第m+f-1位置为所述判定文件的结尾;
f和t为整数,且f大于1。
10.根据权利要求9所述的装置,其特征在于,所述边界确定单元还用于若所述判断单元判断出所述剩余的待判定文件的长度小于m,则将所述剩余的待判定文件作为一个数据分块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616966.3A CN104142969B (zh) | 2013-11-27 | 2013-11-27 | 数据分块的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616966.3A CN104142969B (zh) | 2013-11-27 | 2013-11-27 | 数据分块的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104142969A true CN104142969A (zh) | 2014-11-12 |
CN104142969B CN104142969B (zh) | 2018-04-06 |
Family
ID=51852143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310616966.3A Active CN104142969B (zh) | 2013-11-27 | 2013-11-27 | 数据分块的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104142969B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105527843A (zh) * | 2016-01-29 | 2016-04-27 | 中国船舶重工集团公司第七一九研究所 | 一种多执行机构的变尺度控制方法 |
CN105844118A (zh) * | 2016-04-15 | 2016-08-10 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105893859A (zh) * | 2016-04-15 | 2016-08-24 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105956482A (zh) * | 2016-04-15 | 2016-09-21 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN110427348A (zh) * | 2019-07-31 | 2019-11-08 | 关振宇 | 基于大数据的智慧安防系统数据共享方法 |
CN110445257A (zh) * | 2019-08-16 | 2019-11-12 | 佳源科技有限公司 | 一种基于物联网架构的智能变电站辅助系统综合监控平台 |
CN116471283A (zh) * | 2023-06-20 | 2023-07-21 | 北京中宏立达科技发展有限公司 | 一种文件传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097011A (zh) * | 1993-06-26 | 1995-01-04 | 河南师范大学 | 一种治疗肠炎和溃疡性结肠炎的药物及其制备工艺 |
CN1235926A (zh) * | 1998-05-15 | 1999-11-24 | 株式会社村田制作所 | 零件搬运装置 |
CN102427444A (zh) * | 2011-08-25 | 2012-04-25 | 飞天诚信科技股份有限公司 | 一种计算机对数据流进行处理的方法 |
CN103092688A (zh) * | 2012-12-28 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中生成坐标点的方法 |
-
2013
- 2013-11-27 CN CN201310616966.3A patent/CN104142969B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097011A (zh) * | 1993-06-26 | 1995-01-04 | 河南师范大学 | 一种治疗肠炎和溃疡性结肠炎的药物及其制备工艺 |
CN1235926A (zh) * | 1998-05-15 | 1999-11-24 | 株式会社村田制作所 | 零件搬运装置 |
CN102427444A (zh) * | 2011-08-25 | 2012-04-25 | 飞天诚信科技股份有限公司 | 一种计算机对数据流进行处理的方法 |
CN103092688A (zh) * | 2012-12-28 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中生成坐标点的方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105527843A (zh) * | 2016-01-29 | 2016-04-27 | 中国船舶重工集团公司第七一九研究所 | 一种多执行机构的变尺度控制方法 |
CN105527843B (zh) * | 2016-01-29 | 2018-10-30 | 中国船舶重工集团公司第七一九研究所 | 一种多执行机构的变尺度控制方法 |
CN105844118A (zh) * | 2016-04-15 | 2016-08-10 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105893859A (zh) * | 2016-04-15 | 2016-08-24 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105956482A (zh) * | 2016-04-15 | 2016-09-21 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105893859B (zh) * | 2016-04-15 | 2019-05-03 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105956482B (zh) * | 2016-04-15 | 2019-06-04 | 宝利九章(北京)数据技术有限公司 | 用于数据泄露防护的方法和系统 |
CN105844118B (zh) * | 2016-04-15 | 2020-02-21 | 量子创新(北京)信息技术有限公司 | 用于数据泄露防护的方法和系统 |
CN110427348A (zh) * | 2019-07-31 | 2019-11-08 | 关振宇 | 基于大数据的智慧安防系统数据共享方法 |
CN110445257A (zh) * | 2019-08-16 | 2019-11-12 | 佳源科技有限公司 | 一种基于物联网架构的智能变电站辅助系统综合监控平台 |
CN116471283A (zh) * | 2023-06-20 | 2023-07-21 | 北京中宏立达科技发展有限公司 | 一种文件传输方法 |
CN116471283B (zh) * | 2023-06-20 | 2023-08-25 | 北京中宏立达科技发展有限公司 | 一种文件传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104142969B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104142969A (zh) | 数据分块的处理方法和装置 | |
CN102214210B (zh) | 重复数据处理方法、装置和系统 | |
JP6797281B2 (ja) | 符号化方法およびデバイスならびに装置 | |
US5282147A (en) | Method and apparatus for optimizing a logic network | |
CN105528560A (zh) | 基于物理不可克隆功能的安全数据存储 | |
KR20130050124A (ko) | 비휘발성 메모리 장치의 가비지 컬렉션 방법 | |
US10628066B2 (en) | Ensuring in-storage data atomicity and consistency at low cost | |
CN105808169A (zh) | 用于数据去重的方法、装置和系统 | |
CN105335097B (zh) | 基于剩余授权在闪存设备之间控制磨损 | |
CN104516828A (zh) | 用于移除缓存数据的方法和设备 | |
EP2956853A1 (en) | Software pipelining at runtime | |
KR20160048860A (ko) | 소수 생성 및 저장을 위한 방법들 및 장치들 | |
CN107451006A (zh) | 限制存储设备中的性能变化的技术 | |
CN109658985B (zh) | 一种基因参考序列的去冗余优化方法及系统 | |
US20170244923A1 (en) | Data extraction method and apparatus | |
CN112748858A (zh) | 用于管理盘阵列的方法、电子设备和计算机程序产品 | |
US20210103845A1 (en) | Generation of a bayesian network | |
JP2009222778A (ja) | 分散情報追加装置、方法及びプログラム | |
JP6067856B2 (ja) | 計算装置、計算方法、およびプログラム | |
US11226739B2 (en) | Method, device and computer program product for storage management | |
CN113420091A (zh) | 基于区块链的用户行为采集方法及装置 | |
US10977215B2 (en) | System and method for storage optimization in a de-duplication system | |
CN102325023B (zh) | 一种延长芯片使用寿命的数据生成方法和装置 | |
CN105095197A (zh) | 一种处理数据的方法及装置 | |
CN107992264B (zh) | 数据保护方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |