WO2015120645A1 - 一种基于服务器查找数据流分割点的方法及服务器 - Google Patents

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

Info

Publication number
WO2015120645A1
WO2015120645A1 PCT/CN2014/072648 CN2014072648W WO2015120645A1 WO 2015120645 A1 WO2015120645 A1 WO 2015120645A1 CN 2014072648 W CN2014072648 W CN 2014072648W WO 2015120645 A1 WO2015120645 A1 WO 2015120645A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
window
predetermined condition
satisfies
point
Prior art date
Application number
PCT/CN2014/072648
Other languages
English (en)
French (fr)
Inventor
于传帅
张程伟
徐林波
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to EP14882733.0A priority Critical patent/EP3026585A4/en
Priority to RU2016114526A priority patent/RU2639947C2/ru
Priority to BR112016005391A priority patent/BR112016005391B8/pt
Priority to NZ717601A priority patent/NZ717601A/en
Priority to JP2016518730A priority patent/JP6198090B2/ja
Priority to MX2016004935A priority patent/MX358948B/es
Priority to KR1020167007148A priority patent/KR101912727B1/ko
Priority to CN201480000347.4A priority patent/CN104169917B/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CA2922994A priority patent/CA2922994C/en
Priority to SG11201601357TA priority patent/SG11201601357TA/en
Priority to AU2014382891A priority patent/AU2014382891B2/en
Publication of WO2015120645A1 publication Critical patent/WO2015120645A1/zh
Priority to IL244830A priority patent/IL244830B/en
Priority to US15/235,378 priority patent/US9906577B2/en
Priority to US15/235,407 priority patent/US9967304B2/en
Priority to US15/938,845 priority patent/US10264045B2/en
Priority to US16/352,509 priority patent/US10542062B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 

Abstract

本发明实施例提供了一种基于服务器查找数据流分割点的方法。本发明实施例中通过判断M个窗口中某一个窗口中至少部分数据是否满足预定条件,来查找数据流分割点,当某一个窗口中至少部分数据不满足预定条件,则跳过N*U个长度,获得下一个潜在分割点,提高了数据流分割点查找效率。

Description

一种基于艮务器查找数据流分割点的方法 SJ艮务器 技术领域
本发明涉及信息技术领域,尤其涉及一种基于服务器查找数据流 分割点的方法及服务器。
背景技术
数据量的不断增长,使得提供充足的数据存储成为当前存储领域 面临的严峻挑战。 目前应对这一挑战的一种方式为利用需要存储的数 据的冗余特性, 使用重复数据删除技术, 从而减少存储的数据量。
现有技术中, 基于内容分块 (Content Defined Chunk, CDC)的重复 数据删除算法, 首先要将待存储的数据流分成很多数据块, 而将数据 流分成数据块就需要在数据流中查找合适的分割点,两个相邻数据流 分割点之间的数据构成一个数据块。 计算数据块的特征值,从而查找 是否存在相同特征值的数据块, 如果查找到相同特征指的数据块, 则 认为存在重复数据。 具体的, 基于内容分块的重复数据删除技术是应 用滑动窗口技术( Sliding Window Technique )基于文件的内容来查找 分块的分割点, 即通过计算窗口内数据的 Rabin指纹来确定数据流分 割点。假设从数据流的左边向右边查找分割点, 每次计算滑动窗口内 数据的指纹, 并且将指纹值基于给定的整数 K取模后, 与给定的余数 R进行比对; 若相等则窗口的右端为数据流分割点, 否则将窗口继续 往右滑动一个字节,依次循环地进行计算和比对, 直到到达数据流末 尾。 在基于内容分块的重复数据删除过程中, 查找数据流分割点, 需 要消耗大量的计算资源, 从而成为提升重复数据删除性能的瓶颈。 发明内容
第一方面,本发明实施例提供了一种基于服务器查找数据流分割 点的方法, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个点 、点 对应的窗口 x[A-4, +^]和窗口 ^χ[/^-4,Α + Βχ ]对应的预定条件 Cx , 其中, X为 1到 M连续的自然数, Μ≥2 , Ax和 为整数; 所述方法包括:
a)依据所述规则为当前潜在分割点 kt确定点 及所述点 对应 的窗口^ [ Piz -Az,Pi +Bz], i和 z为整数, 并且 1≤z≤M;
b) 判断所述窗口 [p,z-^,p,z+Sz]中至少部分数据是否满足预 定条件 Cz;
当所述窗口^ [Az -^, Az + Sz]中至少部分数据不满足所述预定条 件 Cz,从所述点 ριζ沿所述数据流分割点查找方向跳跃 N个数据流分割 点最小查找单位 U, N*U不大于 II Bz II +maxx( II Ax II + || {k.-p II ), 获得新的潜在分割点, 执行步骤 a);
c)当所述当前潜在分割点 ^的 M个窗口中的每一个窗口
中至少部分数据满足预定条件^, 则所述当前潜在分割点 为数据流分割点。
结合第一方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个点 和 ,满足条件 4 = , B =Bf , Ce = C"
结合第一方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: 所述至少两个点 和 ,相对于所述潜在分割 点 k,在所述数据流分割点查找反方向上。
结合第一方面的第一种可能的实现方式或第二种可能的实现方 式, 第三种可能的实现方式中, 所述规则还包括: 所述至少两个点 和 之间的距离为 1个 u。
结合第一方面, 或第一方面第一至第三种任一可能的实现方式, 第四种可能的实现方式中, 判断所述窗口^ [Az z,AZ+sz]中至少部 分数据是否满足所述预定条件 z , 具体包括:
使用随机函数判断所述窗口^ [^-^, +sz]中至少部分数据是 否满足所述预定条件 cz
结合第一方面的第四种可能的实现方式,第五种可能的实现方式 中, 所述使用随机函数判断所述窗口^ [ - z , + sz ]中至少部分数 据是否满足所述预定条件 Cz, 具体为使用 hash函数判断所述窗口 Wiz [ P1Z - 4 , + SZ ]中至少部分数据是否满足所述预定条件 Cz
结合第一方面, 或第一方面第一至第五种任一可能的实现方式, 第六种可能的实现方式中, 当所述窗口^ [p,z-4, + ]中至少部分 数据不满足所述预定条件 Cz,从所述点 Piz沿所述数据流分割点查找方 向跳跃 N个数据流分割点最小查找单位 U,获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在分割点确定的点 A对应的窗口 W [ pic - Ac , pic + ]的左边界与所述窗口 ^ [ Az - z , p,z + SZ ]的右边界重合 或者为所述新的潜在分割点确定的所述点 pic对应的所述窗口 WFC [ pic - 的左边界位于所述窗口^ [AZ-^,AZ+Sz]范围之内; 其中, 为所述新的潜在分割点确定的所述点 是根据所述规则, 为所述新 的潜在分割点确定的 M个点按照数据流查找方向获得的序列中排序 第一的点。
结合第一方面的第四种可能的实现方式,第七种可能的实现方式 中, 使用随机函数判断所述窗口 [ -^, A + ]中至少部分数据 是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ piz-Az, Pi +Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为 c^... am&, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 7 当。 m,n =1时 ^, 7 v am,n
Figure imgf000005_0001
=1, 当 „=0时, ,„=-1, 其中 „表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000005_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000005_0003
的随机数相乘,然后求和得到一个值,具体表示为 ^^^ υ ^ * 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 Κ为偶数,则所述窗口 Wiz [ ρίζζ, piz+Bz]中至少部分数据满足所述预定条件 Cz
第二方面,本发明实施例提供了一种基于服务器查找数据流分割 点的方法, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 /1确定 M个窗口 + ]和窗口 + ]对应的预定条 件 Cx, 其中, X为 1到 M连续的自然数, M≥2, 4和^为整数;
所述方法包括:
a)依据所述规则为当前潜在分割点 确定对应的窗口 -Αζ, kt+Bz], i和 z为整数, 并且 l≤z≤M;
b)判断所述窗口^ [ ;-^^+ ]中至少部分数据是否满足预定 条件 Cz; 当所述窗口 Wiz [ k, - z Λ· +sz ]中至少部分数据不满足所述预定 条件 cz, 从所述当前潜在分割点^沿所述数据流分割点查找 方向跳跃 N个数据流分割点最小查找单位 U, N*U不大于 II
Bz II +maxx( II Ax || ), 获得新的潜在分割点, 执行步骤 a) ; C)当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 fVix [kt - Αχ , kt + Bx ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为 数据流分割点。
结合第二方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个窗口^ ]与 [ - 满足条件: \A +Be
Figure imgf000006_0001
结合第二方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: ^和 为正整数。
结合第二方面的第一种可能的实现方式或第二种可能的实现方 式,在第三种可能的实现方式中, 所述规则还包括: ^-1 = , Be+\ =
Bf。
结合第二方面, 或第二方面第一至第三任一可能的实现方式, 第 四种可能的实现方式中,判断所述窗口 ^[ ·-^Λ·+ ζ]中至少部分数 据是否所述满足预定条件 Cz, 具体包括:
使用随机函数判断所述窗口 wiz [ - 4 Λ· +sz ]中至少部分数据是 否满足所述预定条件 cz
结合第二方面的第四种可能的实现方式,第五种可能的实现方式 中,所述使用随机函数判断所述窗口^ [ -^, + ]中至少部分数据 是否满足所述预定条件 Cz, 具体为使用 hash函数判断所述窗口^ [ - K + sz ]中至少部分数据是否满足所述预定条件 z
结合第二方面, 或第二方面第一至第五任一可能的实现方式, 第 六种可能的实现方式中, 当所述窗口 Wiz ik -Az, kt+Bz]中至少部分数 据不满足所述预定条件 ,从所述当前潜在分割点 沿所述数据流分 割点查找方向跳跃 N个数据流分割点最'〗、查找单位 U 获得所述新的潜 在分割点, 根据所述规则, 为所述新的潜在分割点确定的窗口 W,Jk, -4, k, + ^]的左边界与所述窗口 Wiz [k ~Az, ^ + ^]的右边界重合或者 为所述新的潜在分割点确定的所述窗口 W;t [ k; - Ac , kt+Bc ]的左边界位 于所述窗口 ^ [^_4, +Sz]范围之内; 其中, 为所述新的潜在分割 点确定的所述窗口 W;Jk,-4,k, + A]是根据所述规则, 为所述新的潜 在分割点确定的 M个窗口按照数据流查找方向获得的序列中排序第 一的窗口。
结合第二方面的第四种可能的实现方式,第七种可能的实现方式 中,使用随机函数判断所述窗口 Wiz ik -Az, k.+ B 中至少部分数据是 否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [k -Az, k^B 中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 L.. am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , ' 当 a m,n =1时 ^, am,n
Figure imgf000007_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照。m„与 V 的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000007_0002
J 择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000008_0001
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 S。!、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 K为偶数,则所述窗口 Wiz [k -Az, k^B 中至少部分数据满足所述预定条件 Cz
第三方面,本发明实施例提供了一种用于查找数据流分割点的服 务器, 所述服务器包括中央处理单元和主存储器, 所述中央处理单元 与所述主存储器通信, 在所述服务器上预设有规则, 所述规则为: 为 潜在分割点 k确定 M个点 px、点 px对应的窗口 ifx [ _ 4, + ^ ]和窗 口 ^ c [ Α_4, + ]对应的预定条件 Cx , 其中, X为 1到 M连续的自 然数, M>2, 4和^为整数;
所述主存储器用于存储可执行指令,所述中央处理单元执行所述 可执行指令, 以执行如下步骤:
a)依据所述规则为当前潜在分割点 确定点 及所述点 对应 的窗口^ [ Piz -Az,Pi +Bz], i和 z为整数, 并且 1≤z≤M;
b) 判断所述窗口 ^z[p,z-^,Az+Sz]中至少部分数据是否满足预 定条件 Cz;
当所述窗口 [ - z,Az + Sz]中至少部分数据不满足所述预定条 件 Cz,从所述点 ρ 沿所述数据流分割点查找方向跳跃 Ν个数据流分割 点最小查找单位 U, N*U不大于 II Bz II +maxx( II Ax || + || (krPix) II ), 获得新的潜在分割点, 执行步骤 a);
c)当所述当前潜在分割点 ^的 M个窗口中的每一个窗口 Α, + ^]中至少部分数据满足预定条件^, 则所述当前潜在分割点 为数据流分割点。
结合第三方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个点 和 , 满足条件^ = , B =Bf , Ce = C,。
结合第三方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: 所述至少两个点 和 , 相对于所述潜在分 割点 k,在所述数据流分割点查找反方向上。
结合第三方面的第一种可能的实现方式或第二种可能的实现方 式, 第三种可能的实现方式中, 所述规则还包括: 所述至少两个点 和 之间的距离为 1个 u。
结合第三方面, 或第一至第三任一可能的实现方式, 第四种可能 的实现方式中, 所述中央处理单元具体用于
使用随机函数判断所述窗口^ [^-^ , +sz ]中至少部分数据是 否满足所述预定条件 cz
结合第三方面的第四种可能的实现方式,第五种可能的实现方式
Az + sz ]中至少部分数据是否满足所述预定条件 cz
结合第三方面, 或第一至第五任一可能的实现方式, 第六种可能 的实现方式中, 当所述窗口^ [ - z , + sz ]中至少部分数据不满足 所述预定条件 Cz,从所述点 沿所述数据流分割点查找方向跳跃 N个 数据流分割点最小查找单位 U, 获得所述新的潜在分割点, 根据所述 规则, 为所述新的潜在分割点确定的点 pic对应的窗口 [ Pic - Ac , Pic +
Bc ]的左边界与所述窗口^ [ ^ - 4 , Ριζ + sz ]的右边界重合或者为所述 新的潜在分割点确定的所述点 Αε对应的所述窗口 Wfc [ pic - Ac ,pic +Bc ] 的左边界位于所述窗口^ [ ζ-4,Αζ+^]范围之内; 其中, 为所述新 的潜在分割点确定的所述点 Α.ε是根据所述规则, 为所述新的潜在分 割点确定的 Μ个点按照数据流查找方向获得的序列中排序第一的点。
结合第三方面的第四种可能的实现方式,第七种可能的实现方式 中,所述中央处理单元使用随机函数判断所述窗口 Wiz [ piz-AzPi + Bz ] 中至少部分数据是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ pi2-Az, pi2+Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为。ml ... am8, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当 a =1时,
Figure imgf000010_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照 am n与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000010_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000010_0003
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 h 的随机数相乘,然后求和得到一个值,具体表示为 +
* 8, 同理, 获得 S。!、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 K为偶数,则所述窗口 Wiz [ Piz-Az, piz+ ]中至少部分数据满足所述预定条件 cz。 第四方面, 本发明实 施例提供了一种用于查找数据流分割点的服务器,所述服务器包括中 央处理单元和主存储器, 所述中央处理单元与所述主存储器通信, 在 所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个窗 口 [/t_4, 和窗口 [ _4, 对应的预定条件 cx, 其 中, X为 1到 M连续的自然数, M>2, 4和 为整数;
所述主存储器用于存储可执行指令,所述中央处理单元执行所述 可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 1^确定对应的窗口 Wiz[ki - ,kt + Bz], i和 z为整数, 并且 l≤z≤M;
b)判断所述窗口 [ 4 Λ. + ]中至少部分数据是否满足预定 条件 cz;
当所述窗口 Wiz[ki-Az,ki +Bz ]中至少部分数据不满足所述预定条件
Cz , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N个 数据流分割点最小查找单位 U, N*U不大于 II Bz II +maxx( II Ax || ),获 得新的潜在分割点, 执行步骤 a) ;
C)当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 fVix [kt - Αχ , kt + Bx ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 k【为 数据流分割点。
结合第四方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个窗口^ + 与 | , - Λ+β,], 满足条件: \A +Be
|=| ce=cf
结合第四方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: ^和 为正整数。
结合第四方面的第一种可能的实现方式或第二种可能的实现方 式,在第三种可能的实现方式中, 所述规则还包括: ^-1 = , Be+\ =
Bf。
结合第四方面, 或第一至第三任一可能的实现方式, 第四种可能 的实现方式中, 所述中央处理单元具体用于
使用随机函数判断所述窗口 wiz [ ki - 4 Λ +sz ]中至少部分数据是 否满足所述预定条件 cz
结合第四方面的第四种可能的实现方式,第五种可能的实现方式
ki+Bz ]中至少部分数据是否满足所述预定条件 Cz
结合第四方面, 或第一至第五任一可能的实现方式, 第六种可能 的实现方式中, 当所述窗口 Wiz [k -Az, k^ B 中至少部分数据不满足 所述预定条件 Cz,从所述当前潜在分割点 沿所述数据流分割点查找 方向跳跃 N个数据流分割点最 '〗、查找单位 U,获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在分割点确定的窗口 W;Jk,-4,k,+A] 的左边界与所述窗口 JViz [k -Az, k.+ B 的右边界重合或者为所述新 的潜在分割点确定的所述窗口 Wfc [ k,. - Ac , k; + ]的左边界位于所述窗 口 Wiz [k -A2, +Sz]范围之内; 其中, 为所述新的潜在分割点确定的 所述窗口 ^ - , + ]是根据所述规则, 为所述新的潜在分割点 确定的 M个窗口按照数据流查找方向获得的序列中排序第一的窗口。
结合第四方面的第四种可能的实现方式,第七种可能的实现方式 中, 所述中央处理单元使用随机函数判断所述窗口 fViz [ kt - Az, kt + Bz ] 中至少部分数据是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [k -Az, kt+Bz]中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 L.. am& , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 7 当。 m,n =1时 ^, 7 v am,n
Figure imgf000013_0001
=1, 当 „=0时, ,„=-1, 其中 „表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000013_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000013_0003
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, k Bj中至少部分数据满足所述预定条件 Cz
第五方面,本发明实施例提供了一种用于查找数据流分割点的服 务器, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 /1确 定 M个点/ ^、点 /^对应的窗口 + 和窗口
对应的预定条件 Cx,其中, X为 1到 M连续的自然数, M≥2, Ax和 为 整数;
所述服务器包括: 处理单元, 用于执行步骤 a) :
a)依据所述规则为当前潜在分割点 ^确定点 及所述点 对应 的窗口^ [ Pi2 -Az,Pj +Bz], i和 z为整数, 并且 1≤z≤M;
判断处理单元, 用于判断所述窗口 Wiz [ Pl2-A2 , ]中至少部分 数据是否满足预定条件 z
当所述窗口^ [ Az - ^ , Az+Sz ]中至少部分数据不满足所述预定条 件 Cz,从所述点 Piz沿所述数据流分割点查找方向跳跃 N个数据流分割 点最小查找单位 U, N*U不大于 II Bz II +maxx( II As II + II {k Pix ) II ), 获得新的潜在分割点 ,则所述确定单元为所述新的潜在分割点执行步 骤 a);
当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 [^-^ , 中至少部分数据满足预定条件^ ,则所述当前潜在分割点 为 数据流分割点。
结合第五方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个点 和 , 满足条件^ = , B =Bf , Ce = Cf
结合第五方面的第一种可能的实现方式, 第二种可能的实现方式 中, 所述规则还包括: 所述至少两个点 和 , 相对于所述潜在分 割点 k,在所述数据流分割点查找反方向上。
结合第五方面的第一种可能的实现方式或第二种可能的实现方式, 在第三种可能的实现方式中, 所述规则还包括: 所述至少两个点 A和 之间距离为 1个 u。
结合第五方面, 或第一至第三任一可能的实现方式, 第四种可能 的实现方式中, 所述判断处理单元具体使用随机函数判断所述窗口
Wiz [ p,z - z , + Sz ]中至少部分数据是否满足所述预定条件 Cz
结合第五方面的第四种可能的实现方式,第五种可能的实现方式
Az + sz ]中至少部分数据是否满足所述预定条件 cz
结合第五方面, 或第一至第五任一可能的实现方式, 第六种可能 的实现方式中, 所述判断处理单元用于当所述窗口 [ ρ-4 , +^ ] 中至少部分数据不满足所述预定条件 , 从所述点^沿所述数据流 分割点查找方向跳跃 N个数据流分割点最小查找单位 U,获得所述新的 潜在分割点, 所述确定单元为所述新的潜在分割点执行步骤 a) , 根 据所述规则, 为所述新的潜在分割点确定的点 Pic对应的窗口 W [ Pic - Ac , pic + ^ ]的左边界与所述窗口^ [ - 4 , ριζ + Sz ]的右边界重合或者 为所述新的潜在分割点确定的所述窗口 Wic [ pic - Ac , pic + ]的左边界 位于所述窗口 ζζ-^,Αζ + 3ζ]范围之内; 其中, 为所述新的潜在分 割点确定的所述窗口 W,JA-4,A +^]是根据所述规则, 为所述新的 潜在分割点确定的 M个点按照数据流查找方向获得的序列中排序第 一的点。
结合第五方面的第四种可能的实现方式,第七种可能的实现方式
Az, piz+ ]中至少部分数据是否满足所述预定条件 Cz, 具体包括: 在所述窗口 Wiz [ pi2-Az, pi2+Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为 ^ ... am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , ' 当 a m,n =1时 ^, am,n
Figure imgf000015_0001
=1, 当" 时, m -1 其中" ^„表示 中的任一个, 所述 F*H个字节对应的位按照 am n与 V 的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000015_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为: ,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000016_0001
的随机数相乘,然后求和得到一个值,具体表示为 =^ * + ^ * 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 Κ为偶数,则所述窗口 Wiz [ ρίζζ, piz+Bz]中至少部分数据满足所述预定条件 Cz
第六方面,本发明实施例提供了一种用于查找数据流分割点的服 务器, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 /1确 定 M个窗口 + ]和窗口 ^ | -4,/1 + ]对应的预定条件(^ , 其中, X为 1到 M连续的自然数, M≥2, 4和 为整数;
所述服务器包括:确定单元, 用于执行步骤 a:
a)依据所述规则为当前潜在分割点 ki确定对应的窗口 Wiz[ki - Az ,kt
+ Bz], i和 z为整数, 并且 l≤z≤M;
判断处理单元,用于判断所述窗口 Wiz [ kt - Az ,kt +Bz ]中至少部分数 据是否满足预定条件 Cz;
当所述窗口 Ψίζ[ -Αζ, +Βζ ]中至少部分数据不满足所述预定条件 Cz , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N个 数据流分割点最小查找单位 U, N*U不大于 II Bz II +maxx( II Ax || ),获 得新的潜在分割点, 执行步骤 a) ;
C当所述当前潜在分割点 ^的 M个窗口中的每一个窗口 fVix [krAx , ki + Bx ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 kt为 数据流分割点。
结合第六方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个窗口^ | ,·-^Λ· + ^]与 , + β,], 满足条件: \A +Be
|=| Ce=cf
结合第六方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: 和 为正整数。
结合第六方面的第一种可能的实现方式或第二种可能的实现方 式,在第三种可能的实现方式中, 所述规则还包括: ^-1 = , Be+\ =
Bf。
结合第六方面, 或第一至第三任一可能的实现方式, 第四种可能 的实现方式中, 所述判断处理单元具体用于
使用随机函数判断所述窗口 wiz [ - 4 Λ· +sz ]中至少部分数据是 否满足所述预定条件 cz
结合第六方面的第四种可能的实现方式,第五种可能的实现方式 中,所述判断处理单元具体用于使用 hash函数判断所述窗口 Wiz[k Az , kt+Bz ]中至少部分数据是否满足所述预定条件 Cz
结合第六方面, 或第一至第五任一可能的实现方式, 第六种可能 的实现方式中, 所述判断处理单元用于当所述窗口 Wiz [ k, - Az, k, + Bz ] 中至少部分数据不满足所述预定条件 ,从所述当前潜在分割点 沿 所述数据流分割点查找方向跳跃 N个数据流分割点最 d、查找单位 U ,获 得所述新的潜在分割点,所述确定单元为所述新的潜在分割点执行步 骤 a ) ,根据所述规则,为所述新的潜在分割点确定的窗口 W;Jk,-^, k,+ ]的左边界与所述窗口 Wiz [ - z, +Sz]的右边界重合或者为 所述新的潜在分割点确定的所述窗口 W [ k, - Ac , k, + ^ ]的左边界位于 所述窗口 ^ [ - z, + Sz ]范围之内; 其中, 为所述新的潜在分割点 确定的所述窗口 W [ k, - Ac , k, + Bc ]是根据所述规则, 为所述新的潜在 分割点确定的 M个窗口按照数据流查找方向获得的序列中排序第一 的窗口。
结合第六方面的第四种可能的实现方式,第七种可能的实现方式 中, 所述判断处理单元使用随机函数判断所述窗口 Wiz [k -Az, kt+ Bz] 中至少部分数据是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [k -Az, kt+Bz]中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: ,l , 当 a =1时,
Figure imgf000018_0001
=1, 当。 =0时, ,„=-1, 其中。 表示 L..^ 中的任一个, 所述 F*H个字节对应的位按照。m„与 V 的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000018_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000018_0003
的随机数相乘,然后求和得到一个值,具体表示为 + "K Vam^hm^ 同理, 获得 Sal sa2.. saF , 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz ik -Az, + Βζ]中至少部分数据满足所述预定条件 Cz
第七方面, 本发明实施例提供了一种计算机可读存储介质, 所述 计算机可读存储介质用于存储可执行指令,服务器执行所述可执行指 令以查找数据流分割点, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 k确定 M个点 ρχ、 点 ρχ对应的窗口 ^ [ A - 4, Px + Bx] 和窗口 ^ [ _4, 对应的预定条件 Cx , 其中, X为 1到 M连续 的自然数, M>2, ^和^为整数;
当所述服务器执行所述可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 确定点 ^及所述点 对应 的窗口^ [ Piz -Az,Pi +Bz], i和 z为整数, 并且 1≤z≤M;
b) 判断所述窗口 ^[p,z-^,p,z+Sz]中至少部分数据是否满足预 定条件 Cz;
当所述窗口^ [Az- z,Az + Sz]中至少部分数据不满足所述预定条 件 Cz,从所述点 plz沿所述数据流分割点查找方向跳跃 Ν个数据流分割 点最小查找单位 U, N*U不大于 II Bz II +maxx( II Ax || + || (krPix) II ), 获得新的潜在分割点, 执行步骤 a);
c)当所述当前潜在分割点 ^的 M个窗口中的每一个窗口 -
4,^+ ]中至少部分数据满足预定条件^ , 则所述当前潜在分割点 为数据流分割点。
结合第七方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个点 和 , 满足条件^ = , B =Bf , Ce = Cf
结合第七方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: 所述至少两个点 和 , 相对于所述潜在分 割点 k,在所述数据流分割点查找反方向上。
结合第七方面的第一种可能的实现方式或第二种可能的实现方 式, 在第三种可能的实现方式中, 所述规则还包括: 所述至少两个点
A和 之间的距离为 1个 u。 结合第七方面, 或第七方面第一至第三任一可能的实现方式,第 四种可能的实现方式中, 所述服务器判断所述窗口^ [p,z-4,p,z+sz] 中至少部分数据是否满足所述预定条件 cz, 具体包括:
所述服务器使用随机函数判断所述窗口 iz [ ριζ - Αζ , Ριζ ]中至少 部分数据是否满足所述预定条件 Cz
结合第七方面的第四种可能的实现方式,第五种可能的实现方式 中, 所述服务器使用随机函数判断所述窗口^ [p,z-4, +sz]中至少 部分数据是否满足所述预定条件 cz , 具体包括:
所述服务器使用 hash函数判断所述窗口 Wiz [plz-Az,Pi +Bz ]中至少 部分数据是否满足所述预定条件 Cz
结合第七方面, 或第七方面第一至第五任一可能的实现方式, 第 六种可能的实现方式中, 当所述窗口^ [ z,Az + Sz]中至少部分数 据不满足所述预定条件 z,从所述点 ριζ沿所述数据流分割点查找方向 跳跃 N个数据流分割点最小查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在分割点确定的点 A对应的窗口 W
[ Pic - Ac , pic + ]的左边界与所述窗口 [ Az - z , p,z + Sz ]的右边界重合 或者为所述新的潜在分割点确定的所述点 pic对应的所述窗口 Wfc [ pic -
Λ,Α + ^]的左边界位于所述窗口^ [AZ-^,AZ + SZ]范围之内; 其中, 为所述新的潜在分割点确定的所述点 是根据所述规则, 为所述新 的潜在分割点确定的 M个点按照数据流查找方向获得的序列中排序 第一的点。
结合第七方面的第四种可能的实现方式,第七种可能的实现方式 中, 使用随机函数判断所述窗口 [ A -^, A + ]中至少部分数据 是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ piz— Az, Pi +Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为。ml ... am 8 , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , ' 当。 m n =1时 ^, ' v am,n
Figure imgf000021_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000021_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000021_0003
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 S。!、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 K为偶数,则所述窗口 Wiz [ ρίζζ, Pi +Bz]中至少部分数据满足所述预定条件 Cz
第八方面, 本发明实施例提供了一种计算机可读存储介质, 所述 计算机可读存储介质用于存储可执行指令,服务器执行所述可执行指 令以查找数据流分割点, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个窗口 ^ [ _4, 和窗口 ^ _4, k+ Bx ]对应的预定条件 Cx , 其中, X为 1到 M连续的自然数, M > 2 , ^和 ^为整数; 当所述服务器执行所述可执行指令, 以执行以下步骤: a)依据所述规则为当前潜在分割点 确定对应的窗口 W,:[ki - Az ,kt +B:], i和 z为整数, 并且 l≤z≤M;
b)判断所述窗口 - Az,ki+Bz ]中至少部分数据是否满足预定 条件 Cz;
当所述窗口
Figure imgf000022_0001
+Bz ]中至少部分数据不满足所述预定条件 Cz , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N个 数据流分割点最小查找单位 U, N*U不大于 II Bz II +1 . ( II II ),获 得新的潜在分割点, 执行步骤 a) ;
c)当所述当前潜在分割点 的 M个窗口中的每一个窗口 [^-4, + X ]中至少部分数据满足预定条件 CA.,则所述当前潜在分割点 ^为 数据流分割点。
结合第八方面, 第一种可能的实现方式中, 所述规则还包括: 至 少两个窗口 + 与 | , - Λ+β,], 满足条件: \A +Be
\=\Af +
Figure imgf000022_0002
结合第八方面的第一种可能的实现方式,第二种可能的实现方式 中, 所述规则还包括: ^和 为正整数。
结合第八方面的第一种可能的实现方式或第二种可能的实现方 式,在第三种可能的实现方式中, 所述规则还包括: ^-1= , +1=
Bf。
结合第八方面, 或第八方面第一到第三任一可能的实现方式, 第 四种可能的实现方式中, 所述服务器判断所述窗口 WL_ [k Az ,kt +Bz ] 中至少部分数据是否满足所述预定条件 Cz, 具体包括:
使用随机函数判断所述窗口 ^ -4 Λ +SZ ]中至少部分数据是 否满足所述预定条件 Cz
结合第八方面的第四种可能的实现方式,第五种可能的实现方式 中,所述服务器使用随机函数判断所述窗口 Wiz [ kt - z Λ· + sz ]中至少部 分数据是否满足所述预定条件 z, 具体为所述服务器使用 hash函数判 断所述窗口 wiz [ k, - 4 Λ. +sz ]中至少部分数据是否满足所述预定条件 结合第八方面, 或第八方面第一到第五任一可能的实现方式, 第 六种可能的实现方式中, 当所述窗口 Wiz [k -A2, Ι Ζ\中至少部分数 据不满足所述预定条件 ,从所述当前潜在分割点 沿所述数据流分 割点查找方向跳跃 Ν个数据流分割点最'〗、查找单位 U,获得所述新的潜 在分割点, 根据所述规则, 为所述新的潜在分割点确定的窗口 W;Jk, -4, k, + ^]的左边界与所述窗口 Wiz [k -Az, + Sz]的右边界重合或者 为所述新的潜在分割点确定的所述窗口 W;t [ k; - Ac , kt+Bc ]的左边界位 于所述窗口 ^ [ - z, + Sz ]范围之内; 其中, 为所述新的潜在分割 点确定的所述窗口 W,Jk,-4,k, + ]是根据所述规则, 为所述新的潜 在分割点确定的 M个窗口按照数据流查找方向获得的序列中排序第 一的窗口。
结合第八方面的第四种可能的实现方式,第七种可能的实现方式 中,使用随机函数判断所述窗口 Wiz [k -Az, k.+ B 中至少部分数据是 否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [k -Az, kt+Bz]中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为
am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当 a =1时,
Figure imgf000023_0001
=1, 当 =0时, vam =-\, 其中。 表示 。^中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000024_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000024_0002
h
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 的随机数相乘,然后求和得到一个值,具体表示为 +
* 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz ik -Az, ^ + Βζ]中至少部分数据满足所述预定条件 Cz。 本发明实施例中通过判断 M个窗口中某一个窗口中至少部分数 据是否满足预定条件, 来查找数据流分割点, 当某一个窗口中至少部 分数据不满足预定条件,则跳过 N*U个长度,获得下一个潜在分割点, 提高了数据流分割点查找效率。
附图说明
图 1为本发明实施例一种应用场景示意图;
图 2为数据流分割点示意图;
图 3为查找数据流分割点示意图;
图 4为本发明实施例方法示意图;
图 5和图 6为查找数据流分割点实施方式示意图;
图 7和图 8为查找数据流分割点实施方式示意图;
图 9和图 10为找数据流分割点实施方式示意图; 图 11和图 12和图 13为找数据流分割点实施方式示意图; 图 14和图 15为找数据流分割点实施方式示意图;
图 16和图 17为判断窗口中至少部分数据是否满足预定条件示意图; 图 18为去重服务器结构图;
图 19为去重服务器结构图;
图 20为本发明实施例方法示意图;
图 21和图 22为查找数据流分割点实施方式示意图;
图 23和图 24为查找数据流分割点实施方式示意图;
图 25和图 26为找数据流分割点实施方式示意图;
图 27和图 28和图 29为找数据流分割点实施方式示意图;
图 30和图 31为找数据流分割点实施方式示意图;
图 32和图 33为判断窗口中至少部分数据是否满足预定条件示意图。 具体实施例
随着存储技术的不断进步, 数据产生量也在不断增加, 大量的数 据对存储容量提出了最高的要求。 存储容量增加的同时, 也增加了 IT 设备釆购成本, 为了緩解数据量与存储容量之间的需求矛盾, 节约 IT 设备釆购成本, 在数据存储领域引入了重复数据删除技术。
本发明实施例一种使用场景为数据备份场景。数据备份是为防止 各种原因导致的数据丟失,通过备份服务器将数据备份到其他存储介 质的过程。 如图 1所示的数据备份系统架构。 数据备份系统包括客户 端(101a、 101b...101η ) 、 备份服务器 102、 重复数据删除服务器 (简 称去重服务器或重删服务器 )103和存储设备( 104a、 104b...104η ) 。 其中客户端(101a、 101b...101η )可以为应用服务器、 工作站等; 备 份服务器 102用于备份客户端生成的数据;去重服务器 103用于执行备 份数据的重复数据删除任务; 存储设备(104a、 104b...104η )作为存 储重复数据删除后的数据的存储介质, 可以为磁盘阵列、磁带库等存 储介质。 客户端 (101a、 101b...101η ) 、 备份服务器 102、 重复数据删 除服务器 103和存储设备( 104a、 104b...104η ) 可以通过交换机、 局 域网、 互联网、 光纤等方式连接, 上述设备可以位于同一地点, 也可 以位于不同地点。备份服务器 102、重删服务器 103、存储设备( 104a, 104b...104η )可以为独立的物理设备, 或者在具体实现中物理上集成 为一体, 或者备份服务器 102与重删服务器 103集成为一体, 或者重删 服务器 103与存储设备 ( 104a, 104b...104η ) 集成为一体等。
去重服务器 103对备份数据的数据流执行重复数据删除操作, 一 般包括以下步骤:
1 )数据流分割点查找: 根据特定算法在数据流中查找数据流分 割点;
2 )根据查找到的数据流分割点划分数据块;
3 )计算数据块的特征值: 计算数据块的特征值作为标识该数据 块的特征;将计算得到的特征值添加到该数据流对应的文件的数据块 的特征列表中; 一般利用 SHA-1或 MD5算法计算数据块的特征值;
4 )相同数据块检测: 将计算得到的数据块的特征值与数据块特
5 )删除重复数据块: 通过相同数据块检测, 如果发现数据块特 征列表中存在与该数据块相同的特征值,则不需要再存储该数据块或 者根据备份策略确定的重复数据块存储数量决定是否存储该数据块。
通过去重服务器 103对备份数据的数据流执行重复数据删除操作 的步骤可知, 数据流分割点查找作为重复数据删除操作的关键步骤, 直接决定了重复数据删除的性能。
本发明实施例中,去重服务器 103接收备份服务器 102发送的备份 文件, 对该文件执行重复数据删除处理。 通常待处理备份文件在去重 服务器 103中以数据流形式呈现,去重服务器 103查找数据流中的分割 点时, 通常要确定数据流分割点最小查找单位, 具体如图 2所示, 如 潜在分割点 位于序号分别为 1和 2的连续两个数据流分割点最小查 找单位之间,潜在分割点是指需要进行判断是否可以作为数据流分割 点的点; 当点 为一个数据流分割点, 数据流分割点查找方向如图 2 中箭头所示, 查找下一个潜在分割点为 , 即位于序号分别为 7和 8的 连续两个数据流分割点最小查找单位之间, 当潜在分割点 ^为数据流 分割点,则相邻的两个数据流分割点 、 之间的数据为 1个数据块。 数据流分割点最 d、查找单位具体可以根据实际需要确定, 这里以 1个 字节(Byte )为例, 即序号为 1、 2、 7和 8的数据流分割点最小查找单 位大小均为 1个字节。如图 2所示的数据流分割点查找方向通常表示由 文件头向文件尾方向查找, 或者由文件尾向文件头方向, 本实施例中 以从文件头向文件尾方向查找为例。
在重复数据删除场景, 通常数据块越小, 重复数据删除率越高, 越容易查找到重复数据块, 但是由此生成的元数据数量越大, 而且数 据块小到一定程度之后, 重复数据删除率就不会增加了, 但是元数据 数量却会急剧增加。 因此, 必须控制数据块大小, 实际应用中, 通常 会设定数据块的最小值, 例如 4KB ( 4096个字节) , 同时考虑到重复 数据删除率, 也会设定数据块的最大值, 即数据块大小不能超过最大 值, 例如 12KB ( 12288个字节) 。 一种具体实现方式如图 3所示, 去 重服务器 103在沿着箭头所示方向查找数据流分割点, ka为当前查找 到的数据流分割点,从 向数据流分割点查找方向查找下一个潜在分 割点, 为满足最小数据块要求, 通常会从数据流分割点开始沿着数据 流分割点查找方向跳过最小数据块大小,从最小数据块结束位置开始 查找, 也就是将最小数据块结束位置作为下一个潜在分割点 .。 在本 发明实施例中,可以先从 α点沿数据流分割点查找方向跳跃最小数据 块 4KB, 即 4*10244096字节。 从 点沿数据流分割点查找方向跳跃 4096个字节,在第 4096个字节的结束位置获得点 ,作为潜在分割点, 例如 kt位于序号分别为 4096和 4097的连续两个数据流分割点最小查 找单位之间。 仍然以图 3为例, 为当前查找到的数据流分割点, 沿 如图 3所示方向查找下一个数据流分割点, 如果超过数据块最大值仍 然没有找到下一个数据流分割点,则在从 Α。点开始向数据流分割点查 找方向达到数据块最大值的点 乍为下一个数据流分割点,进行强制 分割。
本发明实施例提供一种基于去重服务器查找数据流分割点的方 法, 如图 4所示, 包括:
在去重服务器 103上预设有规则,所述规则为: 为潜在分割点 确 定 M个点 ?x、 点 ? x†应的窗口 [px-4, + ]和窗口 + 对应的预定条件 Cx, 其中, X为 1到 M连续的自然数, M≥2, 4和 ^为整数; 其中, 与潜在分割点 之间距离 个数据流分割点最小 查找单位, 数据流分割点最小查找单位以 U表示, 本实施例中 U=l个 字节, 。 在图 3所示的实现方式中, 关于 M的取值, 其中一种实现方 式, M*U取值不大于预设的两个相邻的数据流分割点之间的最大距离, 即预设的数据块最大长度。 判断点 对应的窗口 Ρ +ΒΛ 中至少部分数据是否满足预定条件 Cz, 其中, z为整数, l≤z≤M, ( Pz -4 )与( Pz+Bz )分别表示窗口 ^的两个边界。 当判断任意一个点 的窗口 ]中至少部分数据不满足预定条件 Cz, 则从 不满足预定条件的窗口 ^ [ A - 4 , P +Bz ]对应的点 pz沿数据流分割 点查找方向跳跃 N个字节, N< II Bz II +maxx( II II + II (k-Px) II )。 其 中, II (k-Px) II表示 M个点 ^中任一个点与潜在分割点 之间的距离, maxx( II Ax II + II (k-px) || )表示 M个点 ?x中任一个点与潜在分割点 之间的距离及该点对应的 4的绝对值之和的最大值; II BZ II表示 ^ [Pz-Az , A + sz ]中 ^的绝对值, 将在下面实施例中具体介绍 N取值的 原理。 当判断 M个窗口中的每一个窗口 ^[^-4, 中至少部分 数据满足预定条件 , 则潜在分割点 为数据流分割点。
具体的, 对当前潜在分割点 , 依据所述规则, 执行以下步骤: 步骤 401: 依据所述规则为当前潜在分割点 kt确定点 及所述点 对应的窗口^ [ρ-4,Ρζ], i和 ζ为整数, 并且 l≤z≤M;
步骤 402:判断所述窗口 ^[^-^,^+ ]中至少部分数据是否满 足预定条件 Cz;
当所述窗口 ίρΆ,ΡΆ ]中至少部分数据不满足所述预定条 件 ,从所述点^沿所述数据流分割点查找方向跳跃 Ν个数据流分割 点最小查找单位 U, N*U不大于 II BZ II +maxx( II II + II {k Pix) II ), 获得新的潜在分割点, 执行步骤 401 ;
当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 ^ , 中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为 数据流分割点。
进一步地,所述规则还包括:至少两个点 和 ,满足条件 ^= ,
BE = B , Ce = Cj-;
所述规则还包括: 所述至少两个点 和 , 相对于所述潜在分 割点 k,在所述数据流分割点查找反方向上。
所述规则还包括: 所述至少两个点 pe和 pf之间的距离为 1个 U。 判断所述窗口^ [ - z , Az + sz ]中至少部分数据是否满足所述预 定条件 cz, 具体包括:
使用随机函数判断所述窗口^ [p,z-^,p,z+sz]中至少部分数据是 否满足所述预定条件 cz
所述使用随机函数判断所述窗口^ [ -^,ρ,ζζ]中至少部分数 据是否满足所述预定条件 Cz, 具体为使用 hash函数判断所述窗口 Wiz [ P,z - z , + SZ ]中至少部分数据是否满足所述预定条件 Cz
当所述窗口^ [AZ-^ ,AZ+SZ]中至少部分数据不满足所述预定条 件 Cz,从所述点 plz沿所述数据流分割点查找方向跳跃 Ν个数据流分割 点最小查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所 述新的潜在分割点确定的点 Pic对应的窗口 W [ Pic - Ac , Pic + ^ ]的左边 界与所述窗口 fViz [ ριζ - Az , Ριζ ]的右边界重合或者为所述新的潜在分 割点确定的所述点 pic对应的所述窗口 W;E [ pic - Ac , pic + ^ ]的左边界位 于所述窗口^ [ - z,Az + SZ]范围之内; 其中, 为所述新的潜在分割 点确定的所述点 ^是根据所述规则,为所述新的潜在分割点确定的 M 个点按照数据流查找方向获得的序列中排序第一的点。
本发明实施例中通过判断 M个窗口中某一个窗口中至少部分数 据是否满足预定条件, 来查找数据流分割点, 当某一个窗口中至少部 分数据不满足预定条件, 则跳过 N*U个长度, 其中, N*U不大于 II Bz II +maxx( II II + II (k Plx) II ), 获得下一个潜在分割点, 提高了 数据流分割点查找效率。
在重复数据删除过程中, 为保证数据块大小均匀, 会考虑平均数 据块(也称为平均分块)大小, 即在满足最小数据块大小和最大数据 块大小限定的同时, 会确定平均数据块大小, 以保证获得的数据块大 小均匀。 点 ? x个数 M与点 7X对应的窗口^ [px-^, +SJ中至少部 分数据满足预定条件 的概率,这两个因素决定了找到数据流分割点 的概率(以 P(n)表示 )。前者影响跳跃的长度,后者影响跳跃的概率, 二者共同影响平均分块大小。 一般而言, 在平均分块大小固定时, 点 个数 M增加, 则单个点 ?χ对应的窗口 ^[^-4, ρχ+ ]中至少部 分数据满足预定条件 Cx的概率也增加, 例如在去重服务器 103上预设 的规则为: 为潜在分割点 确定 11个点 7X , X分别为 1到 11连续的自然 数, 11个点中任一个点 7χ对应的窗口^ [px -^, px+Sx]中至少部分 数据满足预定条件 Cx的概率为 1/2。 而在去重服务器 103上预设的另一 组规则为: 为潜在分割点 选择的 24个点 7x , X分别为 1到 24连续的自 然数, 24个点中任一个点 7χ对应的窗口 [ 7X -^, ^+^]中至少部 分数据满足预定条件 Cx的概率 3/4。具体窗口^ [^-4, 中至少 部分数据满足预定条件 的概率设定可参见判断窗口 ^[^-4 , P + ]中至少部分数据是否满足预定条件 Cx部分的描述。 点 Px个数 M与 点 对应的窗口 ^ , 中至少部分数据满足预定条件 Cx的 概率这两个因素决定 P(n), P (n)表示: 从数据流起始位置 /上一数据 流分割点查找 n个数据流分割点最 '〗、查找单位后没找到数据流分割点 的概率。 关于这两个因素决定 P (n)的计算过程, 实际上是一个多步 长 Fibonacci数列, 后面将具体描述。 得到 P (n)后, l-P(n)即为数据 流分割点的分布函数, (l-P(n))-(l-P(n-l))=P(n-l)-P(n), 即为在第 n个 点找到数据流分割点的概率, 也就是数据流分割点的密度函数, 根据
12*1024
数据流分割点的密度函数就可以积分 £ "χ(Ρ("-1)-Ρ(«)),从而求得 二 4*1024
数据流分割点的期望长度, 即平均分块大小, 其中, 4*1024 (字节) 表示最小数据块长度, 12*1024 (字节)表示最大数据块长度。
如图 3所示的数据流分割点查找的基础上,在图 5所示的实施方式 中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1确 定 11个点 、 点 对应的窗口 (简称窗口 ^ )和窗 口^ ]对应的预定条件 Cx , 其中, Αι = Α23 = Α45 = Α6Ί = A, =
Figure imgf000032_0001
, 并且 C^C^C^C^C^C^C^C^C^C^C,^其中, 点 ^与潜在分割点 之间距离 个字节,具体的,点 与潜在分割点 /1之间距离 0个字节, 点 p2与潜在分割点 /1之间距离 1个字节, 点 P与潜在分割点 k之间距离 2个字节,点;^与潜在分割点 /1之间距离 3个字节,点 与潜在分割点 /1 之间距离 4个字节, 点 ^与潜在分割点 /1之间距离 5个字节, 点 与潜 在分割点 /1之间距离 6个字节, 点 与潜在分割点 /1之间距离 7个字节, 点 p9与潜在分割点 /1之间距离 8个字节,点 A。与潜在分割点 k之间距离 9个字节,点 Al与潜在分割点/ 1之间距离 10个字节,并且点 PlPP P5、 p6PlP 、 p9、 A。和 相对于潜在分割点 均位于数据流分 割点查找反方向。 为数据流分割点, 图 5中所示数据流分割点查找 方向为从左向右, 从数据流分割点 跳过最小数据块 4KB后, 最小数 据块 4KB结束位置作为下一个潜在分割点 , 为潜在分割点 确定点 Pix, 在本实施例中, 根据在去重服务器 103上预设的规则, X分别为 1 到 11连续的自然数。 在图 5所示的实施方式中, 为潜在分割点 确定 ό ;^、为 11个, 分另 ll为 ? ;1、 pn、 p pi4、 pi5、 pi6、 P„、 p 、 pi9、 pm 和; ½, Pa ^ Pn、 /¾、 P 、 Pi5、 Pi6、 、 /¾、 、 Pm^Pm ^^- 的窗口分别为 wn [ Pil-169, Pil ] wi2[ pi2 -169, Pi2 ]、 wi3 [/¾ -169,/¾ ], wi4[ Pi4 -169, 4]、 wi5[pi5-\69,Pi5], wi6[pi6-\69,Pi6 . wi7[Pil-\69,Pil], wti[Pit -169,As]、 Wi9[pi9 -169, Pi9], ^。[^。-169,^。]和^ 1
Figure imgf000032_0002
上述 窗口分别简称为^、 wl2 , Wl3、 Wl4, Wl5、 Wl6、 Wl7、 JVlS、 wl9 , wm 和^ i。 其中, 点;^与潜在分割点 之间距离 个字节, 具体的, pn 与 间距 0个字节、 A2与 间距 1个字节、 与 间距 2个字节、 Ρι4与 间距 3个字节、 与 间距 4个字节、 pi6与 间距 5个字节、 pi7与 间距 6个字节、 与 间距 7个字节、 与 间距 8个字节、 。与 间 距 9个字节, 与 间距 10个字节, 并且 A2Pi3Pi4Pi5Pi6Pi,、 PiSPi9、 。和; ¾相对于潜在分割点 均位于数据流分割点查找反方 向。判断^ [Αι-169,Αι]中至少部分数据是否满足预定条件 、判断 [ Pi2 -169, Pi2 ]中至少部分数据是否满足预定条件 C2、 判断 wi3 [ρ -169, P ]中至少部分数据是否满足预定条件 C3、判断 4 [ Pi4 - 169, A4 ]中至少 部分数据是否满足预定条件 4、 判断 wi5 [ Pi5 - 169, ]中至少部分数据 是否满足预定条件 C5、 判断 6 [ Pi6 - 169, A6 ]中至少部分数据是否满足 预定条件 Q、 判断 Wi7 [ Pn -169, Ρι1 ]中至少部分数据是否满足预定条件 C7、判断 [ Pii - 169, A ]中至少部分数据是否满足预定条件 C8、判断 iVi9 [ A9 -169,A9 ]中至少部分数据是否满足预定条件 C9、 判断^。 [ 。 -169, 。]中至少部分数据是否满足预定条件 C1()和判断^ i [Pm -\69,Pill ]中 至少部分数据是否满足预定条件 。 当判断窗口^中至少部分数据 满足预定条件 ς、窗口 ^中至少部分数据满足预定条件 C2、窗口 ^中 至少部分数据满足预定条件 C3、 窗口 ^中至少部分数据满足预定条 件 C4、 窗口 ^中至少部分数据满足预定条件 C5、 窗口^中至少部分 数据满足预定条件 C6、 窗口 ^中至少部分数据满足预定条件 C7、 窗 口 ^中至少部分数据满足预定条件 C8、 窗口^中至少部分数据满足 预定条件 C9、 窗口 1Q中至少部分数据满足预定条件 和窗口 中 至少部分数据满足预定条件 Cu时,则当前潜在分割点 为数据流分割 点。 当 11个窗口中任一个窗口中至少部分数据不满足对应的预定条件 时, 如图 6所示, 5 [/¾ -169,;¾] 中至少部分数据不满足对应的预定 条件 C5 , 则从点 沿着数据流分割点查找方向跳跃 N个字节, 其中 N 个字节不大于 II B5 II +max ( II Ax || + || (kr Pi II ), 在图 6所示的实施 方式中, 跳跃 N个字节不大于 179字节, 在本实施例中, N=ll, 得到 下一个潜在分割点, 为与潜在分割点 区别, 这里将新的潜在分割点 表示为 。根据图 5所示的实施方式中在去重服务器 103上预设的规则, 为潜在分割点 确定的点为 11个, 分别为 ^、 PjlPjPj4, p]5Pj6
Ρρ、 Ρβ、 Pj9、 Pjw
Figure imgf000034_0001
'确定'^? 、 Pj2、 Ρβ、 Pj4、 Pj5、 Pj6、 Ρ Ί、 Ρβ、 9、/ 和 „对应的窗口分别为^ [ 「169, 、 WJ2[pj2-l69,Pj2]. WJ3 [pj3- 69,Pj3]. WJ4[pj4-l69,Pj4]. ^,[^,-169,^,], WJ6[Pj6-\69, Pj6]. ^7 [ ^7 -1 9, Pj7]. WJ&[Pj,-l69, WJ9[Pj9 -169, Pj9]. WjW[PjW-\69,
/ ]和^ pjU]. 其中, 与潜在分割点 之间距离 个 字节, 具体的, 与 间距 0个字节、 与 间距 1个字节、 与 间距 2个字节、 与 间距 3个字节、 与 间距 4个字节、 与 间 距 5个字节、 与 间距 6个字节、 与 间距 7个字节、 与 间 距 8个字节、 。与 间距 9个字节, „与 间距 10个字节, 并且 Λί、 ρ 、 Ρβ、 Ρμ、 Pj5、 Pj6、 Pj,、 ρβ、 pj9、 ^和 ^相对于潜在分割点 均 位于数据流分割点查找反方向。 如图 6所示实施方式中, 当为潜在分 割点 确定的第 11个窗口 ^ i [ „-169, PjU],在保证潜在分割点 与 潜在分割点 之间的范围都在判断范围之内, 则在本实施方式中, 必 须保证窗口 Wjn[PjU-\69, „]的左边界与 ^[/^-Ιό^/^]的右边界; ¾ 重合或者位于 范围之内, 其中, 所述潜在分割点 确 定的点 „是根据所述规则, 为所述潜在分割点 k】确定的 M个点按照 数据流查找方向获得的序列中排序第一的点。 因此, 在这一限定内, 当 中至少部分数据不满足预定条件 C5 , 从 沿着数据 流分割点查找方向跳跃的距离为不大于 II B5 II +max ( II Ax || + || {k Pix) II ),其中, M=ll, 11*U不大于 maxx( || Ax || + || {k Pix) II ), 因此, 从 Pi5沿着数据流分割点查找方向跳跃的距离为不大于 179。 判断 1Τβ [ Pjl -169, Pjl ]中至少部分数据是否满足预定条件 、 判断 Wj2 [ Pj2 -\ 69, Pj2 ]中至少部分数据是否满足预定条件 C2、 判断 Wj3 [ Pj3 - 169, ]中至 少部分数据是否满足预定条件 C3、判断 Wj4 [ P]4 -\69, Pj4 ]中至少部分数 据是否满足预定条件 C4、判断 JVp [ - 169, Pj, ]中至少部分数据是否满 足预定条件 C5、 判断 ·6 [ -169, 6]中至少部分数据是否满足预定 条件 C6、判断^ [ -169, 7 ]中至少部分数据是否满足预定条件 C7、 判断^ [ -169, 8 ]中至少部分数据是否满足预定条件 C8、判断 ·9 [ -169, 9]中至少部分数据是否满足预定条件 C9、 判断 ·1() [;
-169, PjW ]中至少部分数据是否满足预定条件 C1()和判断 W [ Λ·„ -169, Λ.„]中至少部分数据是否满足预定条件 Cu。 当然在本发明实施例中, 判断潜在分割点 是否为数据流分割点时也遵循该规则,具体实现不 再描述, 可以参照判断潜在分割点 的描述。 当判断窗口 中至少 部分数据满足预定条件^、 窗口 Vj2中至少部分数据满足预定条件 C2、 窗口 中至少部分数据满足预定条件 、 窗口 中至少部分数据满 足预定条件 C4、 窗口 ^.5中至少部分数据满足预定条件 C5、 窗口 ^.6中 至少部分数据满足预定条件 Cfi、 窗口 Wp中至少部分数据满足预定条 件 C7、 窗口 中至少部分数据满足预定条件 C8、 窗口 中至少部分 数据满足预定条件 C9、窗口^。中至少部分数据满足预定条件 。和窗 口 ^„中至少部分数据满足预定条件 Cu时, 则当前潜在分割点 为数 据流分割点, 与 之间的数据构成 1个数据块, 同时按照与 相同 的方式跳过最小分块大小 4KB, 获得下一个潜在分割点, 并按照在去 重服务器 103上预设的规则, 判断下一个潜在分割点是否为数据流分 割点。 当判断潜在分割点 不是数据流分割点时, 按照与 相同的方 式跳跃 11个字节获得下一个潜在分割点, 并按照在去重服务器 103上 预设的规则及上述方法判断下一个潜在分割点是否为数据流分割点。 当超过设定的最大数据块仍然没有找到数据流分割点时,则从最大数 据块的结束位置作为强制分割点。
在图 5所示的实施方式中, 根据在去重服务器 103上预设的规则, 从判断 wn [ Pll-169, Ρι1 ]中至少部分数据是否满足预定条件 开始, 当 判断 n [ A, -169, Al]中至少部分数据满足预定条件(^、 判断^ [ Pn - 69, Pl2] 中至少部分数据满足预定条件 C2、 判断^ [A3-169,A ] 中 至少部分数据满足预定条件 3和判断 ^4 [ pl4 -169, pl4 ]中至少部分数 据满足预定条件 C4, 判断 ^[/^-Ιό^;;, ]中至少部分数据不满足预定 条件 C5时,从点; ¾沿着数据流分割点查找方向跳跃 10个字节,在第 10 个字节的结束位置获得新的潜在分割点, 为与其他潜在分割点区别, 这里表示为 ,按照在去重服务器 103上预设的规则,为潜在分割点 确定 11个点 , X分别为 1到 11连续的自然数, 分别为 PGLPGLPG 、 Pg Pg P 、 Pg,、 Pg Pg9、 PGL。和 i,确定点 PGL、 Pg Pgs、 、 pg5、 pg6、 pgl、 pg,、 pg9、 pgW和 pgll对应的窗口分别为 wgl [pgl-169, Pgl ]、
Figure imgf000036_0001
Pg5] Wg6[Pg6-l69, Pg6]. Wg7[Pgl-l69, Pgl]. Wg,[PgS-l69, PgS]. Wg9[Pg9 -169, Pg9], WgW [pgl0 - 69, 。]和^ PgU]. 其中, Pgx与潜 在分割点 之间距离 个字节,具体的, ^与 间距 0个字节、 Pgl与 间距 1个字节、 与 间距 2个字节、 g4与 间距 3个字节、 Pg5与 kg 间距 4个字节、 g6与 间距 5个字节、 7与 间距 6个字节、 ^与 间 距 7个字节、 9与 间距 8个字节、 。与 间距 9个字节, PGLL与 间 距 10个字节, 并且 2PG3、 P 、 PG5、 PG6、 PG,、 pgS、 PG9、 。和 相对于潜在分割点 kg均位于数据流分割点查找反方向。 判断^ [Pgl -169, pgl]中至少部分数据是否满足预定条件 ς、 判断 ^g2[ g2-169, g2]中至少部分数据是否满足预定条件 C2、判断 ffg3[pg3-169, ;^]中至 少部分数据是否满足预定条件 C3、 判断^ [;v-169, g4]中至少部分 数据是否满足预定条件 C4、 判断^ -169, 中至少部分数据是 否满足预定条件 C5、 判断 g6[ g6-169, 中至少部分数据是否满足 预定条件 C6、 判断^ [ g7-169, g7]中至少部分数据是否满足预定条 件 C7、 判断 ^[pg8-169, ;^]中至少部分数据是否满足预定条件 C8、 判断^ [ g9-169, 中至少部分数据是否满足预定条件 C9、 判断 WGW [ PGM - 169, Pgm ]中至少部分数据是否满足预定条件 C1()和判断 ifgll [pgn-\69, pgll]中至少部分数据是否满足预定条件 C„。 因此, 潜在分 割点 kg对应的点 ?gll与潜在分割点 对应的点 pi5重合,并且点 ?gll对应 的窗口^ ^ -169, ]与点; ¾对应的窗口^ [; ^- Q^]重合, 并 且 C5 = CU, 因此, 对当潜在分割点 , 当判断 ^[/^-^^;^中至少部 分数据不满足预定条件 5时,从点 pi5沿着数据流分割点查找方向跳跃 10个字节,获得的潜在分割点 kg仍然不符合作为数据流分割点的条件。 因此,如果从点 Pi5沿着数据流分割点查找方向跳跃 10个字节会存在重 复计算,从点 Pi5沿着数据流分割点查找方向跳跃 11个字节可以减少重 复计算, 效率更高。 因此提高了查找数据流分割点的速度。 当预设规 定中点 Px对应的窗口 ^ [ ^ - 4 , A + ^ ]中至少部分数据满足预定条件 CX的概率为 1/2时, 即是说以 1/2的概率执行跳跃, 每次最多可以跳跃 179个字节。
在本实施方式中, 预定规则为:为潜在分割点 /1确定 11个点 、 点 对应的窗口 [px-4,A + ]和窗口 ]对应的预定条 件 Cx , X分别为 1到 11连续的自然数,其中,点 对应的窗口 ^[ ^-^, A + ]中至少部分数据满足预定条件的概率为 1/2 , 通过这两个因素 可以计算 P(n)。并且 ^ ^ ^^^^^: ^69, Βγ2 ― S3 ~ ^4 = B5 = Β6― Βη― S8― ― S10 = ― 0 ·> "^f~_@L ― 2― ― C4― C5678 = C9 = Cw = Cn , 其中, 与潜在分割点 之间距离 个字节, 具体的, A与潜在分割点 /1之间距离 0个字节, /^与 /1之间距离 1个字节, p^k 之间距离 2个字节, 之间距离 3个字节, 与/ 1之间距离 4个字节, 与/1之间距离 5个字节, ρ7与/ 1之间距离 6个字节, 与/ 1之间距离 7 个字节, 与 之间距离 8个字节, A。与 之间距离 9个字节, pu^k之 间距离 10个字节, 并且 p2P 、 p5、 p6、 ρΊ、 、 P9、 A。和 /¾相 对于潜在分割点 k均位于数据流分割点查找反方向。 因此是否存在连 续 11个点对应窗口中的每一个窗口中至少部分数据均满足预定条件 Cx就决定潜在分割点 k是否为数据流分割点。从数据流起始位置 /上一 数据流分割点跳跃最小分块长度 4096个字节后 ,向数据流分割点查找 反方向回退 10个字节, 找到第 4086个点, 在该点处不存在数据流分割 点, 所以卩(4086) =1, 依次类推, P (4087) =1, P (4095 ) =l。 在第 4096个点处, 即在最小分块大小处, 以 ( 1/2) Λ11的概率这 11个 点对应的窗口中每一个窗口中至少部分数据满足预定条件 ,因此以 ( 1/2) Λ11的概率存在数据流分割点, 以 1- ( 1/2) Λ11的概率不存在 数据流分割点, 所以 Ρ ( 11 ) =1- ( 1/2) Λ11。
在第 η个点处, 可以分为 12种情况来递推 Ρ (η) 。
Figure imgf000039_0001
情况 1: 第 n个点对应的窗口中至少部分数据以 1/2的概率不满足 预定条件, 此时第 n个点前面的 n-1个点以 P (n-1 ) 的概率不存在连续 的 11个点对应的窗口中每一个窗口中至少部分数据分别满足预定条 件, 因此 P (n) 包含 1/2* P (n-1 ) 。 第 n个点对应的窗口中至少部分 数据不满足预定条件, 并且第 n个点前面的 n-1个点存在连续的 11个点 对应的窗口中每一个窗口中至少部分数据分别满足预定条件的情况 与 P (n)无关。
情况 2: 第 n个点对应的窗口中至少部分数据以 1/2的概率满足预 定条件, 第 n-1个点对应的窗口中至少部分数据以 1/2的概率不满足预 定条件, 此时第 n-1个点前面的 n-2个点以 P (n-2) 的概率不存在连续 的 11个点对应的窗口中每一个窗口中至少部分数据分别满足预定条 件, 因此 P (n) 包含 1/2*1/2*P (n-2) 。 第 n个点对应的窗口中至少部 分数据满足预定条件, 第 n-1个点对应的窗口中至少部分数据不满足 预定条件, 并且第 n-1个点前面的 n-2个点存在连续的 11个点对应的窗 口中每一个窗口中至少部分数据分别满足预定条件的情况与 P (n)无 关。
依照上述描述, 情况 11: 第 n至 n-9个点对应的窗口中至少部分数 据以 ( 1/2) Λ10的概率满足预定条件, 第 η-10个点对应的窗口中至少 部分数据以 1/2的概率不满足预定条件, 此时第 η-10个点前面的 η-11 个点以 Ρ (η-11 ) 的概率不存在连续的 11个点对应的窗口中每一个窗 口中至少部分数据分别满足预定条件,因此 Ρ(η)包含( 1/2)Λ10*1/2*Ρ (η-11 )。第 η至 n-9个点对应的窗口中至少部分数据均满足预定条件, 第 n-10个点对应的窗口中至少部分数据不满足预定条件, 并且第 n-10 个点前面的 n-11个点存在连续的 11个点对应的窗口中每一个窗口中 至少部分数据分别满足预定条件的情况与 P (n)无关。
情况 12: 第 n至 n-10个点对应的窗口中至少部分数据以 ( 1/2) Λ11 的概率满足预定条件, 该情况与 Ρ (η)无关。
因 P (n) =1/2* P (n-1 ) + ( 1/2) Λ2* P ( n-2 ) + + ( 1/2)
Λ11*Ρ (η-11)。 另一种预设规则: 为潜在分割点 确定 24个点 Λ、 点
Ρχ对应的窗口 x [ ρχ - 4 , Α +^ ]和窗口 ^ [ px - 4 , A +^ ]对应的预定条 件 Cx, X分别为 1到 24连续的自然数,其中,点 对应的窗口
A + ]中至少部分数据满足预定条件 CX的概率为 3/4, 通过这两个因 素可以计算 Ρ(η)。
Figure imgf000040_0001
ΒΧ
― Β2 = Β3 = Β4 = Β5 = Β6 = ΒΗ = 58 = Β9 = BQ = BU =0 ·> ^f~_iL = C2 = C3 = C4 = C5 = C6 = C7 = CS = C9=...=C22 = C23=C24 , 其中, 与潜在分割点 之间距离 个字 节, 具体的, A与潜在分割点 /1之间距离 0个字节, ρ2与/ 1之间距离 1 个字节, A与/ 1之间距离 2个字节, p4与 /1之间距离 3个字节, A与/ 1之 间距离 4个字节, 与/1之间距离 5个字节, p7与 /1之间距离 6个字节, 与/1之间距离 7个字节, 与/ 1之间距离 8个字节 与/t之间距离 21个字节, /¾与/1之间距离 22个字节, p24与/ 1之间距离 23个字节,并且 P2、 P4、 P5、 P6、 Ρη、 P9… P22、 /½和 ½4相对于潜在分割点 k均位于数据流分割点查找反方向。 因此是否存在连续 24个点对应窗 口中的每一个窗口中至少部分数据均满足预定条件 就决定潜在分 割点 /1是否为数据流分割点, 可以通过下面的公式计算:
P (4073) =1, P (4074) =1, P (,4095) =1, P (4096) =1-
(3/4) Λ24,
Ρ (η) =1/4* Ρ (η-1 ) +1/4* ( 3/4 ) * Ρ ( η-2 ) + +1/4* (3/4)
Λ23*Ρ ( η-24 ) 。
经过计算, Ρ( 5*1024 )=0.78, Ρ( 11*1024 )=0.17, Ρ(12*1024)=0.13, 即从数据流起始位置 /上一数据流分割点查找到 12KB后以 13%的概率 仍未找到数据流分割点, 强制进行分割。 通过这个概率, 求得数据流 分割点的密度函数, 经过积分求得大约平均在从数据流起始位置 /上 一数据流分割点查找 7.6ΚΒ时找到数据流分割点, 即平均分块长度大 约为 7.6ΚΒ。与连续的 11个点对应的窗口中至少部分数据以 1/2的概率 满足预定条件不同, 传统 CDC算法釆用一个窗口以 1/2Λ12的概率满足 条件时, 方可达到平均分块长度 7.6ΚΒ的效果。
在图 3所示的数据流分割点查找的基础上,在图 7所示的实施方式 中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1确 定 11个点 ^、点 对应的窗口 [ρΧ-4,Ρχ+ ]和窗口 ] 对应的预定条件 Cx, X分别为 1到 11连续的自然数, 其中, 点 对应 的窗口 ^ [ A - 4 , A 中至少部分数据满足预定条件 的概率为
1/2,并且 4 = 2 = 4 = Λ = 4 = 45 = ^^ 。^ , Βι = Β23 = Β45 = B6 = B7=B& = B9 =Bw = Bu=0, ^LC, 1 = C2 = C3 = C4 = C5 = C6 = C7 = C8 = C9 = C10 = Cn , 其中, 与潜在分割点 έ之间距离 个字节, 具体的, A与潜在 分割点 /1之间距离 2个字节, ρ2与/ 1之间距离 3个字节, 与/ 1之间距离 4个字节, 4与 之间距离 5个字节, 之间距离 6个字节, ^与/ 1之 间距离 7个字节, p7与 /1之间距离 8个字节, 与/ 1之间距离 9个字节, p9与^:之间距离 10个字节, A。与/ 1之间距离 1个字节, 之间距离 0个字节, 并且/ P 、 ρ4、 ρ5 , ρ6、 ρΊP 、 ρ9和 ^相对于潜 在分割点 均位于数据流分割点查找反方向。 为数据流分割点, 图 7 中所示数据流分割点查找方向为从左向右,从数据流分割点 ka跳过最 小数据块 4KB后, 在最小数据块 4KB结束位置作为下一个潜在分割点 kt, 为潜在分割点 确定点 Al,在本实施例中,根据在去重服务器 103 上预设的规则, X分别为 1到 11连续的自然数。 在图 7所示的实施方式 中 ,依据预定规则,为潜在分割点 kt确定的点为 11个,分别为 PilPi2
/¾、 P 、 Pis、 Pi6、 Pn、 /¾、 Pi9、 Pm^Prn ' 点 Pn、 P 、 P 、 Pi4、 pi5、 pi6、 Pn、 p 、 pi9、 。和 ½对应的窗口分别为 ^[; ½-169,Al]、 wi2[pn-\69,Pl2], wi3[p -l69,Pi}]. wi4[pl4-l69,Pl4]. wi5[Pl5-l69,Pi5]. wi6[pi6-^9,Pi6], ίΊ[Ρί1-\69,ρπ . ^8[A,-169,A,], wi9[Pi9-l69,pi9]. Wm [ Pm - 169, Pm ]和 [ - 169, ]。 其中, 点 Pix与潜在分割点 之间 距离^个字节,具体的, ^与^间距 2个字节、 ^与^间距 3个字节、 ^与^间距 4个字节、 与 间距 5个字节、 与 间距 6个字节、 p,6 与 间距 7个字节、 A7与 间距 8个字节、 与 间距 9个字节、 Pi9与 间距 10个字节、 Pm与 间距 1个字节,; ι与 间距 0个字节,并且 Pn
Pn、 /¾、 P,4、 pi5、 pi6、 pn、 /¾、 Pi9和; ½。相对于潜在分割点 均位 于数据流分割点查找反方向。 判断^ [; ^-169,^]中至少部分数据是 否满足预定条件 ς、 判断 wi2 [ Pl2 - 169, p,2 ]中至少部分数据是否满足预 定条件 C2、判断 3 [ Pi3 - 169, ]中至少部分数据是否满足预定条件 C3、 判断 4 [ Pl4 -169, Pl4 ]中至少部分数据是否满足预定条件 C4、 判断 w,5 [ ρί5- 69,Ρί5 ]中至少部分数据是否满足预定条件 C5、 判断 Wi6 [ Pi6 -169, Pi6 ]中至少部分数据是否满足预定条件 C6、 判断 Wi7 [ Pi7 - 169, A7 ]中至 少部分数据是否满足预定条件 C7、 判断 WiS [ P - 169, ]中至少部分数 据是否满足预定条件 C8、 判断 i9 [Pi9 -\69, Pi9 ]中至少部分数据是否满 足预定条件 C9、判断 ^ J 。 - 169, 。 ]中至少部分数据是否满足预定条 件 C1()和判断 Wn i [Pm -169, Pm ]中至少部分数据是否满足预定条件 Cu。 当判断窗口^中至少部分数据满足预定条件 ς、 窗口 ^中至少部分 数据满足预定条件 C2、 窗口^中至少部分数据满足预定条件 C3、 窗 口 4中至少部分数据满足预定条件(:4、 窗口 ^中至少部分数据满足 预定条件 C5、 窗口^中至少部分数据满足预定条件 C6、 窗口 ^中至 少部分数据满足预定条件 C7、 窗口^中至少部分数据满足预定条件 C8、 窗口^中至少部分数据满足预定条件 C9、 窗口^。中至少部分数 据满足预定条件(^。和窗口^ 1中至少部分数据满足预定条件 Cu时,则 当前潜在分割点 为数据流分割点。 当 11个窗口中任一个窗口中至少 部分数据不满足对应的预定条件时, 如图 8所示, ^3 [/¾-169, ;¾]中 至少部分数据不满足预定条件 ,点;¾沿着数据流分割点查找方向跳 跃 11个字节为例进行描述。如图 8所示,当判断 ^不满足预定条件时, 以 A为起始点, 沿着数据流分割点查找方向跳跃 N个字节, 其中 N个 字节不大于 II B3 II +max ( II Ax || + || ( kr Pi II ), 在图 6所示的实施方 式中,跳 if夭 N个字节, 具体为不大于 179字节,在本实施例中, N=l l , 在第 11个字节的结束位置, 获得下一个潜在分割点, 为与潜在分割点 区别, 这里将新的潜在分割点表示为 , 根据在去重服务器 103上 预设的规则, 为潜在分割点 确定的点为 11个, 分别为 ^、 P]1Pfl
Ρμ、 Pj Pj6、 PP、 j% Pj9、 Pjw ^ Pju '确定点 、 Pj2、 Ρβ、 Ρμ、 Pj5、 P]6、 Ρ〕Ί、 ΡΒ PJ9、 / 和 >对应的窗口分别为^ [^-169, PJL], WJ2
Figure imgf000044_0001
PJ2 ]、 ΨΒ [ PJ3 -169, PJ3 ]、 WJ4 [ Pj4-169, Pj4 ]、 WJ5 [ PJ5 -169, PJ5 ]、
^6 -16 , PJ6]. ΨΡ[Ρ]Ί- 69, Pj7]. WJ&[Pj,-\69, WJ9[Pj9-\69,
Pj9 WJl0[Pjl0- 69, ; ]和^ 其中, 与潜在分割 点 之间距离 个字节, 具体的, 与 间距 2个字节、 2与 间距
3个字节、 3与 间距 4个字节、 4与 间距 5个字节、 5与 间距 6 个字节、 与 间距 7个字节、 7与 间距 8个字节、 与 间距 9 个字节、 与 间距 10个字节、 与 间距 1个字节, Λ.„与 间距
0个字节,
Figure imgf000044_0002
p 、 Pfl、 pj4、 pj5、 pj6, P 、 91Q 目^ "于 潜在分割点 均位于数据流分割点查找反方向。 判断 [Pjl -169, Pjl ] 中至少部分数据是否满足预定条件 C,、判断 WJ2 [ PJ2 - 169, 2 ]中至少部 分数据是否满足预定条件 C2、判断 [ 3
Figure imgf000044_0003
]中至少部分数据是 否满足预定条件 、判断 [; ^4-169, ]中至少部分数据是否满足预 定条件 C4、判断 JVj5 [ .5-169,^5]中至少部分数据是否满足预定条件 C5、 判断^ [ - 169, ]中至少部分数据是否满足预定条件 C6、判断
[Pj7- 69, Pj7 ]中至少部分数据是否满足预定条件 C7、判断 WJS [PjS-169, 中至少部分数据是否满足预定条件 C8、判断 .9[ -169, 9]中至 少部分数据是否满足预定条件 C9、 判断^。[; ^。-169, 中至少部 分数据是否满足预定条件 C1Q和判断 WJU [ PjU-l69, PjU ]中至少部分数 据是否满足预定条件 Cu。 当然在本发明实施例中,判断潜在分割点 是否为数据流分割点时也遵循该原则, 具体实现不再描述, 可以参照 判断潜在分割点 的描述。 当判断窗口 中至少部分数据满足预定 条件 ς、 窗口 ^.2中至少部分数据满足预定条件 C2、 窗口 ^.3中至少部 分数据满足预定条件 C3、 窗口 J¥j4中至少部分数据满足预定条件 C4、 窗口 Wj5中至少部分数据满足预定条件 C5、 窗口 Wj6中至少部分数据满 足预定条件 C6、 窗口 ^.7中至少部分数据满足预定条件 C7、 窗口 中 至少部分数据满足预定条件 c8、 窗口 Wj9中至少部分数据满足预定条 件 C9、 窗口 中至少部分数据满足预定条件(^。和窗口^工中至少部 分数据满足预定条件 C„时,则当前潜在分割点 为数据流分割点, kj 与 之间的数据构成 1个数据块, 同时按照与 相同的方式跳过最 d、 分块大小 4KB , 获得下一个潜在分割点, 并按照在去重服务器 103上 预设的规则, 判断下一个潜在分割点是否为数据流分割点。 当判断潜 在分割点 不是数据流分割点时, 按照与 ki相同的方式跳跃 11个字节 获得下一个潜在分割点, 并按照在去重服务器 103上预设的规则及上 述方法判断下一个潜在分割点是否为数据流分割点。 当超过设定的最 大数据块仍然没有找到数据流分割点时,则从最大数据块的结束位置 作为强制分割点。 当然该方法的实施受最大数据块长度和构成该数据 流的文件的大小约束, 在此不再赘述。
在图 3所示的数据流分割点查找的基础上,在图 9所示的实施方式 中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1确 定 1 1个点 px、点 对应的窗口 [ ρχ-4, Ρχ + ]和窗口 ] 对应的预定条件 ,其中 4= 4=4=^=4=4= ^ ^τ^^ τΑ^Ι ^
Βλ = Β2 = Β3 = Β4 = Β5 = Β6 = Β7& = Β90 = Βη =0■> " f"_0- C1 = C2 = C3 = Ci = C5 =C6 = C^ C^ C^ C^ C,^ 其中, 与潜在分割点 之间距离 个字节, 具 体的, A与潜在分割点 之间距离 3个字节, 与 /1之间距离 2个字节, 之间距离 1个字节, ρ4与/ 1之间距离 0个字节, 与/ 1之间距离 1 个字节, A与 之间距离 2个字节, p7与 之间距离 3个字节, 与 之 间距离 4个字节, p9与/ 1之间距离 5个字节, A。与/ 1之间距离 6个字节, Al与^:之间距离 7个字节, 并且 ρ5、 ρ6、 ρΊ、 、 ρ9Α。和 Αι相对于 潜在分割点 k均位于数据流分割点查找反方向, A、 P2和 A相对于潜 在分割点/ 1均位于数据流分割点查找方向。 为数据流分割点, 图 9 中所示数据流分割点查找方向为从左向右,从数据流分割点 ka跳过最 小数据块 4KB后,最小数据块 4KB结束位置作为下一个潜在分割点 , 为潜在分割点 确定点;^, 在本实施例中, 根据在去重服务器 103上 预设的规则, X分别为 1到 11连续的自然数。在图 9所示的实施方式中, 为潜在分割点 确定的点为 11个,分别为 AlPilPii、 pi4Pi5、 p 、
Pi,、 /¾、 P»、 Am和 /½, 点 Ai、 Pn、 /¾、 P 、 /¾、 Pi6、 Pi,、 PiS、 pi9、 和; ½对应的窗口分别为^ [^-169,^]、 wi2
Figure imgf000046_0001
w [ρ - 69,ρ ], wi4[pi4-^9,Pi4], wi5[pi5-^9,Pi5], wi6[pi6-\69,Pi6 . wi7 [A7-169,A7]、 Wi&[p -\69,P ], ^,[A,-169,A,], ^。 [; ^-^^^。]和^丄 [pm- 69,P ]a其中, ; ^与潜在分割点 之间距离 个字节,具体的, Al与 间距 3个字节、 与 间距 2个字节、 与 间距 1个字节、 Pi4 与 间距 0个字节、 与 间距 1个字节、 A6与 间距 2个字节、 Pil与 间距 3个字节、 ^与 间距 4个字节、 A9与 间距 5个字节、 Pm j 间距 6个字节, 与 间距 7个字节, 并且; ¾、 Pi6PilΡPi9Pm 和 相对于潜在分割点 ki均位于数据流分割点查找反方向, Ρι1Pi2Pi3相对于潜在分割点 均位于数据流分割点查找方向。 判断
- 169, Al ]中至少部分数据是否满足预定条件 、 判断 ^2 [ Pi2 -169, Pi2] 中至少部分数据是否满足预定条件 2、 判断 wi3 [ Pi3 - 169,;¾ ]中至少部 分数据是否满足预定条件 C3、 判断^ [A4-169,A4]中至少部分数据是 否满足预定条件 C4、 判断 wi5 [ Pi5 - 169, ]中至少部分数据是否满足预 定条件 C5、判断^ [Pi6 -169, A6 ]中至少部分数据是否满足预定条件 C6、 判断 W„ [ Pn -169, Pn ]中至少部分数据是否满足预定条件 C7、 判断 WiS [ PiS-l69,piS ]中至少部分数据是否满足预定条件 C8、 判断 9 [ Pi9 -169, Pi9 ]中至少部分数据是否满足预定条件 C9、 判断 1Q [ Pm - 169, Pm ]中至 少部分数据是否满足预定条件(^。和判断^ 1 [; ^u-169,^]中至少部分 数据是否满足预定条件 Cu。 当判断窗口 ^中至少部分数据满足预定 条件 ς、 窗口^中至少部分数据满足预定条件 C2、 窗口 ^中至少部 分数据满足预定条件 C3、 窗口^中至少部分数据满足预定条件 C4、 窗口^中至少部分数据满足预定条件 C5、 窗口 6中至少部分数据满 足预定条件 C6、 窗口 ^中至少部分数据满足预定条件 C7、 窗口^中 至少部分数据满足预定条件 C8、 窗口 ^中至少部分数据满足预定条 件 C9、 窗口^。中至少部分数据满足预定条件(^。和窗口^ u中至少部 分数据满足预定条件 时,则当前潜在分割点 为数据流分割点。 当 11个窗口中任一个窗口中至少部分数据不满足对应的预定条件时,如 图 10所示, Wn[Pn -169, Pn] 中至少部分数据不满足对应的预定条件, 则从点 Pil沿着数据流分割点查找方向跳跃 N个字节, 其中 N个字节不 大于 II ΒΛ II +maxx( II Ax 11 + 11 {k Pix) \\ ), 在图 10所示的实施方式中, 跳跃 N个字节,具体为不大于 179个字节,在本实施例中,具体取 Ν=8 , 得到新的潜在分割点, 为与潜在分割点 区别, 这里将新的潜在分割 点表示为 ,根据图 9所示的实施方式中在去重服务器 103上预设的规 则, 为潜在分割点 确定的点为 11个, 分别为 ^、 ρ 、 ΡβPj4P]5
Pj6、 Pj,、 Ρβ、 Pj9、
Figure imgf000047_0001
Pju '确定' ^ P Pj2、 P 、 Pj4、 Pj5、 Pj6、 Pp、 pfl、 PJ9、 PjW和 p !对应的窗口分别为 Wn [Pjl-\69, Pjl ]、 Wj2 [ 2 - 169, Pj2 ]、 ^[ 3-169, 3]、 ^[ 4-169, 4]、 ^[ 5-169, 5]、 ^,[^,-169, 6]、 WJ7[PJL -169, Pjl]. WjS[Pj,- 69, Ρβ]. Wj9[Pj9-l69, Pj9]. WjW[PjW-\69, ; ]和^ π]0 其中, 与潜在分割点 之间距离 个 字节, 具体的, 与 间距 3个字节、 与 间距 2个字节、 ρ 间距 1个字节、 与 间距 0个字节、 与 间距 1个字节、 6与 间 距 2个字节、 与 间距 3个字节、 与 间距 4个字节、 与 间 距 5个字节、 与 间距 6个字节, „与 间距 7个字节,并且 、 6、 ΡΡΡΒPJ9、 和 „相对于潜在分割点 均位于数据流分割点查 找反方向, Pjl、 和 相对于潜在分割点 均位于数据流分割点查 找方向。 判断 l [ 169,^]中至少部分数据是否满足预定条件 、 判断 ^[ 2-169, 2]中至少部分数据是否满足预定条件 C2、 判断 JVJ3 [ -169, 3]中至少部分数据是否满足预定条件 C3、 判断 [ -169, Pj4 ]中至少部分数据是否满足预定条件 C4、 判断 W [ PJ5 - 169, ]中至 少部分数据是否满足预定条件 C5、 判断^ [ - 169, ]中至少部分 数据是否满足预定条件 C6、 判断^ [ -169, 7]中至少部分数据是 否满足预定条件 C7、 判断 .S[ -169, ]中至少部分数据是否满足 预定条件 C8、 判断 [ -169, 9]中至少部分数据是否满足预定条 件 C9、 判断^。[; ^-169, 中至少部分数据是否满足预定条件 C1Q 和判断^ „]中至少部分数据是否满足预定条件 C„。 当 然在本发明实施例中,判断潜在分割点 是否为数据流分割点时也遵 循该原则, 具体实现不再描述, 可以参照判断潜在分割点 的描述。 当判断窗口 ^中至少部分数据满足预定条件(^、 窗口 中至少部分 数据满足预定条件 C2、 窗口 ^.3中至少部分数据满足预定条件 C3、 窗 口 ^中至少部分数据满足预定条件 C4、 窗口 WJ5中至少部分数据满足 预定条件 C5、 窗口 ^.6中至少部分数据满足预定条件 C6、 窗口 中至 少部分数据满足预定条件 C7、 窗口 中至少部分数据满足预定条件 C8、 窗口^中至少部分数据满足预定条件 C9、 窗口 。中至少部分数 据满足预定条件(^。和窗口^工中至少部分数据满足预定条件 时,则 当前潜在分割点 为数据流分割点, 与 之间的数据构成 1个数据 块, 同时按照与 ^相同的方式跳过最小分块大小 4KB, 获得下一个潜 在分割点, 并按照在去重服务器 103上预设的规则, 判断下一个潜在 分割点是否为数据流分割点。 当判断潜在分割点 不是数据流分割点 时, 按照与 相同的方式跳跃 8个字节获得下一个潜在分割点, 并按 照在去重服务器 103上预设的规则及上述方法判断下一个潜在分割点 是否为数据流分割点。当超过设定的最大数据块仍然没有找到数据流 分割点时, 则从最大数据块的结束位置作为强制分割点。
在图 3所示的数据流分割点查找的基础上, 在图 11所示的实施方 式中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1 确定 11个点 px、 点 px对应的窗口 ^ [ -4 , +^]和窗口 [Ρχ-4 ,Ρχ+ ]对应的预定条件(^ ,其中 Α = Α2 = Α, = ΑΑ = Α = Α = ΑΊ = Α, = Α9 =\69,
Figure imgf000049_0001
56=οΊ=α,=α9ιο≠αη 0 其中, ^与潜在分割点 之间距离 个 字节, 具体的, Α与潜在分割点 /1之间距离 0个字节, ρ2与 /1之间距离 1个字节, A与/ 1之间距离 2个字节, 与/ 1之间距离 3个字节, A与/ 1之 间距离 4个字节, 与/1之间距离 5个字节, p7与 /1之间距离 6个字节, 与/1之间距离 7个字节, 与/ 1之间距离 8个字节, A。与/ 1之间距离 1 个字节, /¾与 之间距离 3个字节, 并且、 P2、 P4 P5、 P6PL、 P,和 相对于潜在分割点 k均位于数据流分割点查找反方向, A。和 Al相对于潜在分割点/ 1均位于数据流分割点查找方向。 ka为数据流分 割点, 图 11中所示数据流分割点查找方向为从左向右, 从数据流分割 点 ka跳过最 '〗、数据块 4KB后, 最小数据块 4KB结束位置作为下一个潜 在分割点 , 为潜在分割点 确定点 , 在本实施例中, 根据在去重 服务器 103上预设的规则, X分别为 1到 11连续的自然数。 在图 11所示 的实施方式中,为潜在分割点 ki确定的点为 11个,分别为 PPi2Pi3
P 、 Pi5、 Pi6、 、 /¾、 、 Pm^Pm ' Pa ^ Pn、 /¾、 、 /¾、 pi6、 A7、 /¾、 pi9、 。和; ½对应的窗口分别为 ^[^-169,^]、 Wi2[pi2 -169, A2], wi3[p -\69,p ]. wi4[pi4-\69,Pi4], wi5[Pi5- 69,Pi5], wi6[pi6 -169,p,6]、
Figure imgf000050_0001
wm [Pm -169,Pil0]和^ i
Figure imgf000050_0002
其中, ; ^与潜在分割点 之间距离 个 字节, 具体的, Al与 间距 0个字节、 与 间距 1个字节、 ;¾与 间 距 2个字节、 A4与 间距 3个字节、 与 间距 4个字节、 As与 间距 5个字节、 与 间距 6个字节、 与 间距 7个字节、 A9与 间距 8 个字节、 。与 间距 1个字节, 与 间距 3个字节, 并且 A2、 /¾、 PI4PI5PI6、 P„、 /¾和 ¾相对于潜在分割点 均位于数据流分割 点查找反方向, ; ^。和 相对于潜在分割点 均位于数据流分割点查 找方向。 判断 fTn [ Ριϊ - 169, Al ]中至少部分数据是否满足预定条件 ,、 判断 Wi2 [ Pl2 -169, Pl2 ]中至少部分数据是否满足预定条件 C2、 判断 wi3 [ pi3-l69,Pi3 ]中至少部分数据是否满足预定条件 C3、 判断 4 [ Pi4 -169, Pi4 ]中至少部分数据是否满足预定条件 C4、判断 wi5 [ Pi5 - 169, ]中至少 部分数据是否满足预定条件 C5、 判断 Wi6 [ Pi6 -169, ]中至少部分数据 是否满足预定条件 C6、 判断 Wi7 [ Pn - 169, A7 ]中至少部分数据是否满足 预定条件 、 判断^ [ -169, ]中至少部分数据是否满足预定条件 C8、 判断^ [ ¾-169, ¾]中至少部分数据是否满足预定条件 C9、 判断 Wm [ 。 -169, Pm ]中至少部分数据是否满足预定条件 C10和判断^ u [ Pm -169, PiU ]中至少部分数据是否满足预定条件 。 当判断窗口 wn中至 少部分数据满足预定条件 、 窗口^中至少部分数据满足预定条件 c2、 窗口 ^中至少部分数据满足预定条件 c3、 窗口^中至少部分数 据满足预定条件(:4、窗口 ^中至少部分数据满足预定条件 c5、窗口 6 中至少部分数据满足预定条件 、 窗口^中至少部分数据满足预定 条件 c7、 窗口^中至少部分数据满足预定条件 c8、 窗口^中至少部 分数据满足预定条件 c9、 窗口 1Q中至少部分数据满足预定条件 c1()和 窗口 中至少部分数据满足预定条件 Cu时, 则当前潜在分割点 ki为 数据流分割点。 当判断窗口^„中至少部分数据不满足预定条件 时, 则从潜在分割点 沿着数据流分割点查找方向跳跃 1个字节, 得到新 的潜在分割点, 为与潜在分割点 区别, 这里将新的潜在分割点表示 为 。 当 、 wi2 , wi3 , wi4 , wi5 , wi6 , wi7、 wiS9和^1()10个窗 口中任一个窗口中至少部分数据不满足对应的预定条件时, 如图 12 所示, ^4[A4-169, p,4 , 则从点 p,4沿着数据流分割点查找方向跳跃 N 个字节, 其中 N个字节不大于 II B4 II +max ( II II + II (krpa) II ), 在 图 12所示的实施方式中, 跳跃 N个字节, 具体为不大于 179, 在本实 施例中,具体取 Ν=9 ,得到新的潜在分割点,为与潜在分割点 ki区别, 这里将新的潜在分割点表示为 ,根据图 11所示的实施方式中在去重 服务器 103上预设的规则, 为潜在分割点 确定的点为 11个, 分别为
Pfl、 Pj2、 Pfi、 μ Ρ 、 Pj 、 Ρ 、 Ρβ、 Pj9、 / 和 Λ·ιι,确定点 、 Pj2
Pj3、 Pj4、 Pjs、 Pj6、 Pji、 Pj,、 Pj9、 PjW和 Pju对应的窗口分别为 w [ Pjl -169, P Wj2[pj2- 69,Pj2], Wj3[Pj!-169,Pj!], Wj4[Pj4-l69,Pj4], Wj5[Pj,-\69, ]、
Figure imgf000052_0001
P]I ] , WJ9[PJ9 -169, PJ9], WjW[pJW-^9, PJW]^WJU[PJ,-\S2, 其中, 与潜在 分割点 之间距离 个字节, 具体的, ^与 间距 0个字节、 Pjl与 kj 间距 1个字节、 与 间距 2个字节、 与 间距 3个字节、 与 间 距 4个字节、 与 间距 5个字节、 与 间距 6个字节、 与 间 距 7个字节、 与 间距 8个字节、 与 间距 1个字节, ; 与 间 距 3个字节, 并且 2ΡβΡμ5Pj6Ρ]Ί89相对于潜在分 割点 均位于数据流分割点查找反方向, pjl0和; ^相对于潜在分割点 kj均位于数据流分割点查找方向。 判断 [Pjl - ,Pjl ]中至少部分数 据是否满足预定条件 、判断 [ 2-169, 2]中至少部分数据是否满 足预定条件 C2、判断^ [ 3 -169, 3 ]中至少部分数据是否满足预定条 件 C3、 判断^ [ - 169, 4]中至少部分数据是否满足预定条件 C4、 判 断 [ -169, ]中至少部分数据是否满足预定条件 C5、判断^ [
-169, ]中至少部分数据是否满足预定条件 C6、 判断^ [ -169,
Ρ Ί ]中至少部分数据是否满足预定条件 7、判断 WJS [ ΡΒ - 169, ]中至 少部分数据是否满足预定条件 C8、 判断 [ -169, 9]中至少部分 数据是否满足预定条件 C9、判断^。 [PJW-\69, ; ]中至少部分数据是 否满足预定条件 <^和判断^工 [Pjn-m, n]中至少部分数据是否满 足预定条件 C„。 当然在本发明实施例中, 判断潜在分割点 是否为 数据流分割点时也遵循该原则, 具体实现不再描述, 可以参照判断潜 在分割点 ki的描述。 当判断窗口 ^中至少部分数据满足预定条件 、 窗口 ^.2中至少部分数据满足预定条件 C2、 窗口^中至少部分数据满 足预定条件 C3、 窗口 ^.4中至少部分数据满足预定条件 C4、 窗口 中 至少部分数据满足预定条件 c5、 窗口 Wj6中至少部分数据满足预定条 件 C6、 窗口 ^.7中至少部分数据满足预定条件 C7、 窗口 中至少部分 数据满足预定条件 C8、 窗口 中至少部分数据满足预定条件 c9、 窗 口 Ί。中至少部分数据满足预定条件 ς。和窗口 工中至少部分数据满 足预定条件 c„时, 则当前潜在分割点 为数据流分割点, 与 之 间的数据构成 1个数据块, 同时按照与 ka相同的方式跳过最小分块大 小 4KB, 获得下一个潜在分割点, 并按照在去重服务器 103上预设的 规则, 判断下一个潜在分割点是否为数据流分割点。 当判断潜在分割 点 ·不是数据流分割点时,按照与 相同的方式获得下一个潜在分割 点, 并按照在去重服务器 103上预设的规则及上述方法判断下一个潜 在分割点是否为数据流分割点。 当超过设定的最大数据块仍然没有找 到数据流分割点时, 则从最大数据块的结束位置作为强制分割点。
在图 3所示的数据流分割点查找的基础上, 在图 13所示的实施方 式中,在去重服务器 103上预设有规则为: 为潜在分割点 /1确定 11个点 Px、 点 ^对应的窗口 [px-4, A+ ]和窗口 ]对应的预 定条件 X分别为 1到 11连续的自然数,其中,点;^对应的窗口 ^ [;^
-4, +^J中至少部分数据满足预定条件的概率为 1/2,并且 4=4 = 4 =
Α4 = Α5 = Α6 = Α7 = Α, = Α9 = Αιο = Αη =\ 69, Β Β2 = Β3 = Β4 = Β5 = Β6 = ΒΊ = B = B9 = Bw = Bu=0, iL C1 = C2 = C3 = C4= C5 = C6 =C7 = C8 = C9 = C10 =C11 , 其中, ρχ与潜 在分割点/ 1之间距离 个字节, 具体的, A与潜在分割点 /1之间距离 0 个字节, p2与 /1之间距离 2个字节, 与/ 1之间距离 4个字节, p^ k之 间距离 6个字节, 与/ 1之间距离 8个字节, ^与/ 1之间距离 10个字节, 之间距离 12个字节, 与/ 1之间距离 14个字节, 与/ 1之间距离 16个字节, A。与/ 1之间距离 18个字节, 之间距离 20个字节, 并 且 p2P 、 p4、 p5、 p6、 ρΊ、 、 p9A。和 Al相对于潜在分割点 均 位于数据流分割点查找反方向。 为数据流分割点, 图 13中所示数据 流分割点查找方向为从左向右, 从数据流分割点 ka跳过最小数据块
4KB后, 在最小数据块 4KB结束位置作为下一个潜在分割点 , 为潜 在分割点 确定点 ftx, 在本实施例中, 根据在去重服务器 103上预设 的规则, X分别为 1到 11连续的自然数。 在图 13所示的实施方式中, 依 据预定规则, 为潜在分割点 确定的点为 11个, 分别为; ¾、 Pi2Pn
P 、 Pi5、 Pib、 Pn、 P 、 Pi9、 Pm^ Pm ' Pn ^ P 、 Pa、 、 P 、 /¾、 Pn、 、 P,9 > 和 ¾对应的窗口分别为^ 169, 7;1]、 Wl2 [Pn
-169,p,2]、 wi3[pl3-l69,Pl3], wi4[Pl4 -169, Pl4}. wi5[Pl5-i69,Pi5], wib[Pl(,-\69, ½]、 Wi7[pn-I69,pi7], w [Pm-l69,Pi,], wi9[pi9-l69,Pi9], wm[Pm-\69, piW]^wiU[p -^9,pm].其中, 与潜在分割点 之间距离 个字节, 具体的, /,1与/(,.间距0个字节、 ;,2与 间距 2个字节、 3与 间距 4个 字节、 Ρ,4与 间距 6个字节、 与 间距 8个字节、 P,6与 间距 10个 字节、 与 间距 12个字节、 与 间距 14个字节、 与 间距 16 个字节、 。与 间距 18个字节, 间距 20个字节,并且 ¾、 Pl3.
A4、 ft5、 ρί6、 ΡιΊ、 ¾、 pi9、 /½和/ ½相对于潜在分割点 均位于数 据流分割点查找反方向。 判断 wn [ P -169, ]中至少部分数据是否满 足预定条件 、 判断 2 [ Pi2 - 169, p,2 ]中至少部分数据是否满足预定条 件 C2、 判断^ [^-Ιό^^]中至少部分数据是否满足预定条件 C3、 判 断 4 [ Pi4 -169, Pl4 ]中至少部分数据是否满足预定条件 C4、 判断 wi5 [ Pi5 - 169, ft5 ]中至少部分数据是否满足预定条件 C5、 判断 wi6 [ Pi6 -169, Pi6] 中至少部分数据是否满足预定条件 C6、 判断 W„ [ Pn - 169, A7 ]中至少部 分数据是否满足预定条件 C7、 判断^ [ PiS - 169, ]中至少部分数据是 否满足预定条件 C8、 判断 9 [ A9 - 169, Pi9 ]中至少部分数据是否满足预 定条件 C9、 判断^ J 。 - 169, 。 ]中至少部分数据是否满足预定条件 。和判断^ 1 [; ^u-169,^]中至少部分数据是否满足预定条件 。 当 判断窗口 ^中至少部分数据满足预定条件 、 窗口^中至少部分数 据满足预定条件(:2、窗口 ^中至少部分数据满足预定条件 C3、窗口^ 中至少部分数据满足预定条件(:4、 窗口 ^中至少部分数据满足预定 条件 C5、 窗口^中至少部分数据满足预定条件 C6、 窗口 ^中至少部 分数据满足预定条件 C7、 窗口^中至少部分数据满足预定条件 C8、 窗口^中至少部分数据满足预定条件 C9、 窗口^。中至少部分数据满 足预定条件 ς。和窗口^ 1中至少部分数据满足预定条件 Cu时,则当前 潜在分割点 为数据流分割点。 当 11个窗口中任一个窗口中至少部分 数据不满足对应的预定条件时, 如图 14所示, ^4[A4-169,A4]中至少 部分数据不满足预定条件 C4, 则选择下一个潜在分割点, 为与潜在分 割点 区别, 这里表示为 , 位于 右边, 并且 与 间距 1个字 节。 如图 14所示, 依据在去重服务器 103上预设的规则, 为潜在分割 点 确定 11个点,分另' J为 Pjl、 3、 Ρμ、 pJ5, pj6、 Ρρ、 ρβ、 Pj9、 Pjl0
Figure imgf000055_0001
Pj2、 Ρβ、 Pj4、 Ρβ、 Pj6、 P 、 Ρβ、 Pj9、 /^。和/^ ^ 应的窗口分别为 WN [Pjl-\69, Pjl ]、 WJ2 [ 2 - 169, PJ2 ]、 WJ [ PJ, - 169, 3 ]、
^[ 4-169, 4]、 ^[ -169, 5]、 Wj6[Pj,-l69, 6]、 Wj7[Pj7-169,
WJ%[P],-\69, ]、 ^,[^,-169, PJ9], WjW[PjW-\69, ; ]和^丄
[; -169, PJN],其中,
Figure imgf000055_0002
ΒΛ
= B2 = B3 = B4 = B5 = B6 =B7 =B& = B9 =BW = Bu=0, iL C1 = C2 = C3 = C4 = C5=C6 = C7 =cs=c9=cw=cn. 其中, 与潜在分割点 之间距离 个字节, 具 体的, ^与 间距 0个字节、 2与 间距 2个字节、 3与 间距 4个 字节、 与 间距 6个字节、 与 间距 8个字节、 与 间距 10 个字节、 与 间距 12个字节、 8与 间距 14个字节、 与 间距 16个字节、 。与 间距 18个字节, 与 间距 20个字节, 并且 、 ρβ、 Ρμ、 PjS
Figure imgf000056_0001
pj9、 ; 和;^相对于潜在分割点 均位 于数据流分割点查找反方向。 判断 [Pjl -169, ^ ]中至少部分数据是 否满足预定条件 C、判断 [ 2-169, 2]中至少部分数据是否满足预 定条件 C2、判断 Wj3 [ 3-169, 3]中至少部分数据是否满足预定条件 C3、 判断 ^.4[ 4-169, 4]中至少部分数据是否满足预定条件 C4、 判断 W [ -169, 5]中至少部分数据是否满足预定条件 C5、 判断^ [ —169, 6]中至少部分数据是否满足预定条件 C6、判断 [ -169, 7]中至 少部分数据是否满足预定条件 C7、 判断^ [ -169, 8]中至少部分 数据是否满足预定条件 C8、 判断 [ 9-169, 9]中至少部分数据是 否满足预定条件 C9、判断 [Ρβ0-169, ]中至少部分数据是否满足 预定条件 C10和判断 WjU [ PjU-l69, Pjn ]中至少部分数据是否满足预定 条件 。 当判断窗口 ^中至少部分数据满足预定条件 、 窗口 Wj2中 至少部分数据满足预定条件 C2、 窗口 Wj3中至少部分数据满足预定条 件 C3、 窗口 ^.4中至少部分数据满足预定条件 C4、 窗口 中至少部分 数据满足预定条件 C5、 窗口 ^.6中至少部分数据满足预定条件 C6、 窗 口 ^中至少部分数据满足预定条件 C7、 窗口 ινβ中至少部分数据满足 预定条件 C8、 窗口^中至少部分数据满足预定条件 C9、 窗口 ^Ί。中至 少部分数据满足预定条件 C1Q和窗口^工中至少部分数据满足预定条 件 Cu时,则当前潜在分割点 kj为数据流分割点。当判断窗口 、 wj2、 wi4, wi5、 wi6, wP、 JViS、 wi9, ^。和 m中任一个窗口中至少 部分数据不满足预定条件时, 如图 15所示, ^.3[^3-169, 3]中至少 部分数据不满足预定条件 C3时, 点 Pi4相对于数据流分割点查找方向 位于点 3左边, 从点 A4沿着数据流分割点查找方向跳跃 21个字节, 获得下一个潜在分割点, 为与潜在分割点 、 相区别, 表示为 。 根据图 13所实施方式中在去重服务器 103上预设的规则, 为潜在分割 点 确定的点为 11个, 分别为/ ¾、 Pn、 pn、 p14、 p15、 P16、 Ρ、 PK
Pi9、 Pno和 Pin , '*、 Pn、 Pn、 Pn、 PI 、 Pis、 Pie、 Pn、 Pm、 P 、 Pm 和; ½对应的窗口分别为^ [ ½-169, Pn] wn[pl2-\69, ρ12], w [Pn -169, Pl3], wl4[Pl4-\69, Pl4], wl5[Pl5-\69, Pl5], wl6[Pl6-\69, Pl6], wn/7-169, Ρη], W„[pK-l69, Ρκ], Wl9[Pl9-l69, Pl9], ^/10 [Λιο -169, Ρηο] 和^ i [; ^-169, Ριη], 其中, 与潜在分割点 之间距离 个字节, 具体的, 与潜在分割点 之间距离 0个字节, 与 之间距离 2个 字节, 与 之间距离 4个字节, ρΜ与 之间距离 6个字节, 与 之 间距离 8个字节, ^与 之间距离 10个字节, ρ/7与 之间距离 12个字 节, 与 之间距离 14个字节, ^与 之间距离 16个字节, ρηο与 之 间距离 18个字节, P 与 之间距离 20个字节,并且 、 Pn、 pMPl5、 PL6 PN、 P 、 PL9 ^。和; ¾相对于潜在分割点 均位于数据流分割 点查找反方向。判断^ [ -169, 中至少部分数据是否满足预定条 件 判断 [ -169, 中至少部分数据是否满足预定条件 C2、判 断^ [ ¾-169, ]中至少部分数据是否满足预定条件 C3、判断^ [ -169, pM]中至少部分数据是否满足预定条件 C4、判断^ [ -169, Pl5] 中至少部分数据是否满足预定条件 C5、判断 W!6 [pl6-\69, p,6 ]中至少部 分数据是否满足预定条件 C6、判断^ -169, p„]中至少部分数据是 否满足预定条件 C7、判断^ [^-169, 中至少部分数据是否满足预 定条件 C8、判断^ [Pl9-\69, 中至少部分数据是否满足预定条件 C9、 判断 Wno [ Pm -169, Pm ]中至少部分数据是否满足预定条件 C10和判断 Wm[Pm-\69, P ]中至少部分数据是否满足预定条件 。 当判断窗口 w中至少部分数据满足预定条件 、 窗口 ^2中至少部分数据满足预 定条件 c2、 窗口^中至少部分数据满足预定条件 、 窗口^中至少 部分数据满足预定条件(:4、 窗口^中至少部分数据满足预定条件 c5、 窗口 ^中至少部分数据满足预定条件 c6、 窗口^中至少部分数据满 足预定条件 c7、 窗口^中至少部分数据满足预定条件 c8、 窗口 ^中 至少部分数据满足预定条件 c9、 窗口 /iq中至少部分数据满足预定条 件(^。和窗口^ ^至少部分数据满足预定条件 时,则当前潜在分割 点 为数据流分割点。 当窗口 ^ 、 wn. wB、 wH. wl5. wl6. JVn、 wls. wi9、 ^。和 m中任一窗口中至少部分数据不满足预定条件时, 选择 下一个潜在分割点, 为与潜在分割点 、 和 区别, 表示为 位于 右边, 并且 与 间距 1个字节。 根据图 13所示实施例在去重 服务器 103上预设的规则, 为潜在分割点 确定的点为 11个, 分别为 、 、 、 、 、 、 、 、 、 、、、 、 、 、 、 、 、 ,、 Pm9、 1。和 对应的窗口分 别为^ Pml]. wm2[Pm2-\69, Pm2], wm3[Pm3- 69, Pm3], wm4
Figure imgf000058_0001
Figure imgf000058_0002
Pmll], 其中, /^与潜在分割点 之间距离 个字节, 具体 的, Pml与潜在分割点 之间距离 0个字节, 2与 之间距离 2个字节, ^与 之间距离 4个字节, 4与 之间距离 6个字节, 与 之间 距离 8个字节, 6与 之间距离 10个字节, 7与 之间距离 12个字 节, 与 之间距离 14个字节, 与 之间距离 16个字节, Pml0与 km 之间距离 18个字节, ^与 之间距离 20个字节,并且 2Pm3Pm4
Pm5、 Pm6、 P ml、 P m 、 Pm9、 PmlO和 相对于潜在分割点 均位于数 据流分割点查找反方向。 判断^ ;^]中至少部分数据是否 满足预定条件 、 判断^ 2[ 2-169, 中至少部分数据是否满足预 定条件 C2、 判断 ffM3[pm3-169, ;^]中至少部分数据是否满足预定条件 C3、 判断^ 4[Pm4-169, pm4]中至少部分数据是否满足预定条件 C4、 判 断 Pm5]中至少部分数据是否满足预定条件 C5、 判断^ 6 [Pm6- 69, 中至少部分数据是否满足预定条件 C6、 判断^ 7 7 -169, 中至少部分数据是否满足预定条件 C7、 判断^ s[Pm8-169, ]中至少部分数据是否满足预定条件 C8、 判断^ 9[ 9-169, 中 至少部分数据是否满足预定条件 C9、 判断 U m1Q-169, 1q]中至少 部分数据是否满足预定条件 C10和判断 mll [ Pmll -169, Pmll ]中至少部分 数据是否满足预定条件 Cu。 当判断窗口^ i中至少部分数据满足预定 条件 、 窗口^ 2中至少部分数据满足预定条件 C2、 窗口 ffM3†至少部 分数据满足预定条件 C3、 窗口^ 4中至少部分数据满足预定条件 C4、 窗口 ffm5中至少部分数据满足预定条件 C5、窗口^ 6中至少部分数据满 足预定条件 C6、 窗口^ 7中至少部分数据满足预定条件 C7、 窗口^ 8中 至少部分数据满足预定条件 C8、 窗口^ 9中至少部分数据满足预定条 件 C9、 窗口 ml。中至少部分数据满足预定条件(^。和窗口^„中至少部 分数据满足预定条件 Cu时, 则当前潜在分割点 km为数据流分割点。 当任一个窗口中至少部分数据不满足预定条件时,则按照前面描述的 方案执行跳跃,以获得下一个潜在分割点并判断是否为数据流分割点。
本发明实施例提供了一种判断窗口 JViz [ Piz-Az, Piz+Bz]中至少部 分数据是否满足预定条件 cz的方法,本实施例中使用随机函数判断窗 口 [ p -Az, Pi + Bz]中至少部分数据是否满足预定条件 Cz, 以图 5 所示的 j实…,施方式为例, 根据在去重服务器 103上预设的规则, 为潜在 分割点 确定点 Pil及点 Ρη对应的窗口 ^ - 169, Ρη ] ,判断 ^ [Ρη-169, 中至少部分数据是否满足预定的条件 如图 16所示, ^表示窗 口
Figure imgf000060_0001
为判断^ -169,^]中至少部分数据是否满足预 定条件 选择 5个字节, 图 16中"■ "表示选择的 1个字节, 相邻两个 选择的字节之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255字节, 以增加随机性。其中每个字节由 8位组成,记为
8,表示 255个字节中第 m个字节的第 1到第 8位, 因此, 255个字节对 应的位可以表示为: , 当 α =1时, =1, 当
„=0时, „=-1, 其中 „表示 ... 8中的任一个, 255个字节对 应的位按照 am„与 „的转换关系得到矩阵 , 可以表示为: ί
。选取大量随机数, 组成矩阵, 由随机数据
Figure imgf000060_0002
组成的矩阵一旦组成, 保持不变, 如从服从特定分布(这里以正态分 布为例) 的随机数中选择 255*8个随机数组成矩阵 R:
,将矩阵 va的第 m行与矩阵 R的第 m行的随机数相 乘,然后求和得到一个值,具体表示为 ^^ ^+^ ^+…+^^ * 8。 根据该方法, 获得 Sal2…到 255 , 统计 2…到 255中 满足特定条件(这里以大于 0为例)的值的个数 K。 由于矩阵 RJ 人正 态分布, 则 m与矩阵 R—样, 仍然服从正态分布, 根据概率论, 正态 分布随机数大于 0的概率为 1/2, 在 2…到 255中, 每个值大于 0
P(k = n) = C" (丄) "(丄 )255- " = C" (丄) 255 的概率为 1/2,所以 K满足二项分布: 255 W 255 2; 。 根据统计结果,判断& i、 Sa2…到 255的值大于 0的个数 K是否为偶数, 二项分布的随机数为偶数的概率为为 1/2, 所以 K以 1/2的概率满足条 件。 当 K为偶数时, 表明^ -169,^]†至少部分数据满足预定条件 当 K为奇数时, 表明^ [^-169,/^]中至少部分数据不满足预定 条件 ,这里 即指根据上述方式获得的& ,、 Sa2…到 255的值大于 0 的个数 K为偶数。在图 5所示的实施方式中,在 -169,^] 、 wa[Pa
-169,p,2]、 ^[Α3-169,α.3]、 wi [pl4-\69,Pl4^ wi5[Pl5-l69,Pl5]. wi6[Pl6-\69, ½]、 wi7[p„-^9,Pi7], ^[ -169, ]、 wi9[pi9-l69,Pi9], wm[pm-^9, 。]和^ i [; ^U-^ AU]中,各窗口大小相同,即窗口大小均为 169字节, 同时判断窗口中至少部分数据是否满足预定条件的方式也相同,具体 见上述判断 wn [ P -169, ]中至少部分数据是否满足预定条件 Cx的描 述。 因此, 如图 16所示, 表示判断窗口^ [A2-169,A2]中至少部 分数据是否满足预定条件 C2时选择的 1个字节, 相邻两个选择的字节 之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节, 以增加随机性。 其中每个字节由 8位组成, 记为 bml...bm8,表示
255个字节中第 m个字节的第 1到第 8位, 因此, 255个字节对应的位可 以表示为: ,当 „=i时, =i,当 „=o时, vb
Figure imgf000061_0001
255,8 J =-1 ,其中 bmn表示 6m , ...6m 8中的任一个, 255个字节对应的位按照 bm„与
^^的转换关系得到矩阵 b , 可以表示为:
Figure imgf000062_0001
J 判断 ^ [ Pa - 169, pn ]中至少部分数据是否满足预定条件的方式与判 断窗口 lVl2 [ Pn -169, A2 ]中至少部分数据是否满足预定条件的方式相
同, 因此使用矩阵 R: J ,将矩阵 的第 m行与矩阵
R的第 m行的随机数相乘, 然后求和得到一个值, 具体表示为&
"K,+vbm^hm +...+vbm^hm^ 根据该方法, 获得 、 …到& 255 , 统计 、 到& 255中满足特定条件(这里以大于 0为例) 的值的个 数^ 由于矩阵 人正态分布, 则 m与矩阵 R—样, 仍然服从正态 分布, 根据概率论, 正态分布随机数大于 0的概率为 1/2, 在 、 Sb2... 到 255中, 每个值大于 0的概率为 1/2, 所以 K满足二项分布:
P(k = n) = C2"55(丄)" (丄) 255- " = C2"55 (-)255
2 255 。根据统计结果,判断 、 …到& 255 的值大于 0的个数 Κ是否为偶数, 二项分布的随机数为偶数的概率为 为 1/2, 所以1^以1/2的概率满足条件。 当 Κ为偶数时, 表明^ [ ¾-169, ¾]中至少部分数据满足预定条件 C2; 当 K为奇数时,表明^ [A2-169, Pi2 ]中至少部分数据不满足预定条件 C2,这里 C2即指根据上述方式获 得的 、 2…到 255的值大于 0的个数 K为偶数。 图 3所示的实施方 式中, 2[ Pn -169, pi2 ]中至少部分数据满足预定条件 C2
因此, 如图 16所示, 表示判断窗口 ^[ ¾-169,¾]中至少部 分数据是否满足预定条件 C3时选择的 1个字节, 相邻两个选择的字节 之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节,以增加随机性。然后使用判断窗口^ -169,^]和^ [A2-169,
Pi2 ]中至少部分数据是否满足预定条件的方法, 判断 wi3 [ Pl3 - 169, ]中 至少数据是否满足预定条件 C3。图 5所示的实施方式中, ^3[i¾-169,A.3] 中至少部分数据满足预定条件。 如图 16所示, 表示判断窗口^ [ A4 - 169, Pi4 ]中至少部分数据是否满足预定条件 C4时选择的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将选择的 5字节数据反复利 用 51次,共获得 255字节,以增加随机性。然后使用判断窗口^ [P -169, P ] ^[ ^-Ιό^^]和^ [ 3-169, 3]中至少部分数据是否满足预定 条件的方法, 判断 4 [ Pi4 - 169, A.4 ]中至少部分数据是否满足预定条件 C4。 图 5所示的实施方式中, Wi4[pi4- 69,Pi4] 中至少部分数据满足预 定条件 C4。 如图 16所示, "田"表示判断窗口 ^[; ¾-169,;¾]中至少部 分数据是否满足预定条件 C5时选择的 1个字节, 相邻两个选择的字节 之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节, 以增加随机性。 然后使用判断窗口^ -169,^]、 Wi2[pi2-^9, ^[ ¾-169, 3]和 4[A4-169,A4]中至少部分数据是否满足预定 条件的方法, 判断 w,5 [ Pi5 - 169, ]中至少数据是否满足预定条件 C5。 图 5所示的实施方式中, ^[ ¾-169,pi5]中至少部分数据不满足预定条 件 C5
当 ^5[ ¾-169,¾]中至少部分数据不满足预定条件时 C5 , 从点 ¾ 沿着数据流分割点查找方向跳跃 11个字节,在第 11个字节的结束位置 获得下一个潜在分割点 , 如图 6所示, 根据在去重服务器 103上预设 的规则,为潜在分割点 确定点 、点 i对应的窗口 ^[ 169,;^], 判断窗口 ^ [^-169, Pjl ]中至少部分数据是否满足预定条件 的方 式与判断窗口^ [ - 169, ]中至少部分数据是否满足预定条件 C,的 方式相同,因此如图 17所示, ^^表示窗口 ^[ 「169, 为判断
[ 1-169, 1]中至少部分数据是否满足预定条件(:1, 选择 5个字节, 图
17中 "國"表示选择的 1个字节, 相邻两个选择的字节之间相差 42个字 节。 将选择的 5字节数据反复利用 51次, 共获得 255字节, 以增加随机 性。 其中每个字节由 8位组成, 记为 ^,Λ,.α^ ',表示 255个字节中第 m 个字节的第 1到第 8位, 因此, 255个字节对应的位可以表示为:
,当 α '=1时, \,当 a '=0时, V ,
Figure imgf000064_0001
其中 „ '表示 ^ ... ^ 8 '中的任一个, 255个字节对应的位按照
V 的转换关系得到矩阵^,可以表示为:
Figure imgf000064_0002
判断窗口 ^ [^-169, Pjl ]中至少部分数据是否满足预定的条件与判 断窗口 ^ [ - 169, ]中至少部分数据是否满足预定的条件的方式相
同, 因此使用矩阵 R:
Figure imgf000064_0003
将矩阵 的第 m行与矩阵
R的第 m行的随机数相乘,然后求和得到一个值,具体表示为^'^ '
^^+ ^+…+^^ '* 8。根据该方法,获得 '、 …到 255 ', 统计 、 U…到 255 '中满足特定条件 (这里以大于 0为例) 的值的 个数 K。 由于矩阵 RI 人正态分布, 则 f与矩阵 R—样, 仍然服从正 态分布, 根据概率论, 正态分布随机数大于 0的概率为 1/2, 在 、 U…到 255 '中, 每个值大于 0的概率为 1/2, 所以 K满足二项分布: P(k = n) = C" (-)" (丄) 255- " = C" (丄) 255
2 255 。 根据统计结果, 判断 ,、 …到 255 '的值大于 0的个数 κ是否为偶数, 二项分布的随机数为偶数的概 率为 1/2,所以 K以 1/2的概率满足条件。当 K为偶数时,表明
中至少部分数据满足预定条件 当 K为奇数时,表明 ^[^-169, Pjl ]中至少部分数据不满足预定条件 。
判断^ [ A2 -169, p,2 ]中至少部分数据是否满足预定条件 C2的方式 和判断 wj2 [ 2 - 169, Pj2 ]中至少部分数据是否满足预定条件 C2的方式 相同, 因此, 如图 17所示, 表示判断窗口 [ 2—169,^2]中至少 部分数据是否满足预定条件 C2时选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节, 以增加随机性。 其中每个字节由 8位组成, 记为/ ^'.. ,8 ',表示
255个字节中第 m个字节的第 1到第 8位, 因此, 255个字节对应的位可
V
以表示为: V . - V 当 6„„'=1时, „„'=l, 当 6, =0 h , h , , h ,, J
时, Vbm =-\, 其中 „ '表示 '.. ,8'中的任一个, 255个字节对应的 位按照 bm„^ Vbmn' j转换关系得到矩阵 ^,, 可以表示为:
。窗口 2[p2-169,p2]和 2[ 2-169, 中至少
Figure imgf000065_0001
部分数据是否满足预定条件的方式相同, 因此仍使用矩阵 R:
Figure imgf000066_0001
8人将矩阵 的第 m行与矩阵 R的第 m行的随机数 相乘, 然后求和得到一个值, 具体表示为^^^ +^ ^ +...+ * 8。根据该方法,获得 '、 …到 255 ',统计 '、 Sbl ... 到 255 '中满足特定条件(这里以大于 0为例) 的值的个数 K。 由于矩 阵 人正态分布, 则 '与矩阵 R—样, 仍然服从正态分布, 根据概 率论, 正态分布随机数大于 0的概率为 1/2, 在 '、 到 255 '中, 每个值大于 0的概率为 1/2, 所以 Κ满足二项分布:
P(k = n) = C2 n 55 ( -)" (丄) 255- " = C2"55 (丄) 255
2 255 Y 。 根据统计结果, 判断 、 > …到 & 255 '的值大于 0的个数 K是否为偶数, 二项分布的随机数为偶数的概 率为为 1/2, 所以 K以 1/2的概率满足条件。 当 K为偶数时, 表明^;2 [ 2 -169, 2]中至少部分数据满足预定条件 C2;当 K为奇数时,表明 ^2[Pj2 -169, 2]中至少部分数据不满足预定条件 C2。同理,判断^ [Λ.3-169, 3] 中至少部分数据是否满足预定条件 C3的方式与判断 [Pj3 -169, 3 ] 中至少部分数据是否满足预定条件 C3的方式相同, 同理,判断^ [ 4 -169, 4]中至少部分数据是否满足预定条件 C4、 判断 Wj5 [Pj5 -169, 5 ] 中至少部分数据是否满足预定条件 C5、 判断^ [ - 169, ]中至少 部分数据是否满足预定条件 C6、 判断 .7[^7-169, 7]中至少部分数 据是否满足预定条件 C7、 判断 ^ [^-169, ]中至少部分数据是否 满足预定条件 C8、 判断^ [ -169, 9]中至少部分数据是否满足预 定条件 C9、判断^。[; ; -169, 。]中至少部分数据是否满足预定条件 。和判断 n]中至少部分数据是否满足预定条件 , 在此不再赘述。
仍然以图 5所示实施方式为例, 提供了一种判断窗口^ [ Pi2-Az, Pi +Bz]中至少部分数据是否满足预定条件 (^的方法, 本实施例中使 用随机函数判断窗口 Wiz [ ρίΓΑζ, Ρί + Βζ]中至少部分数据是否满足预 定条件 Cz, 根据在去重服务器 103上预设的规则, 为潜在分割点 确 定点 及 对应的窗口^ - 169, ], 判断^ - 169, ]中至少部 分数据是否满足预定的条件 如图 16所示, ^表示窗口^ -169, P ], 为判断 ^[^-169,^]中至少部分数据是否满足预定条件 选 择 5个字节, 图 16中 "國"表示选择的 1个字节,相邻两个选择 "國,,的字 节之间相差 42个字节。 其中一种实现方式为使用 HASH函数计算选择 的 5个字节, 使用 HASH函数计算得到的数值是一个固定均匀分布, 如果使用 HASH函数计算得到的数值为偶数, 则判断^ [Pn-I69,pn] 中至少部分数据满足预定条件<^ , 即 (^表示根据上述方式使用 HASH 函数计算得到的数值为偶数。 因此, ^[^-169,^] 中至少部分数据 是否满足预定条件的概率为 1/2。 在图 5所示的实施方式中, 使用 Hash 函数判断^ [Pl2 -169, Pl2 ]中至少部分数据是否满足预定条件 C2、 wi3 [pi3- 69, Pi3 ]中至少部分数据是否满足预定条件 C3、 wi4 [ Pi4 - 169, pi4 ]中 至少部分数据是否满足预定条件 C4和 wi5 [ A - 169 , ]中至少部分数据 是否满足预定条件 C5 , 具体实现可参考描述图 5所示实施方式使用 Hash函数判断^ -169, 中至少部分数据是否满足预定条件的方 式 在此不再赞述。
当 ^5[ ¾-169,¾]中至少部分数据不满足预定条件 C5时, 从点 ¾ 沿着数据流分割点查找方向跳跃 11个字节,在第 11个字节的结束位置 获得当前潜在分割点 , 如图 6所示, 根据在去重服务器 103上预设的 规则,为潜在分割点 确定点 、点 i对应的窗口
判断窗口 ^ [^-169, Pjl ]中至少部分数据是否满足预定条件 的方 式与判断窗口 ^[; ¾ - 169, ]中至少部分数据是否满足预定条件 C,的 方式相同,因此如图 17所示, ^^表示窗口 ^[ 「169, 为判断
[ 1-169, 1]中至少部分数据是否满足预定条件(:1, 选择 5个字节, 图
17中 "國"表示选择的 1个字节, 相邻两个选择的字节 "國"之间相差 42 个字节。 使用 Hash函数计算从窗口 中选取的 5个字节, 如果得到的数值为偶数, 则 ^[^-169,^]中至少部分数据满足预定 条件 。 图 17中, 判断^ [A2-169,A2]中至少部分数据是否满足预定 条件 C2的方式和判断 Wj2 [ 2 -169, Pj2 ]中至少部分数据是否满足预定 条件 C2的方式相同,因此,如图 17所示,"®,,表示判断窗口 ^.2[ 2-169, Pj2 ]中至少部分数据是否满足预定条件 C2时选择的 1个字节,相邻两个 选择的字节" "之间相差 42个字节。 使用 Hash函数计算选择的 5个字 节, 如果得到的数值为偶数, 则^.2[^2-169,^2]中至少部分数据满足 预定条件 C2。 图 17中, 判断^ [A,-169,A,]中至少部分数据是否满足 预定条件 C3的方式与判断 JVj3 [ Pj3 -169, Pj3 ]中至少部分数据是否满足 预定条件 的方式相同, 因此, 如图 17所示, 表示判断窗口
[ Pj3 -169, Pj3 ]中至少部分数据是否满足预定条件 C3时选择的 1个字节, 相邻两个选择的字节 國"之间相差 42个字节。使用 Hash函数计算选择 的 5个字节, 得到的数值为偶数, 则^.3[^3-169,^3]中至少部分数据 满足预定条件 C3。 图 17中, 判断^ [; ^-169,^4]中至少部分数据是否 满足预定条件 C4的方式和判断窗口 trM [Pi4 -169, Pi4 ]中至少部分数据是 否满足预定条件 (:4的方式,因此,如图 17所示, " "表示判断窗口 ^4 [P]4-\69, Pj4 ]中至少部分数据是否满足预定条件 C4时选择的 1个字节, 相邻两个选择的字节" "之间相差 42个字节。使用 Hash函数计算选择 的 5个字节, 得到的数值为偶数, 则 ^.4[ -169,^4]中至少部分数据 满足预定条件 C4。 根据上述方法, 判断 ^ [^5-169,^5]中至少部分数 据是否满足预定条件 C5、 判断 [ - 169, ]中至少部分数据是否 满足预定条件 C6、 判断 ^[ 7-169, 7]中至少部分数据是否满足预 定条件 C7、 判断 [ - 169, 8]中至少部分数据是否满足预定条件 C8、 判断^ [ 9-169, 9]中至少部分数据是否满足预定条件 C9、 判 断 ^。 [/ -169, ; ]中至少部分数据是否满足预定条件 。和判断 WjU[pj -\69, J中至少部分数据是否满足预定条件 Cu, 在此不再 赘述。
以图 5所示的实施方式为例,提供了一种判断窗口 Wiz [ pi2-Az, piz + Bz]中至少部分数据是否满足预定条件 ^的方法, 本实施例中使用 随机函数判断窗口 Wiz [ pi2-Az, pi2+Bz]中至少部分数据是否满足预定 条件 Cz, 根据在去重服务器 103上预设的规则, 为潜在分割点 确定 点 及 对应的窗口^ - 169, ] , 判断^ [ - 169, ]中至少部分 数据是否满足预定条件<^ ,如图 16所示, ^表示窗口 wn [p -169,P ], 为判断 ^ [ -169, ]中至少部分数据是否满足预定条件 Cx , 选择 5个 字节, 图 16中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择 的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、
127、 85、 43和 1的字节 "國"分别转换成一个十进制数值, 分别表示 为 ai、 a2. a3、 «4和 。 因为 1个字节由 8位组成, 所以每个字节 "國" 作为一个数值,则 βι、 α2、 α3、 «4和《5中的任一个 均满足 0≤ ≤255。 βι、 α2、 α3 , «4和 组成 1*5的矩阵。 从服从二项分布的随机数中选 h Ό,5
h h、. h、;
择 256*5个随机数, 组成矩阵 R, 表示为:
¾55'5 255,5 … 255,5 ) 根据 的值和所在的列,从矩阵 R中查找对应的值,如 =36, αλ 位于第 1列, 则查找/ ¾对应的值; 根据《2的值和所在的列, 从矩阵 R 中查找对应的值, 如《2 =48, «2位于第 2列, 则查找 ^2对应的值; 根 据 ^的值和所在的列, 从矩阵 R中查找对应的值, 如《3=26, ^位于 第 3列, 则查找/ ¾3对应的值; 根据《4的值和所在的列, 从矩阵 R中查 找对应的值,如《4 =26, «4位于第 4列,则查找/ ¾4对应的值;根据 ^的 值和所在的列, 从矩阵 R中查找对应的值, 如《5=88, ^位于第 5列, 则查找½,5对应的值。 =/¾+ 2 + /¾3 + /¾ +/ 5 , 因为矩阵 R 人二 项分布, 因此, 也服从二项分布。 当 为偶数, 则^ -169,Ρ;1] 中至少部分数据满足预定条件 当 为奇数, 则^ -169, 7;1 ]中 至少部分数据不满足预定条件 Ci , 为偶数的概率为 1/2, 表示按 上述方式计算 为偶数。 在图 5所示实施例中, ^ [^-169,^]中至少 部分数据满足预定条件<^。如图 16所示, "^"表示判断窗口 wn [ Pi2 -169, Pn ]中至少部分数据是否满足预定条件 C2时分别选择的 1个字节,在图 16中, 分别用序号 170、 128、 86、 44和 2表示, 相邻两个选择的字节 之间相差 42个字节。 将序号 170、 128、 86、 44和 2的字节 分别转 换成一个十进制数值, 分别表示为 έι、 b2、 、 和 65。 因为 1个字节 由 8位组成, 所以每个字节 作为一个数值, 则 、 b2、 63、 b4 ^ b5 中的任一个 b均满足 0≤b≤255。 b2、 63、 和 组成 1*5的矩阵。 本实施方式中, 判断 ^和^中至少部分数据是否满足预定条件的方 式相同, 因此仍然使用矩阵 R, 根据 的值和所在的列, 从矩阵 R中 查找对应的值, 如 6l=66, 位于第 1列, 则查找 A66对应的值; 根据 的值和所在的列,从矩阵 R中查找对应的值,如 2=48, 位于第 2列, 则查找 对应的值;根据 63的值和所在的列,从矩阵 R中查找对应的 值, 如 ¾=99, 63位于第 3列, 则查找 对应的值; 根据 的值和所 在的列,从矩阵 R中查找对应的值,如 4=26, 4位于第 4列,则查找/ 对应的值;根据 的值和所在的列,从矩阵 R中查找对应的值,如 =90,
65位于第 5列, 则查找¾。,5对应的值。 s2=/¾+/ +/¾,3 +/¾4 +/ 5,因为 矩阵 RI 人二项分布, 因此, 也服从二项分布。 当 为偶数, 则^ [Α2-169,Α2]中至少部分数据满足预定条件 C2, 当 为奇数, wn[pi2 -169, ¾]中至少部分数据不满足预定条件 C2, 为偶数的概率为 1/2。 在图 5所示实施例中, 中至少部分数据满足预定条件 2。 使用同样的规则, 分别判断 ^[ ^-Ιό^^]中至少部分数据是否满足 预定条件 、 判断^ [Α4-169,ρ,4]中至少部分数据是否满足预定条件 C4、判断 5[A.5-169,pi5]中至少部分数据是否满足预定条件 C5、判断 6 [ Pi6 -169, Pi6 ]中至少部分数据是否满足预定条件 C6、 判断 Wn [ Pil -169, Pn ]中至少部分数据是否满足预定条件 C7、 判断 WiS [ Pa - 169, ]中至少 部分数据是否满足预定条件 C8、 判断 Wi9 [ Pl9 -169, Pi9 ]中至少部分数据 是否满足预定条件 C9、判断 1Q [ PiW-l69,piW ]中至少部分数据是否满足 预定条件 C10和判断^ 1 [ PiU -169, ]中至少部分数据是否满足预定条 件 Cu。 图 5所示的实施方式中, ^[^,5-169,¾]中至少部分数据不满足 预定条件 C5,从点 ¾沿着数据流分割点查找方向跳跃 11个字节,在第 11个字节的结束位置获得当前潜在分割点 , 如图 6所示, 根据在去 重服务器 103上预设的规则, 为潜在分割点 确定点 点 对应 的窗口 ^[^-169,^], 判断窗口 ^[^-169,^]中至少部分数据是 否满足预定条件 的方式与判断窗口^ [; ¾ - 169, ]中至少部分数据 是否满足预定条件 的方式相同, 因此如图 17所示, ^^表示窗口
[ Pjl -169, Pjl ] ,为判断 W [ Pjl -169, Pjl ]中至少部分数据是否满足预定条 件 图 17中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择 的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "國"分别转换成一个十进制数值, 分别表示 为 、 。2'、 、 。4 '和 。 因为 1个字节由 8位组成,所以每个字节 "國" 作为一个数值,则 、。2'、 α3'、。4 '和 Ω5 '中的任一个 均满足 0≤ ≤255。
、 。2'、 、 。4 '和 5 '组成 1 *5的矩阵。 判断窗口^ [ 169, 中至 少部分数据是否满足预定条件 C,的方式与判断窗口^ [^ -169,^ ]中 至少部分数据是否满足预定条件 Cl的方式相同, 因此, 仍然使用矩阵
"θ,Ι "0,2
h h
: 〃1,1 〃 .
1,2
R, 表示为
、〃 h h .
255,5 "255,5 * * 255,5 y
根据 ^ '的值和所在的列, 从矩阵 R中查找对应的值, 如 =16, Ωι '位 于第 1列, 则查找 对应的值; 根据 的值和所在的列, 从矩阵 R中 查找对应的值,如。2'=98,。2 '位于第 2列,则查找/ ^2对应的值;根据 的值和所在的列, 从矩阵 R中查找对应的值, 如 =56, Ω3 '位于第 3 列, 则查找 对应的值; 根据 的值和所在的列, 从矩阵 R中查找 对应的值, 如。4'=36, 。4 '位于第 4列, 则查找 ¾4对应的值; 根据 Ω5 '的 值和所在的列,从矩阵 R中查找对应的值, 如 =99, Ω5 '位于第 5列, 则查找 对应的值。 '=/¾+/¾2 +/¾+/¾4 +/^ "因为矩阵 从二项 分布, 因此, 也服从二项分布。 当 '为偶数, 则^ [ 169, 中 至少部分数据满足预定条件 d , 当 '为奇数, 则^ [ ^169,^ ]中至 少部分数据不满足预定条件 , 为偶数的概率为 1/2。
判断^ [ A2 -169, p,2 ]中至少部分数据是否满足预定条件 C2的方式 和判断 [^2-169, Pj2 ]中至少部分数据是否满足预定条件 C2的方式 相同, 因此, 如图 17所示, " "表示判断窗口 [ 2-169, 2]中至少 部分数据是否满足预定条件 C2时选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节, 分别用序号 170、 128、 86、 44和 2表示, 相邻 两个选择的字节之间相差 42个字节。 将序号 170、 128、 86、 44和 2的 字节" "分别转换成一个十进制数值,分别表示为 、 、 b3'、 和 b5'。因为 1个字节由 8位组成,所以每个字节 作为一个数值,则^、 、 b3'、 和 中的任一个 均满足 0≤V≤255。 、 、 、 和 组成 1 *5的矩阵。与判断窗口 wn [ Pi2 - 169, A2 ]中至少部分数据是否满足 预定条件 (:2使用相同的矩阵 R, 根据 的值和所在的列, 从矩阵 R中 查找对应的值, 如 =210, 位于第 1列, 则查找/ ½ 对应的值; 根 据 的值和所在的列, 从矩阵 R中查找对应的值, 如 =156, 位于 第 2列, 则查找 对应的值; 根据 的值和所在的列, 从矩阵 R中查 找对应的值,
Figure imgf000073_0001
位于第 3列, 则查找 对应的值; 根据 的值和所在的列,从矩阵 R中查找对应的值,如 =60, V位于第 4列, 则查找¾4对应的值; 根据 的值和所在的列, 从矩阵 R中查找对应 的值, 如 =90, 位于第 5列, 则查找¼5对应的值。 +/¾56,2 + + 4 + 5 ,与 的判断条件相同,当 '为偶数,则 Wj2 [Pj2-I69,pj2] 中至少部分数据满足预定条件 C2, 当 '为奇数, 则^ ^[^-Ιό^^] 中至少部分数据不满足预定条件 C2 , 为偶数的概率为 1/2。
同理, 判断 Wl3 [Pi3-I69,pi3 ]中至少部分数据是否满足预定条件 C3 的方式与判断 [ 3
Figure imgf000074_0001
]中至少部分数据是否满足预定条件 C3 的方式相同, 同理, 判断 ^.4[^4-169,^4]中至少部分数据是否满足预 定条件 C4、判断 W [ P]5 - 169, ]中至少部分数据是否满足预定条件 C5、 判断^ [ -169, ]中至少部分数据是否满足预定条件 C6、判断
[ Pjl-\69, Pjl ]中至少部分数据是否满足预定条件 C7、判断 [ Pjg -169, 8]中至少部分数据是否满足预定条件 C8、判断^ [ 9-169, 9]中至 少部分数据是否满足预定条件 C9、判断 WjW [i -169, 。]中至少部分 数据是否满足预定条件(^。和判断 ^^[;^-169, J中至少部分数据 是否满足预定条件 Cu , 在此不再赘述。
以图 5所示的实施方式为例,提供了一种判断窗口 Wiz [ Piz-Az, Pi2 + BZ]中至少部分数据是否满足预定条件 ^的方法, 本实施例中使用 随机函数判断窗口 Wiz [ Piz-Az, Pi +Bz]中至少部分数据是否满足预定 条件 Cz, 根据在去重服务器 103上预设的规则, 为潜在分割点 确定 点 及 对应的窗口^ - 169, ] , 判断^ - 169, ]中至少部分 数据是否满足预定的条件 ,如图 16所示, ^表示窗口^ [ 7;1-169, 7;1], 为判断 Wn [ -169, ]中至少部分数据是否满足预定条件 C, , 选择 5个 字节, 图 16中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择 的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、
127、 85、 43和 1的字节 "國"分别转换成一个十进制数值, 分别表示 为 Ωι、 α23、 《4和 。 因为 1个字节由 8位组成, 所以每个字节 "國" 作为一个数值,则 I γ、 CI 2、 X 、 I ^和 5中的任一个 均满足 0≤ ≤255。
和《5组成 1 *5的矩阵。 从服从二项分布的随机数中选 择 256*5个随机数, 组成矩阵 R, 表示为: ,从服
Figure imgf000075_0001
从二项分布的随机数中选择 256*5个随机数, 组成矩阵 G, 表示为:
Figure imgf000075_0002
§255,5 §255,5 " ' §255,5
根据 Ωι的值和所在的列, 如^ =36, Ωι位于第 1列, 则从矩阵 R中 查找查找 ¾对应的值, 从矩阵 G中查找 g36;1对应的值; 根据《2的值和 所在的列, 如《2=48, «2位于第 2列, 则从矩阵 R中查/48,2对应的值, 从矩阵 G中查找 g48,2对应的值; 根据 3的值和所在的列, 如^=26, 3 位于第 3列, 则从矩阵 R中查找 ¾,3对应的值, 从矩阵 G中查找 6,3对 应的值; 根据《4的值和所在的列, 如《4 =26, «4位于第 4列, 则从矩阵 R中查找 ¾,4对应的值, 从矩阵 G中查找 g2M对应的值; 根据 5的值和 所在的列,如《5=88, «5位于第 5列,则从矩阵 R中查找 ¾,5对应的值, 从矩阵 G中查找 g8 对应的值。 = h36, + Λ48>2 + Λ26;3 + h26A + ,因为矩阵 从二项分布, 因此, S也服从二项分布; =g36 +g48,2 +g263 +g2M + g88 5 , 因为矩阵 G服从二项分布, 因此 g也服从二项分布。 当 ¾g 中有 1个为偶数, 则 ^ [; ¾ - 169 , ]中至少部分数据满足预定条件 , 当 和 均为奇数 , 则^ [; ¾ - 169, ]中至少部分数据不满足预定条 件 表述按照上述方法获得的 和 g中有 1个为偶数。因为 和 均服从二项分布, 因此 ^为偶数的概率为 1/2, 为偶数的概率为 1/2, S和 中有 1个为偶数的概率为 1-1/4=3/4, 因此, ^ [^-169,^] 中至少部分数据满足预定条件 <^的概率为 3/4。 在图 5所示实施例中, wn [^-169,^]中至少部分数据满足预定条件 。 在图 5所示的实施方 式中,在 ^ [ - 169, ] 、 2 [ A2 - 169, A2 ]、 ^[ ¾ - 169, 3 ]、 4 [ A4 - 169, pi4] wi5[pl5- 69,Pi5], wi6[pi6-\69,Pi6 . wi7[pi7-^9,pi7], ^8[¾-169, ]、 Wi9[pi9-l69,Pi9], ^。[^。-169,^。]和^ 1 [; ^u-169,^]中, 各窗口 大小相同,即窗口大小均为 169字节, 同时判断窗口中至少部分数据是 否满足预定条件的方式也相同,具体见上述判断^ [ - 169, ]中至少 部分数据是否满足预定条件 (^的描述。 因此, 如图 16所示, " "表示 判断窗口 Wn [Pi2 -169, Pi2 ]中至少部分数据是否满足预定条件 C2时分别 选择的 1个字节, 在图 16中, 分别用序号 170、 128、 86、 44和 2表示, 相邻两个选择的字节之间相差 42个字节。 将序号 170、 128、 86、 44 和 2的字节 " "分别转换成一个十进制数值,分别表示为 、 H 和 。因为 1个字节由 8位组成,所以每个字节 "作为一个数值, 则 bt、 b2、 b3、 b4和 b5中的任一个 bs均满足 0≤ <255。 、 b3、 b4 和 组成 1*5的矩阵。 本实施方式中, 判断各窗口中至少部分数据是 否满足预定条件的方式相同,因此仍然使用相同矩阵 R^PG。根据 的 值和所在的列, 如 =66, 位于第 1列, 则从矩阵 R中查找 61对应的 值,从矩阵 G中查找 g66对应的值;根据 的值和所在的列,如 =48, 位于第 2列,则从矩阵 R中查找 2对应的值,从矩阵 G中查找 ,2对 应的值; 根据¾的值和所在的列, 如63=99, ¾位于第 3列, 则从矩阵 R中查找 ¾,3对应的值, 从矩阵 G中查找 g99,3对应的值; 根据 ¾的值和 所在的列, 如¾=26, ¾位于第 4列, 则从矩阵 R中查找 /26,4对应的值, 从矩阵 G中查找 g2M对应的值;根据 的值和所在的列,如 =90, b5位 于第 5列, 则从矩阵 R中查找 ¾,5对应的值, 从矩阵 G中查找 g9。,5对应 的值。 w 2+ W "因为矩阵 从二项分布,因此, 也服从二项分布。 g=g66 + g48,2 + g99,3 + g2M+g9。,5, 因为矩阵 G服从 二项分布, 因此, g也服从二项分布。 当 ^和^中有 1个为偶数, 则 2 [ Pn -169, pi2 ]中至少部分数据满足预定条件 C2 , 当 Slhg均为 奇数,则 ^[ ^-ΐό^^]中至少部分数据不满足预定条件 c2, s2h^s2g 中有 1个为偶数的概率为 3/4。 在图 5所示实施例中, Wi2[pl2-^9,Pi2] 中至少部分数据满足预定条件 C2。 使用同样的规则, 分别判断^ -169, Pi3 ]中至少部分数据是否满足预定条件 C3、 判断 4 [ Pi4 -169, Pi4 ] 中至少部分数据是否满足预定条件 C4、 判断 wi5 [ Pl5 - 169, 5 ]中至少部 分数据是否满足预定条件 C5、 判断^ [Pi6 -169, Pl6 ]中至少部分数据是 否满足预定条件 C6、 判断 Wi7 [ A7 - 169, Pn ]中至少部分数据是否满足预 定条件 C7、 判断 [ -169, ]中至少部分数据是否满足预定条件 C8、 判断 9 [ Pn -169, Pi9 ]中至少部分数据是否满足预定条件 C9、 判断 ^。
[; ¾。 - 169, 。 ]中至少部分数据是否满足预定条件 ς。和判断^ 1 [; ¾ - ^A.J中至少部分数据是否满足预定条件 图 5所示的实施方式 中, 5[A-169,¾]中至少部分数据不满足预定条件 C5, 从点 ft5沿着 数据流分割点查找方向跳跃 11个字节,在第 11个字节的结束位置获得 当前潜在分割点 kj ,如图 6所示,根据在去重服务器 103上预设的规则, 为潜在分割点 确定点 1 点 i对应的窗口 [ 「169, 判断 窗口 ^ [ P -16 , Pjl ]中至少部分数据是否满足预定条件 的方式与 判断窗口^ - 169, ]中至少部分数据是否满足预定条件 的方式 相同, 因此如图 17所示, ^表示窗口 ^ [^-169,^], 为判断
- 169, i ]中至少部分数据是否满足预定条件 图 17中序号为 169、
127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻两个选择 的字节之间相差 42个字节。将序号为 169、 127、 85、 43和 1的字节 "■" 分别转换成一个十进制数值, 分别表示为 Ωι '、 α2'、 α3' . α4 '和《5 '。 因为 1个字节由 8位组成,所以每个字节 "國 "作为一个数值,则 '、 2'、 α3'、 α4 '和 5'中的任一个 均满足 0≤ ≤255。 、 α2'、 α3' , α4 '和
«5 '组成 1*5的矩阵。使用与判断窗口 ^[^-169,^]中至少部分数据是 否满足预定条件<^相同的矩阵 R和 G, 分别表示为:
Figure imgf000078_0001
5 J
根据 的值和所在的列, 如" =16, 位于第 1列, 则从矩阵 R中查 找 ^对应的值,从矩阵 G中查找 gl6>1对应的值;根据 2 '的值和所在的 列, 如 =98, 2 '位于第 2列, 则从矩阵 R中查找 ¾,2对应的值,从矩 阵 G中查找 g98,2对应的值; 根据《3 '的值和所在的列, 如《3'=56, «3 '位 于第 3列,则从矩阵 R中查找 对应的值,从矩阵 G中查找 g 3对应的 值; 根据 的值和所在的列, 如 =36, «4 '位于第 4列, 则从矩阵 R 中查找 hi6A对应的值,从矩阵 G中查找 g3M对应的值; 根据 α5'的值和 所在的列, 如《5' =99, «5'位于第 5列, 则从矩阵 R中查找 ¾,5对应的 值,从矩阵 G中查找 g99,5对应的值。 ¾1' = /¾1 + ½,2 + ½,3 + ½6,4 + ¾,5,因 为矩阵 RI良从二项分布, 因此, A '也服从二项分布; ^^ ^+^^十
+ ¾,5 '因为矩阵 G服从二项分布,因此 '也服从二项分布。 当 和 '中有 1个为偶数, 则 ^[ 169, 中至少部分数据满足 预定条件 当^ '和 '均为奇数, 则^ [ 169, 中至少部分数 据不满足预定条件 C, , slh '和 '有 1个为偶数的概率为 3/4。
判断^ [ -169, A2 ]中至少部分数据是否满足预定条件 C2的方式 和判断 Wj2 [p -\69, Pj2 ]中至少部分数据是否满足预定条件 C2的方式 相同, 因此, 如图 17所示, 表示判断窗口 ^ ^ [ 2—169,^2]中至少 部分数据是否满足预定条件 C2时选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 在图 17中, 分别用序号 170、 128、 86、 44和 2 表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、
44和 2的字节 " "分别转换成一个十进制数值,分别表示为 、 、 、 '和 '。 因为 1个字节由 8位组成, 所以每个字节 ' ^"作为一个 数值, 则 V、 V、 V、 和 中的任一个 均满足 0≤ ≤255。 、 b2'、 、 和 组成 1*5的矩阵。 使用与判断窗口^ [ ¾-169, ¾]中 至少部分数据是否满足预定条件 (:2相同的矩阵 R和 G, 根据 的值和 所在的列, 如 V=210, 位于第 1列, 则从矩阵 R中查找 对应的 值,从矩阵 G中查找 g21;1对应的值; 根据 的值和所在的列, 如 =156, 位于第 2列, 则从矩阵 R中查找 ¾6,2对应的值,从矩阵 G中查 找 g,2对应的值; 根据 的值和所在的列, 如 =144, 位于第 3 列, 则从矩阵 R中查找 /?144,3对应的值,从矩阵 G中查找 g144,3对应的值; 根据 的值和所在的列, 如 V=60, 位于第 4列, 则从矩阵 R中查 找/ ^。,4对应的值,从矩阵 G中查找 g6。,4对应的值;根据 的值和所在的 歹 |J, 如 =90, 位于第 5列, 则从矩阵 R中查找 ¾。,5对应的值,从矩 阵 G中查找 g90;5对应的值。 S2h' = h2 + hl56 + 3 + 4 + ,
Figure imgf000079_0001
+ g156,2 + g144,3 + g6。,4 + 5。当 和 '中有 1个为偶数,则 Wj2 [Pj2-I69,pj2] 中至少部分数据满足预定条件 C2 , 当 '和 '均为奇数, 则 Wj2 [ p]2 -169, 2]中至少部分数据不满足预定条件 C2, 和 <S2g '中有 1个为偶 数的概率为 3/4。 同理, 判断 wi3 [pi3-169,Pi3 ]中至少部分数据是否满足预定条件 3 的方式与判断 ·3 [ 3 -169, 3 ]中至少部分数据是否满足预定条件 C3 的方式相同, 同理, 判断 ^.4[ 4-169, 4]中至少部分数据是否满足预 定条件 C4、判断 W [ Pj5 - 169, 5 ]中至少部分数据是否满足预定条件 C5、 判断^ [ 6-169, 6]中至少部分数据是否满足预定条件 C6、判断
[ 7 -169, Pjl ]中至少部分数据是否满足预定条件 C7、判断 WjS [ P]i -169, 8 ]中至少部分数据是否满足预定条件 C8、判断^ [ 9-169, 9]中至 少部分数据是否满足预定条件 C9、判断 Wjl0 [Pjl0-169, ; ]中至少部分 数据是否满足预定条件(^。和判断 Λίι]中至少部分数据 是否满足预定条件 Cu , 在此不再赘述。
以图 5所示的实施方式为例,提供了一种判断窗口 Wiz [ Piz-Az, Piz + Bz]中至少部分数据是否满足预定条件 ^的方法, 本实施例中使用 随机函数判断窗口 Wiz [ Pi2-Az, Pi +Bz]中至少部分数据是否满足预定 条件 Cz, 根据在去重服务器 103上预设的规则, 为潜在分割点 确定 点 及 对应的窗口^ - 169, ] , 判断^ - 169, ]中至少部分 数据是否满足预定的条件 ,如图 16所示, ^表示窗口^ -169, 7;1], 为判断 Wn [ P -169, ]中至少部分数据是否满足预定条件 C, , 选择 5个 字节, 图 16中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择 的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、
127、 85、 43和 1的字节 "國 "依次看成 40个位,分别表示为 Ωι、 α2. 3、 α4...α40 1
Figure imgf000080_0001
at
=1时, =1, 根据",与 ^对应关系, 生成^、 va2. va3. ^… 。。 从服从正态分布的随机数中选择 40个随机数, 分别表示为: h2、 H Sa =Val * hx+Va2 * h2+Va3 * h3+Va4 * A4 +...+Va40 * h400因为 h2, h3、 A4.../z4。月良从正态分布, 因此, S。也月良从正态分布。 当 S。为正 数, 则 ^[^-169, ^]中至少部分数据满足预定条件 当 S。为负数 或 0, 则^ -169,P;1]中至少部分数据不满足预定条件 S。为正数 的概率为 1/2。 在图 5所示实施例中, ^[^-169,^]中至少部分数据满 足预定条件 。 如图 16所示, " "表示判断窗口^ [A2-169,A2]中至 少部分数据是否满足预定条件 C2时分别选择的 1个字节, 在图 16中, 分别用序号 170、 128、 86、 44和 2表示, 相邻两个选择的字节之间相 差 42个字节。 将序号 170、 128、 86、 44和 2的字节 依次看成 40 个位, 分别表示为 、 b2、 63、 b4... 。。 bp b2、 b3, b4... 。中的任 一 bt, 当^ =0时, Vbt=-1, 当 =1时, Vb=U 根据 与 ^对应关系, 生 成 ^、 vb2、 vb3. vb4...vb40. 判断窗口^ 中至少部分数据 是否满足预定条件 的方式与判断窗口^ [ Pi2 -169, Pi2 ]中至少部分数 据是否满足预定条件 C2的方式相同, 因此, 使用相同的随机数: ^、 h3、 h4...h40, +^2*½+^3*/3+^4*/4+·.·+^。*/ζ4。。 因 为 h2、 h3、 A4.../z4。服从正态分布, 因此, 也月良从正态分布。 当 为正数,则 wn [Pi2 - ,Pi2 ]中至少部分数据满足预定条件 C2,当 为 负数或 0,则^ 中至少部分数据不满足预定条件 C2, 为 正数的概率为 1/2。 在图 5所示实施例中, 2[ ¾-169, ¾]中至少部分 数据满足预定条件 C2。 使用同样的规则, 分别判断 ^[ ¾-169,;¾]中 至少部分数据是否满足预定条件 C3、 判断^ [p,4 -169,p,4 ]中至少部分 数据是否满足预定条件 C4、 判断 wi5 [ Λ5 -169, Ρι5 ]中至少部分数据是否 满足预定条件 C5、 判断 Wi6 [ Pi6 -169, Pi6 ]中至少部分数据是否满足预定 条件 C6、 判断 Wn [ Pn -169, Pil ]中至少部分数据是否满足预定条件 C7、 判断 WlS [ Pa - 169, ]中至少部分数据是否满足预定条件 C8、判断 9 [ Pi9 -169, Pi9 ]中至少部分数据是否满足预定条件 C9、 判断 Wm [Pm-I69,pm ] 中至少部分数据是否满足预定条件 C10和判断^ u [ Pm -169, Pm ]中至少 部分数据是否满足预定条件 Cu。图 5所示的实施方式中, 5 [ Pl5-169, Pi5 ] 中至少部分数据不满足预定条件 C5 ,从点 Pi5沿着数据流分割点查找方 向跳跃 11个字节, 在第 11个字节的结束位置获得当前潜在分割点 , 如图 6所示,根据在去重服务器 103上预设的规则,为潜在分割点 确 定点 、 点 对应的窗口 判断窗口 ^[^-169,^] 中至少部分数据是否满足预定条件 的方式与判断窗口 ^ [ - 169, ]中至少部分数据是否满足预定条件 Cx的方式相同, 因此如图 17所 示, ^表示窗口^ [ 「169, 为判断^ [ 169,^ J中至少部分 数据是否满足预定条件 Cx , 为判断 ΐνβ [ Pjl -169, Pjl ]中至少部分数据是 否满足预定条件 选择 5个字节, 图 17中序号为 169、 127、 85、 43 和 1的字节 "國 "分别表示选择的 1个字节, 相邻两个选择的字节之间 相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "■"依次看 成 40个位, 分别表示为
"4。'中的任一 当《,'=0时, vat, =-1, 当 =1时, /=1,根据 ^ '与^ / 对应关系, 生成 ,、
Figure imgf000082_0001
判断窗口^ [ 169, 中至少部分数据是否满足预定条件 的方式与判断窗口 ^ [ - 169, ]中至少部分数据是否满足预定条件 Q的方式相同, 因此使用相同 的随机数: h2、 H s =vaX^ +να2^ h2+va,^ h,+vaA^ hA +...+ a4Q'*/½。 因为 、 h2、 h3. / .. /z4。服从正态分布, 因此, '也 服从正态分布。 当 '为正数, 则^ [ 「169, 中至少部分数据满足 预定条件 当 '为负数或 0, 则^ [ 169, 中至少部分数据不 满足预定条件 '为正数的概率为 1/2。 判断^ [ A2 -169, Pi2 ]中至少部分数据是否满足预定条件 C2的方式 和判断 ·2 [ 2 - 169, Pj2 ]中至少部分数据是否满足预定条件 C2的方式 相同, 因此, 如图 17所示, "; "表示判断窗口 ^.2[ 2-169, 2]中至少 部分数据是否满足预定条件 C2时选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 在图 17中, 分别用序号 170、 128、 86、 44和 2 表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、
44和 2的字节 "^"依次看成 40个位,分别表示为 V、 、 、 V... 。'。
V、 V、 W、 '... 。'中的任一6/, 当 =o时, ^'=-1, 当 =l时, =1, 根据 与 '对应关系, 生成 '、 vb2'、 vb3'、 νΜ ..νΜϋ 判断^ [ Pi2 -169, Pi2 ]中至少部分数据是否满足预定条件 C2的方式和判断 Wj2 [ 2-169, 2]中至少部分数据是否满足预定条件 C2的方式相同, 因此, 使用相同的随机数: h2、 h3、 h4...h40 ,
Figure imgf000083_0001
+...+ M。'*/½。 因为 ^、 、 h3, / 。服从正态分布, 因此, 也服从正态分布。 当 为正数, 则^;2 [ -169, 2]中至少 部分数据满足预定条件 C2, 当 '为负数或 0, 则 ^.2[ 2-169, 2]中至 少部分数据不满足预定条件 C2 , Sb、为正数的概率为 1/2。
同理, 判断 wi3 [pi3-169,Pi3 ]中至少部分数据是否满足预定条件 3 的方式与判断 ^[ 3 -169, 3 ]中至少部分数据是否满足预定条件 C3 的方式相同, 同理, 判断 ^.4[^4-169,^4]中至少部分数据是否满足预 定条件 C4、判断 W [ Pj5 - 169, ]中至少部分数据是否满足预定条件 C5、 判断^ [ -169, ]中至少部分数据是否满足预定条件 C6、判断
[ Pj7-169, Pj7 ]中至少部分数据是否满足预定条件 C7、判断 WjS [ PjS -169, 中至少部分数据是否满足预定条件 C8、判断
Figure imgf000083_0002
9]中至 少部分数据是否满足预定条件 C9、判断 Wjl0 [Pjl0-169, ; ]中至少部分 数据是否满足预定条件(^。和判断 Λίι]中至少部分数据 是否满足预定条件 Cu , 在此不再赘述。
仍然以图 5所示实施方式为例, 提供了一种判断窗口^ [ Pi2-Az, Pi2+Bz]中至少部分数据是否满足预定条件 ^的方法, 本实施例中使 用随机函数判断窗口 Wiz [ ΡίΓΑζ, Ρί + Βζ]中至少部分数据是否满足预 定条件 Cz, 根据在去重服务器 103上预设的规则, 为潜在分割点 确 定点 及 对应的窗口^ - 169, ], 判断^ - 169, ]中至少部 分数据是否满足预定条件 ,如图 16所示, ^表示窗口^ [ 7;1-169, 7;1], 为判断 Wn [ -169, ]中至少部分数据是否满足预定条件 C, , 选择 5个 字节, 图 16中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择 的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、
127、 85、 43和 1的字节 "國"转换成 1个十进制数,范围为 0-( 2M0-1 ) , 使用均匀分布随机数生成器为 0- ( 2 0-1 )中的每一个十进制数生成 1 个指定值, 记录 0- (2Λ40-1) 中的每一个十进制数与指定值之间的对 应关系 R, —旦指定则该十进制数对应的指定值就不变, 该指定值服 从均匀分布, 如果该指定值为偶数, 则 ^[^-169,^]中至少部分数 据满足预定条件 如果该指定值为奇数, 则 -169,^]中至少 部分数据不满足预定条件 , 表示按照上述方法获得的指定值为偶 数。 因为均匀分布的随机数为偶数的概率为 1/2, 因此, -169, ι] 中至少部分数据满足预定条件 的概率为 1/2。 在图 5所示的实施方式 中, 使用同样的规则, 分别判断^ [A2-169,A2]中至少部分数据是否 满足预定条件 C2 , 判断^ [A,-169,A,]中至少部分数据是否满足预定 条件 C3、 判断 4 [ Pi4 -169, Pi4 ]中至少部分数据是否满足预定条件 C4、 判断^ 中至少部分数据是否满足预定条件 C5 , 在此不再 赘述。
当 ^5[ ¾-169,¾]中至少部分数据不满足预定条件 C5 , Pi5沿 着数据流分割点查找方向跳跃 11个字节,在第 11个字节的结束位置获 得当前潜在分割点 , 如图 6所示,根据在去重服务器 103上预设的规 则, 为潜在分割点 确定点 、 点;^对应的窗口
判断窗口 ^ [^-169, Pjl ]中至少部分数据是否满足预定条件 的方 式与判断窗口 ^[; ¾ - 169, ]中至少部分数据是否满足预定条件 C,的 方式相同, 因此, 使用相同的 0- (2M0-1 ) 中的每一个十进制数与指 定值之间的对应关系 R, 如图 17所示, ^表示窗口 ^^[^-169,^], 为判断 β [ Pjl -169, Pjl ]中至少部分数据是否满足预定条件 C, , 选择 5 个字节, 图 17中 "國"表示选择的 1个字节, 相邻两个选择的字节 "國" 之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "■"转换 成 1个十进制数,在 R查找该十进制数对应的指定值,如果该指定值为 偶数, 则 中至少部分数据满足预定条件 如果该指 定值为奇数, 则 [ 169, 中至少部分数据不满足预定条件 因为均匀分布的随机数为偶数的概率为 1/2, 因此, ^^[^-169,^. J 中至少部分数据满足预定条件 <^的概率为 1/2。同理,判断^ [A2-169,
Pl2 ]中至少部分数据是否满足预定条件 C2的方式和判断 JVj2 [ Pj2 - 169, 2]中至少部分数据是否满足预定条件 C2的方式相同, 判断^ [A
- 169, pi3 ]中至少部分数据是否满足预定条件 C3的方式与判断 Wj3 [ Pj3
-169,^]中至少部分数据是否满足预定条件 C3的方式相同, 同理, 判 断 [ 4-169, ]中至少部分数据是否满足预定条件 C4、判断^ [Pj5
-169, 5]中至少部分数据是否满足预定条件 C5、判断 ^[ 6-169, Pj6] 中至少部分数据是否满足预定条件 C6、 判断^ [ -169, 7]中至少 部分数据是否满足预定条件 C7、 判断^ [^-169, ]中至少部分数 据是否满足预定条件 C8、 判断 [ -169, 中至少部分数据是否 满足预定条件 C9、判断 WjW [Ρβ0-169, pjW ]中至少部分数据是否满足预 定条件 C1()和判断 [ n -169, Pjn ]中至少部分数据是否满足预定条 件 Cu, 在此不再赘述。
图 1所示的本发明实施例中的去重服务器 103 ,是指能够实现本发 明实施例所描述的技术方案的装置, 如图 18所示, 通常包括中央处理 单元、 主存储器以及输入输出接口。 中央处理单元、 主存储器与输入 输出接口之间相互通信, 主存储器存储可执行指令, 中央处理单元执 行主存储器中存储的可执行指令, 从而执行特定的功能, 如本发明实 施例图 4至图 17所描述的查找数据流分割点。 因此, 如图 19所示, 根 据图 4至图 17所示的本发明实施例,去重服务器 103,在去重服务器 103 上预设有规则, 所述规则为: 为潜在分割点 确定 M个点 、 点 对 应的窗口 ^[ -4, + ]和窗口 Wx[ px-Ax, p + ]对应的预定条件 Cx , 其中, X为 1到 M连续的自然数, M≥2, 4和^为整数; 去重服 务器 103包括确定单元 1901和判断处理单元 1902。其中,确定单元 1901, 用于用于执行步骤 a ): a)依据所述规则为当前潜在分割点 确定点 piz 及所述点 piz对应的窗口 Wiz [ ρίζζ, Pi + Bz] , i和 z为整数, 并且 1 < z <M; 判断处理单元 WO2,用于所述窗口 Wiz [ ρίζζ, piz+Bz]中至少部 分数据是否满足预定条件 Cz
当所述窗口 Wiz [ piz-Az, ρίζζ]中至少部分数据不满足所述预定 条件 Cz, 从所述点 沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U,N*U不大于 II Bz II +maxx ( II Ax II + II (k Pix) II ), 获得新的潜在分割点 ,则所述确定单元为所述新的潜在分割点执行步 骤 a); 当所述当前潜在分割点 的 M个窗口中的每一个窗口 Vix [ Pis- 4, + ]中至少部分数据满足预定条件 Cx, 则所述当前潜在分割 点^为数据流分割点。
进一步地,所述规则还包括:至少两个点 pePf ,满足条件 Ae = Af , B =B Ce = Cf 。 进一步地, 所述规则还包括: 所述至少两个点 和 pf , 相对于所述潜在分割点 k,在所述数据流分割点查找反方向上。
进一步地, 所述规则还包括: 所述至少两个点 和 ? ,之间的距离 为 1个 U。 述窗口 Wiz [ pi2-Az, piz+Bz]中至少部分数据是否满足所述预定条件 Cz。具体地, 所述判断处理单元 1902具体用于使用 hash函数判断所述 窗口 [ pi2-Az, piz+ Bz]中至少部分数据是否满足所述预定条件 Cz
Wiz [ ρίΓΑζ, piz+Sz]中至少部分数据是否满足所述预定条件 Cz, 具体 包括:
在所述窗口 Wiz [ piz-Az, Pi +Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为 c^ ... am& , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当。 =1时,
Figure imgf000087_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照 „与 V 的转换关系得到矩阵 ,所述矩阵 ^表示为: , 从服务正态分布的随机数中选
Figure imgf000088_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000088_0002
Λ 0 ... h
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 的随机数相乘,然后求和得到一个值,具体表示为 =^ * + ^ "K,2+.-.+ Vam^hm^ 同理, 获得 Sal、 sa2.. saF , 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 Κ为偶数,则所述窗口 Wiz [ Pi2-A2, Pi +Bz]中至少部分数据满足所述预定条件 Cz
进一步地,所述判断处理单元 1902用于当所述窗口^ [Αζ-^,Ρ;ζ + Sz]中至少部分数据不满足所述预定条件 , 从所述点 沿所述数据 流分割点查找方向跳跃 N个数据流分割点最小查找单位 U,获得所述新 的潜在分割点,所述确定单元 1901为所述新的潜在分割点执行步骤 a ) , 根据所述规则, 为所述新的潜在分割点确定的点 Αε对应的窗口 W [ Pic - Ac , Pic + ]的左边界与所述窗口 [ Az - z , p,z + Sz ]的右边界重合 或者为所述新的潜在分割点确定的所述窗口 Wfc [ pic - Ac , pic + ^ ]的左 边界位于所述窗口^ [Ρ;ζ-4,Ρ;ζ + ]范围之内; 其中, 为所述新的潜 在分割点确定的所述窗口 W,JA-4,A +^]是根据所述规则, 为所述 新的潜在分割点确定的 M个点按照数据流查找方向获得的序列中排 序第一的点。
根据图 4至图 17所示的本发明实施例提供的基于服务器查找数据 流分割点的方法中, 为潜在分割点 ki确定点 pix及点 pix的窗口 Wix [ Pix -
4, Pix +Bx], 其中, X分别为 1到 M连续的自然数, M≥2, 可以并行判 断 M个窗口中每一个窗口中至少部分数据是否满足预定条件 Cx ,或者 依次判断窗口中至少部分数据是否满足预定条件, 也可以判断窗口
Wn [Ρη- , Ρπ + Α]中至少部分数据满足预定条件<^时, 再判断 ·2α2, 中至少部分数据满足预定条件 时, 直到判断^
[pim-Am , Am+ m]中至少部分数据满足预定条件 Cm。 实施例中其他窗 口的判断与此相同, 不再赘述。
另外, 根据根据图 4至图 17所示的本发明实施例, 实际应用中, 在去重服务器 103上预设有规则,所述规则为: 为潜在分割点 /1确定 M 个点 px、 点 px对应的窗口 Wx[px-Ax, p + Sx]和窗口 Wx[ P - Ax, p + Bx] 对应的预定条件 X分别为 1到 M连续的自然数, M≥2, 在该预设规 则中, 、 A2. 4… 可以不全部相等, β β2、 … 可以不全 部相等, c C2、 C3...CM也可以不全部相同。 在图 5所示的实施方式 中,在窗口 ^ [AL-169,AL] 、 Wl2 [pl2-l69,Pl2], Wn[Pa-\69,p . WlA [pl4-l69,Pl4]. Wl5[pl5-l69,Pl5]. Wl6 [pl6-l69,Pl6]. Wn [ Pl7-\69, Pl7]. Wa [ A8-1 9, A8]、 Wl9 [ Pl9 -169, A9 ]、 Wm [ Pm-\69, Al0]和 Wm[ Pm-169, p ]中, 各窗口大小相同,即窗口大小均为 169字节, 同时判断窗口中 至少部分数据是否满足预定条件的方式也相同,具体见上述判断 ^
[ -169, Pn ]中至少部分数据是否满足预定条件 的描述, 但在图 11 所示的实施方式中, ^[^-1 9,^,,] 、 ^[Α·2-169,Α·2]、 [ , -1 9, Wl4 [pl4- 69,Pl4], Wl5[Pli-\69,Pli}. Wl6 [pl6- 69,Pl6], Wl7[Pll-\69, A7]、 ^[Α8-169,Α·8]、 Wl9 [Pl9 -169, Pl9]. ^。[ Af ^^o]与^ ^[An - 182, All ]窗口大小可以不相同,同时判断窗口中至少部分数据是否满 足预定条件的方式也可以不相同。 在所有实施例中, 根据在去重服务 器 103上预设的规则, 判断窗口 n中至少部分数据是否满足预定条件 的方式与判断窗口 ^中至少部分数据是否满足预定条件(^的方式 必然相同, 判断^中至少部分数据是否满足预定条件 c2的方式与判 断 wj2中至少部分数据是否满足预定条件 c2的方式必然相同 ...判断窗 口 中至少部分数据是否满足预定条件 CM的方式与判断窗口^中 至少部分数据是否满足预定条件 cM的方式必然相同。 在此不再赘述, 同时根据图 4至图 17所示的本发明实施例, 虽然均以 M=ll为例, 但根 据实际需要, M的取值并不限于 11, 本领域技术人员根据本发明实施 例中的描述, 确定 M的值。
根据图 4至图 17所示的本发明实施例,在去重服务器 103上预设有 规则, ka、 k kj、 和 为沿着数据流分割点查找方向查找分割点 时获得的潜在分割点, ka、 kt、 、 和 都依据该规则。 本发明实 施例中的窗口 ^ [ - 4 , + ]表示一个特定范围,在该特定范围选择 数据以判断这些数据是否满足预定条件 Cx , 具体地, 可以在该特定范 围内选择部分数据,也可以选择全部数据以判断这些数据是否满足预 定条件 Cx。 本发明实施例中具体使用的窗口概念可参照窗口 ^ [ - AX,PX + BX], 在此不再赞述。
根据图 4至图 17所示的本发明实施例, 窗口 ^ [ - 4 , + ]中, ( px-Ax )和 ( px+Bx )表示该窗口 [ ]的两个边界, 其中 ( )表示窗口 [ A- 4, A + ]相对于点 ^位于数据流分 割点查找反方向的边界, ( px + Bx )表示窗口 J -4, + ]相对 于点 ^位于数据流分割点查找方向的边界。具体地,在本发明实施例 中, 在图 3至图 15所示的数据流分割点查找方向为从左向右, 则其中 ( Ρχχ )表示窗口 ^[^-4, ^+ ]相对于点 ^位于数据流分割点 查找反方向的边界(即左边界) , ( + ^ )表示窗口 + ]相对于点 位于数据流分割点查找方向的边界(即右边界) 。 如果在图 3至图 15所示的数据流分割点查找方向为从右向左, 则其中 ( Px - Ax )表示窗口 ^ [ ^- 4, ]相对于点^位于数据流分割点 查找反方向的边界(即右边界) , ( + ^ )表示窗口 ^ [
+ ^]相对于点 ^位于数据流分割点查找方向的边界(即左边界) 。
本领域普通技术人员可以意识到,结合本发明实施例描述的各示 例的单元及算法步骤,本发明实施例的关键特征可以与其他技术相结 合, 以更为复杂的形式呈现, 但仍会包含本发明的关键特征。 在真实 环境中可能使用备用分割点, 例如一种实施方式为, 根据在去重服务 器 103上预设的规则, 为潜在分割点 确定 1 1个点 A , X为 1到 1 1连续 的自然数,确定 px对应的窗口 [ + ]及窗口 +
^]对应的预定条件 Cx , 当 1 1个窗口中每一个窗口
中至少部分数据均满足预定条件 cx ,则潜在分割点 为数据流分割点, 当超过设定的最大数据块时, 仍未查找到分割点, 这时可能使用备用 的预设规则,备用的预设规则与在去重服务器 103上预设的规则类似, 备用的预设规则为: 例如为潜在分割点 确定 10个点 , X为 1到 10 连续的自然数,确定 px对应的窗口 J 及窗口
+^]对应的预定条件 , 当 10个窗口中每一个窗口 + ]中至少部分数据均满足预定条件 Cx , 则潜在分割点 为数据流分 割点, 当超过设定的最大数据块时, 仍未查找到数据流分割点时, 从 最大数据块的结束位置作为强制分割点。
在去重服务器 103上预设有规则,所述规则中为潜在分割点 k 确定 M个点, 并不一定要求先有一个潜在分割点 k, 可以通过确 定的 M个点来判断潜在分割点 k。
本发明实施例提供一种基于去重服务器查找数据流分割点的方 法, 如图 20所示, 包括:
在去重服务器 103上预设有规则,所述规则为: 为潜在分割点 /1确 定 M个窗口 [/t-4 +Sx]和窗口 + 对应的预定条件<^ , 其中, X为 1到 M连续的自然数, M≥2, 、 4和 为整数; 在图 3所示 的实施方式中, 关于 M的取值, 其中一种实现方式, M*U取值不大于 预设的两个相邻的数据流分割点之间的最大距离,即预设的数据块最 大长度。判断窗口 ffz[/t-^, /1+βζ]中至少部分数据是否满足预定条件 Cz, 其中, z为整数, l<z<M, ( k-Az )与 +Bz )分别表示窗口 ffz 的两个边界。 当判断任意一个窗口 ffz[/t -^, /1+βζ]中至少部分数据不 满足预定条件 Cz, 则从潜在分割点/ 1沿数据流分割点查找方向跳跃 N 个字节,N≤|| Bz II +max ( II 11)。其中, II Bz II表示 ffz[/Uz, k + Bz] 中 的绝对值, maxx( II II )表示 M个窗口中^绝对值中的最大值, 将在下面实施例中具体介绍 N取值的原理。 当判断 M个窗口中的每一 个窗口 [/t-4 +A]中至少部分数据满足预定条件 , 则潜在分割 点/ 1为数据流分割点。
具体地, 对当前潜在分割点 ., 依据所述规则, 执行以下步骤: 步骤 2001:依据所述规则为当前潜在分割点 ki确定对应的窗口^ [ kt -Az,kt + Bz], i和 z为整数,并且 1 <z<M;
步骤 2002:判断所述窗口 ^ [ -^, + ]中至少部分数据是否满 足预定条件 cz;
当所述窗口 iz [ kt - z Λ· +sz ]中至少部分数据不满足所述预定条 件 , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N 个数据流分割点最小查找单位 U, N*U不大于 II Βζ II +max ( II Ax || ), 获得新的潜在分割点, 执行步骤 2001 ;
当所述当前潜在分割点 的 M个窗口中的每一个窗口 4 Λ. + ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 ki为数 据流分割点。
进一步地,所述规则还包括: 至少两个窗口^ [ - ^ + ]与 wif
[krA^k. + Bf , 满足条件: \A +Be\=\Af + Bf\, C =Cf ; 进一步地, 所 述规则还包括: 4和 为正整数;更进一步地,所述规则还包括: 4-1=
Ar Be+i=Bf 。 其中, μβ+ I表示窗口^的大小, 表示窗口 的大小。
进一步地, 判断所述窗口^ [ -^Λ.+βζ]中至少部分数据是否 满足所述预定条件 cz,具体包括: 使用随机函数判断所述窗口^^ - z Λ. + βζ ]中至少部分数据是否满足所述预定条件 cz;更进一步地, 所 述使用随机函数判断所述窗口 wiz [ k, - z Λ· +βζ ]中至少部分数据是否 满足所述预定条件 Cz,具体为使用 hash函数判断所述窗口^
+ sz ]中至少部分数据是否满足所述预定条件 Cz
当所述窗口 Wiz [k -Az, Ζ\中至少部分数据不满足所述预定 条件 Cz,从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N个数据流分割点最小查找单位 U, 获得所述新的潜在分割点, 根据所 述规则, 为所述新的潜在分割点确定的窗口 W;Jk,-^,k,+^]的左边 界与所述窗口 JViz ik -Az, +Sz]的右边界重合或者为所述新的潜在 分割点确定的所述窗口 Wjl^-AA + ^]的左边界位于所述窗口^ [ - z, + Sz ]范围之内; 其中, 为所述新的潜在分割点确定的所述 窗口 Wjk,-4,k,+A]是根据所述规则, 为所述新的潜在分割点确定 的 M个窗口按照数据流查找方向获得的序列中排序第一的窗口。
本发明实施例中通过判断 M个窗口中某一个窗口中至少部分数 据是否满足预定条件, 来查找数据流分割点, 当某一个窗口中至少部 分数据不满足预定条件, 则跳过 N*U个长度, 其中, N*U不大于 II
Bz II +max ( II II ), 获得下一个潜在分割点, 提高了数据流分割点 查找效率。
在重复数据删除过程中, 为保证数据块大小均匀, 会考虑平均数 据块(也可以称为平均分块)大小, 即在满足最小数据块大小和最大 数据块大小限定的同时, 会确定平均数据块大小, 以保证获得的数据 块大小均匀。 窗口 d 4, +βχ]的个数 M与窗口 k+Bx] 中至少部分数据满足预设条件的概率这两个因素决定了找到数据流 分割点的概率 (以 P(n)表示) , 前者影响跳跃的长度, 后者影响跳跃 的概率, 二者共同影响平均分块大小。 一般而言, 在平均分块大小固 定时, wx[k-Ax, /t+sx]个数增加, 则单个窗口 +βχ]中至 少部分数据满足预定条件的概率也增加, 例如在去重服务器 103上预 设有规则,所述规则为:为潜在分割点 /1确定 11个窗口 k+Bx], x分别为 1到 11连续的自然数, 11个窗口中任一个窗口 k+Bx] 中至少部分数据满足预设条件的概率为 1/2。 而在去重服务器 103上预 设的另一组规则为: 为潜在分割点 k确定 24个窗口^ μ - 4 , k + Bx], x分别为 1到 24连续的自然数, 24个窗口中任一个窗口 , k+Bx] 中至少部分数据满足预设条件的概率 3/4, 具体窗口 k+Bx] 中至少部分数据满足预设条件的概率设定可参见判断窗口 , k
χ]中至少部分数据是否满足预设条件部分的描述。 窗口 k +βχ]的个数 M与窗口 +βχ]中至少部分数据满足的预设条件 的概率这两个因素决定 Ρ(η), Ρ (η)表示: 从数据流起始位置或者从 上一数据流分割点查找 η个数据流分割点最 '〗、查找单位后没找到数据 流分割点的概率。 关于这两个因素决定 Ρ (η)的计算过程, 实际上是 一个多步长 Fibonacci数列, 后面将具体描述。 得到 P (n)后, l-P(n) 即为数据流分割点的分布函数, (l-P(n))-(l-P(n-l))=P(n-l)-P(n)即为在 n个数据流分割点最小查找单位找到数据流分割点概率, 也就是数据 流分割点的密度函数, 根据数据流分割点的密度函数就可以积分
12*1024
£ nx(P(n-l)-P(n)) ,从而求得数据流分割点的期望长度, 即平均分
«-4*1024
块大小,其中, 4*1024 (字节)表示最小数据块长度, 12*1024 (字节) 表示最大数据块长度。
在图 3所示的数据流分割点查找的基础上, 在图 21所示的实施方 式中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1 确定 11个窗口 x| -4 和窗口 ^1 -4^+ ]对应的预定条件
Cx , 其中, X为 1到 11连续的自然数, ^和^为整数。 其中, 4=169, Βλ =0; 2=170, Β2 =-1; Α3=ΠΙ, Β3=-2; Α4=Π2, Β4=-3-, Α5=Π3, Β5=-4-, Α6 =174, Β6=-5-, ΑΊ=\15, ΒΊ =-6; 4¾=176, 58=-7; Α9 =177, S9=-8; Aw= , Bw=-9; Αη=\19,
Figure imgf000095_0001
Cn, 则 11个窗口 分别为 ^[k- k] ff2[k-170,k-l]、 3 [k-171, k-2]、 ff4[k-172, k-3]、 W5[ -I13, k-4]、 6[k-174, k-5]、 7 [k-175, k-6], 8[k-176, k-7]、
Figure imgf000095_0002
k-8]、 10[k-178,k-9]和^ [k-179,k-10]。 为数据流分割点, 图 21中 所示数据流分割点查找方向为从左向右,从数据流分割点 ka跳过最小 数据块 4KB后, 最小数据块 4KB结束位置作为下一个潜在分割点 , 根据为去重服务器 103预设的规则, 为潜在分割点 确定窗口^ [ - 4 , + x ],在本实施例中, X分别为 1到 11连续的自然数。 在图 21所示 的实施方式中,为潜在分割点 确定的窗口为 11个,分别为 n [ kt -169, ]、 Wi2[krl70,krl]. Wn[krl7l,kr2], ^4| ;-172, -3]、 ^5| ;-173, k 4], ί6[^-\74,^-5], ^7| ;-175, -6]、 ^8| ;-176, -7]、 Wi9[kt -177, kt -8]、 WiW [ k, -178Λ· -9]和 Wm [ k, -179, kt -10]。 判断 Wn [ kt -169, ]中至 少部分数据是否满足预定条件(^、 判断 -17( ; -1]中至少部分数 据是否满足预定条件 C2、 判断 Wl3 -171Λ.-2]中至少部分数据是否满 足预定条件 C3、 判断 w!4 [ kt -172, kt -3]中至少部分数据是否满足预定条 件 C4、 判断^ [ -173Λ.-4]中至少部分数据是否满足预定条件 C5、 判 断^ 6[ -174Λ.-5]中至少部分数据是否满足预定条件 C6、 判断 ¥ιΊ[ΐ^ -175Λ.-6]中至少部分数据是否满足预定条件 C7、判断 WlS [krll6,krl] 中至少部分数据是否满足预定条件 C8、 判断 9 [ 177, 8]中至少部 分数据是否满足预定条件 C9、判断 ^。 [ -178Λ.-9]中至少部分数据是 否满足预定条件 <^和判断^ ^^-179^-10]中至少部分数据是否满 足预定条件 。 当判断窗口 ^中至少部分数据满足预定条件 ς、 窗 口 ^中至少部分数据满足预定条件 C2、 窗口 ^中至少部分数据满足 预定条件 C3、 窗口 ^中至少部分数据满足预定条件 C4、 窗口 ^中至 少部分数据满足预定条件 C5、 窗口 6中至少部分数据满足预定条件 C6、 窗口 ^中至少部分数据满足预定条件 C7、 窗口 ^中至少部分数 据满足预定条件(^8、 窗口 ^中至少部分数据满足预定条件 C9、 窗口 wm中至少部分数据满足预定条件 C1Q和窗口 中至少部分数据满足 预定条件 时,则当前潜在分割点 为数据流分割点。 当 11个窗口中 任一个窗口中至少部分数据不满足对应的预定条件时, 如图 22所示, Wl5 [kt -173,^. -4] , 则从潜在分割点 kt沿着数据流分割点查找方向跳跃 N个字节, 其中 N个字节不大于 II B5 II +maxx( || Ax || ),在图 22所示的 实施方式中, 跳跃 N个字节不大于 183个字节, 在本实施例中, N=7, 得到新的潜在分割点, 为与潜在分割点 ^区别, 这里将新的潜在分割 点表示为 。 根据图 21所示的实施方式中, 在去重服务器 103上预设 有规则, 所述规则为: 为潜在分割点 确定窗口^ [ -4, +^], 在本实施例中, X分别为 1到 11连续的自然数。 为潜在分割点 确定 的窗口为 11个, 分别为 l[ -169, ]、 W]2[kr\10,kr\ . W]i[k]-\1\, -2]、 Wj4[krl72,kr3], Wj5[krm,kr4], Wj6[krl74,kr5], W]1{k] -175,V6]、 WjS[krl76,kr7], Wj9[kr\77,krS], ^。 [ 1789]和^ i [ -179, -10]。 如图 22所示, 为潜在分割点确定的第 11个窗口
-179, -10] , 在保证潜在分割点 k,与潜在分割点 k]之间的范围都在判 断范围之内, 则在本实施方式中, 必须保证窗口 ί^Ί1 [ -179, -10]的 左边界与窗口 ^[ -173, -4]的右边界( -4)重合,或者位于窗口 Wl5 [ -173Λ.-4]范围之内, 所述窗口 -179, -10]是根据所述规则, 为所述潜在分割点 k 角定的 Μ个窗口按照数据流查找方向获得的序 列中排序第一的窗口。 因此, 在这一限定内, 当窗口 ^[ -173Λ.-4] 中至少部分数据不满足预定条件 C5 ,从潜在分割点 k'沿数据流分割点 查找方向跳跃的距离不大于 II B5 (I +maxx( || Ax || )。 判断^ [ -169, ]中至少部分数据是否满足预定条件 、 判断 ^2 [ - 170, - 1 ]中至 少部分数据是否满足预定条件 C2、判断 Wj3 [ - 171 , -2]中至少部分数 据是否满足预定条件 C3、判断 .4[ -172, -3]中至少部分数据是否满 足预定条件 C4、判断 WJ5 [ - 173 , -4]中至少部分数据是否满足预定条 件 C5、判断^ [ -174, -5]中至少部分数据是否满足预定条件 C6、判 断 WJ7 [ - 175 , -6]中至少部分数据是否满足预定条件 7、判断 8 [ k] -176,^-7]中至少部分数据是否满足预定条件 C8、判断 ^9[ -177, -8] 中至少部分数据是否满足预定条件 9、 判断^。 [ - 178 , k] -9]中至少 部分数据是否满足预定条件 C10和判断 β1 [ kr\19, -10]中至少部分 数据是否满足预定条件 。 当判断窗口 ^ 中至少部分数据满足预定 条件 ς、 窗口 2中至少部分数据满足预定条件 c2、 窗口 ^.3中至少部 分数据满足预定条件 C3、 窗口 WJ4中至少部分数据满足预定条件 c4、 窗口 中至少部分数据满足预定条件(^5、窗口 ^6中至少部分数据满 足预定条件 C6、窗口 WJ7中至少部分数据满足预定条件(^7、窗口 WJS中 至少部分数据满足预定条件 c8、 窗口 wj9中至少部分数据满足预定条 件 c9、 窗口 ^Ί。中至少部分数据满足预定条件 C1Q和窗口 中至少部 分数据满足预定条件 Cu时,则当前潜在分割点 为数据流分割点, kj 与^之间的数据构成 1个数据块, 同时按照与 相同的方式跳过最 d、 分块大小 4KB, 获得下一个潜在分割点, 并按照在去重服务器 103上 预设的规则, 判断下一个潜在分割点是否为数据流分割点。 当判断潜 在分割点 不是数据流分割点时,按照与 ^相同的方式获得下一个潜 在分割点, 并按照在去重服务器 103上预设的规则及上述方法判断下 一个潜在分割点是否为数据流分割点。 当超过设定的最大数据块仍然 没有找到数据流分割点时 ,则从最大数据块的结束位置作为强制分割 点。
在如图 21所示的实施方式中, 按照在去重服务器 103上预设的规 则, 从判断 ^ 中至少部分数据是否满足预定条件 开始, 当判断 [ l69,t;]、 Wl2[k \10,k \ . ·3 [ -171Λ-2]和 ·4 [ -172, -3]中至少部分数据中至少部分数据分别满足预定条件 、 C2、 C3和 C4, 判断^ [ -173Λ.-4]中至少部分数据不满足预定条件 C5时, 从潜 在分割点 沿着数据流分割点查找方向跳跃 6个字节,在第 6个字节的 结束位置获得新的潜在分割点, 为与其他潜在分割点区别, 这里表示 为 , 按照在去重服务器 103上预设的规则, 为潜在分割点 确定 11 个窗口,分别为 gl[ 169 ]、 Wg2[kg-\10,kg-\], Wg3[kg-\l\,kg-2],
Figure imgf000099_0001
-6]、 Wg%[kg-\16,kg-l^ Wg9[kg-\ll,kg ^J 178^-9^^^^ -179,^-10]。判断 gl -169 ]中至少部分数据是否满足预定条件 判断 g2 [ - 170 - 1 ]中至少部分数据是否满足预定条件 C2、 判断 g3 [ - 171 -2]中至少部分数据是否满足预定条件 C3、 判断 ffg4 [ - 172, -3]中至少部分数据是否满足预定条件 C4、 判断 Wg5 [kg-l73,kg -4]中 至少部分数据是否满足预定条件 C5、 判断 Wg6 [ kg -174, kg -5]中至少部 分数据是否满足预定条件 C6、 判断 g7 [ -175 -6]中至少部分数据 是否满足预定条件 7、判断 gS [ kg -176, kg -7]中至少部分数据是否满足 预定条件 8、 判断 Wg9 [ kg -111, kg -8]中至少部分数据是否满足预定条 件 C9、 判断^。 -178 -9]中至少部分数据是否满足预定条件 C10和 判断^ 中至少部分数据是否满足预定条件 Cu。 窗口 ^u[ -179 -10]与窗口 ^[ -173, -4]重合, 并且 C5=Cu , 因此, 当判断^ 5 [ - 173 Λ. -4]中至少部分数据不满足预定条件 5时, 从潜在 分割点 k,沿着数据流分割点查找方向跳跃 T个字节, 获得的潜在分割 点 仍然不符合作为数据流分割点的条件。 因此,如果从潜在分割点 k,沿着数据流分割点查找方向跳跃 6个字节会存在重复计算, 因此, 从潜在分割点 k,沿着数据流分割点查找方向跳跃 7个字节可以减少重 复计算, 效率更高。 因此提高了查找数据流分割点的速度。 当预设规 定中窗口 ^ [k- Ax ,k+ ]中至少部分数据满足预定条件 Cx的概率为 1/2时, 即是说以 1/2的概率执行跳跃, 每次最多可以跳跃 II II + II An II =189个字节。
在本实施方式中, 预定规则为:为潜在分割点 确定 11个窗口 ^ [k-4,k+sx]及窗口 x[k-4,k+sx]中至少部分数据满足预设条件 , 其中 ^ [k-4,k+sx]中至少部分数据满足预设条件 的概率为 1/2, X 分别为 1到 11连续的自然数并且^和^为整数。 其中, 4=169, 5,=0; 2 =170, B2 =-1; Α3=ΠΙ, Β3=-2; Α4=Π2, Β4=-3-, Α5=Π3, Β5=-4-, Α6=Π4, Β6=-5-, 7 =175, Β7=-6; Α&=Π6, 58=-7; Α9=Π7, Β9 =-8; Al0=m, β10=-9; Αη=179, βπ=-ΐθ, 并且 C^C^C^C^C^C^C C^ pQ C^ 即为潜在分 割点 k选择 11个窗口, 并且为连续 11个窗口, 通过这两个因素可以计 算 P(n)。 11个窗口的选择方式及判断 11个窗口中的每一个窗口中至少 部分数据满足预定条件 遵循在去重服务器 103上预设的规则, 因此 是否存在连续 11个窗口中每一个窗口中至少部分数据满足预定条件 Cx就决定潜在分割点 k是否为数据流分割点。 我们称两个字节之间的 间隙为一个点。 P (n)表示: 连续的 n个窗口内不存在连续的 11个满 足条件的窗口的概率, 即不存在数据流分割点的概率。 从文件头 /上 一分割点跳跃最小分块大小 4KB后, 向数据流分割点查找反方向回退 10个字节, 找到第 4086个点, 在该点处不存在数据流分割点, 所以 P
(4086) =1, 依次类推, P (4087) =1, P (4095) =L 在第 4096 个点处, 即在最小分块大小处, 以 ( 1/2) Λ11的概率这 11个窗口中每 一个窗口中至少部分数据满足预定条件 Ci, 因此以 (1/2) Λ11的概率 存在数据流分割点, 以 1- (1/2) Λ11的概率不存在数据流分割点, 所 以 Ρ (4096) =1- ( 1/2) Λ11。 在第 η个窗口处, 可以分为 12种情况来递推 Ρ (η) 。 P ( n)
1/2
不满足 满足
1/2
P (n-1)
不满足 满足
P (n-2)
1/2
不满足 满足 连续 11个醫口中每一个醫口中全
P (n-11)
_少部分数据 ffi足条件 Cx _
情况 1: 第 n个窗口中至少部分数据以 1/2的概率不满足预定条件, 此时第 n个窗口前面的 n-1个窗口以 P (n-1 ) 的概率不存在连续的 11个 窗口中每一个窗口至少部分数据均满足预定条件,因此?( n )包含 1/2* P (n-1)。 第 n个窗口中至少部分数据不满足预定条件, 并且且第 n个 点前面的 n-1个窗口存在连续的 11个窗口每一个窗口中至少部分数据 均满足预定条件的情况与 P (n)无关。
情况 2: 第 n个窗口中至少部分数据以 1/2的概率满足预定条件, 第 n-1个窗口中至少部分数据以 1/2的概率不满足预定条件,此时第 n-1 个窗口前面的 n-2个窗口以 P (n-2) 的概率不存在连续的 11个窗口中 每一个窗口中至少部分数据均满足预定条件,因此 P(n)包含 1/2*1/2*P (n-2)。 第 n个窗口中至少部分数据满足预定条件, 第 n-1个点窗口中 至少部分数据不满足预定条件, 并且第 n-1个窗口前面的 n-2个窗口存 在连续的 11个窗口中每一个窗口至少部分数据满足预定条件的情况 与 P (n)无关。
依照上述描述,情况 11:第 n至 n-9个窗口中至少部分数据以( 1/2) Λ10的概率满足预定条件, 第 η-10个窗口中至少部分数据以 1/2的概率 不满足预定条件, 此时第 n-10个窗口前面的 n-11个窗口以 P (n-11 )的 概率不存在连续的 11个窗口中每一个窗口中至少部分数据均满足预 定条件, 因此 P (n) 包含 ( 1/2) A10*1/2*P (n-11 ) 。 第 n至 n-9个窗 口中至少部分数据均满足预定条件, 第 n-10个窗口中至少部分数据不 满足预定条件, 并且第 n-10个窗口前面的 n-11个窗口存在连续的 11个 窗口中每一个窗口中至少部分数据均满足预定条件的情况与 P (n)无 关。
情况 12: 第 n至 n-10个的窗口中至少部分数据以( 1/2) Λ11的概率 满足预定条件, 该情况与 Ρ (η)无关。
因 P (n) =1/2* P (n-1 ) + ( 1/2) Λ2* P ( n-2 ) + + ( 1/2)
Λ11*Ρ (η-11)。 另一种预设规则: 为潜在分割点 确定 24个窗口 x[/t -4 + Sx]和窗口 ]对应的预定条件 , 其中, X为 1到 11 连续的自然数, =169, ι=0; Α2=ηο, Β2 =-1; Α3=ΠΙ, Β3=-2·' Α4=Π2, Β4 =-3; Α5=Π3, Β5=-4-, Α6=Π4, Β6=-5-, ΑΊ=\15, ΒΊ =-6; Α&=Π6, 58=-7; 4, =177, S9=-8; Aw=m, BW=-9; An=\19, Sn=-10, ...A24=\92, B24=-23,^f LCl = C2 = C3 = C4 = C5 = C6=C7=C8=C9=...= C24, 窗口 X| -4 +SX]中至少部分 数据满足预定条件 Cx的概率为 3/4, 通过这两个因素可以计算 P(n)。
因此是否存在连续 24个窗口中的每一个窗口中至少部分数据均 满足预定条件 Cx就决定潜在分割点 /1是否为数据流分割点, 可以通过 下面的公式计算:
P ( 1 ) =1, P (2) P (23) =1, P (24) =1- (3/4) Λ24,
Ρ (η) =1/4* P (n-1 ) +1/4* ( 3/4 ) * P ( n-2 ) + +1/4* (3/4)
A23*P ( n-24 ) 。
经过计算, P( 5*1024 )=0.78, P( 11*1024 )=0.17, P(12*1024)=0.13, 即从数据流起始位置 /上一数据流分割点查找到 12KB后以 13%的概率 仍未找到数据流分割点, 强制进行分割。 通过这个概率, 求得数据流 分割点的密度函数, 经过积分求得大约平均在从数据流起始位置 /上 一数据流分割点查找 7.6KB时找到数据流分割点, 即平均分块长度大 约为 7.6KB。与连续的 11个窗口中至少部分数据以 1/2的概率满足预定 条件不同, 传统 CDC算法釆用一个窗口以 1/2Λ12的概率满足条件时, 方可达到平均分块长度 7.6ΚΒ的效果。
在图 3所示的数据流分割点查找的基础上, 在图 23所示的实施方 式中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1 确定 11个窗口 x| - 4 +^]和窗口 4 ]对应的预定条件 Cx, 其中, X为 1到 11连续的自然数, 4和 ^为整数。 其中, 窗口 ^
+ ]中至少部分数据满足预定条件 的概率为 1/2, 4=ΐ7ΐ, Βγ
=-2 2 =172, Β2=-3; Α3=Π3, Β3=-4-, Α4=Π4, Β4=-5-, Α5=Π5, Β5=-6-, Α6 =176, Β6=-1-, ΑΊ=\11, β7=-8; =178' 4) =179, S9=-10; AW=\1Q, Bw =-1; An =169, Bu=o, C7= C8= C9= C10= Cu 0 ^为数 据流分割点, 图 23中所示数据流分割点查找方向为从左向右, 从数据 流分割点 ka跳过最小数据块 4KB后, 在最小数据块 4KB结束位置作为 下一个潜在分割点 ^, 根据在去重服务器 103上预设的规则, 为潜在 分割点 ^确定 x [k- Ax ,k+ sx ]及窗口 Wx [k- Ax ,k+ Bx ]对应的预设条件 Cx , 其中 χ为 1到 11连续的自然数。 确定的 11个窗口分别为 ^ -17ΐΛ.-2]、 2| ;-172, -3]、 3| ;-173, -4]、 Wi4[kt -174,^ -5], 5| ;-175, -6]、 Wi6[krl76,kr7], 7| ;-177, -8]、 WiS[krl7S,kr9], Wi9[krl79,krl0], Wm [krn0,krl]和 Wm [kr\ 69, kt ]。判 f Wa[kr\l\, ki -2]中至少部分数 据是否满足预定条件 、 判断^ [ -172Λ.-3]中至少部分数据是否满 足预定条件 C2、 判断^ [ -173Λ.-4]中至少部分数据是否满足预定条 件 C3、 判断^ 4[ -174Λ.-5]中至少部分数据是否满足预定条件 C4、 判 断 Wi5 [ -175Λ.-6]中至少部分数据是否满足预定条件 C5、 判断 [kt -176Λ.-7]中至少部分数据是否满足预定条件 C6、判断
Figure imgf000104_0001
中至少部分数据是否满足预定条件 C7、 判断 w,8 [kt - ,ki -9]中至少部 分数据是否满足预定条件 C8、 判断^ [ -179Λ.-10]中至少部分数据 是否满足预定条件 C9、判断^。 [ -170Λ.-1]中至少部分数据是否满足 预定条件 C10和判断 iU [ kt -169Λ· ]中至少部分数据是否满足预定条件 cu。 当判断窗口 n中至少部分数据满足预定条件(^、 窗口 ^中至少 部分数据满足预定条件 、窗口 ^中至少部分数据满足预定条件 3、 窗口 ^4中至少部分数据满足预定条件 c4、 窗口 ^中至少部分数据满 足预定条件 c5、 窗口 ^6中至少部分数据满足预定条件 c6、 窗口 ^中 至少部分数据满足预定条件 c7、 窗口^中至少部分数据满足预定条 件 c8、 窗口 ^中至少部分数据满足预定条件 c9、 窗口 ^。中至少部 分数据满足预定条件 C1Q和窗口 ^„中至少部分数据满足预定条件 cu 时, 则当前潜在分割点 为数据流分割点。 当 11个窗口中任一个窗口 中至少部分数据不满足对应的预定条件时,如图 24所示, ^[ ¾-169, i¾]中至少部分数据不满足预定条件 C3 ,点 Pl沿着数据流分割点查找 方向跳跃 11个字节为例进行描述。 如图 24所示, 当判断 ^不满足预 定条件 C3时, 以 为起始点, 沿着数据流分割点查找方向跳跃 N个字 节,其中 N个字节不大于 II B3 II +maxx( II II ),在本实施例中,N=7, 在第 7个字节的结束位置,获得下一个潜在分割点,为与潜在分割点 ^ 区别, 这里将新的潜在分割点表示为 , 根据在去重服务器 103上预 设的规则, 为潜在分割点/ ^确定 11个窗口 ^[ -4, +^], 分别为 [ -171, kr2], Wj2[krl72,kr3]. Wj3[kr ,kr4], Wj4[kJ-U4,kJ -5]、 .5[ 175, 6]、 Wj6[kr\76,kr7]. Wj7[krl77,krS]. WjS[kr\7S, V9]、 Wj9[kJ-l79,kJ-lO], WjW[kr\10,kr\^WjU[kr\69,k^判断^ [ -171, -2]中至少部分数据是否满足预定条件 C 、判断 ^·2μ,172, -3]中至少部分数据是否满足预定条件 C2、 判断^3[ -173, -4]中 至少部分数据是否满足预定条件 C3、判断 .4[ -174, -5]中至少部分 数据是否满足预定条件(:4、判断 .5[ -175, -6]中至少部分数据是否 满足预定条件 C5、判断 .6[ -176, -7]中至少部分数据是否满足预定 条件 C6、 判断 ^.7[ -177, -8]中至少部分数据是否满足预定条件 C7、 判断 [ -178, -9]中至少部分数据是否满足预定条件 C8、 判断
[ -179,^-10]中至少部分数据是否满足预定条件 C9、判断 。 [ -170, -1]中至少部分数据是否满足预定条件 <^和判断^ ^-169, :^ 至少部分数据是否满足预定条件 C„。 当然在本发明实施例中, 判断 潜在分割点 ka是否为数据流分割点时也遵循该原则,具体实现不再描 述, 可以参照判断潜在分割点 的描述。 当判断窗口 中至少部分 数据满足预定条件 C 、 窗口 2中至少部分数据满足预定条件 C2、 窗 口 ^中至少部分数据满足预定条件 C3、窗口 中至少部分数据满足 预定条件 C4、 窗口 中至少部分数据满足预定条件 C5、 窗口 ^中至 少部分数据满足预定条件 C6、 窗口 Wj7中至少部分数据满足预定条件 C7、 窗口 中至少部分数据满足预定条件 C8、 窗口 中至少部分数 据满足预定条件(:9、窗口 中至少部分数据满足预定条件 C1Q和窗口 中至少部分数据满足预定条件 Cu时,则当前潜在分割点 为数据 流分割点, 与 之间的数据构成 1个数据块, 同时按照与 相同的 方式跳过最小分块大小 4KB, 获得下一个潜在分割点, 并按照在去重 服务器 103上预设的规则, 判断下一个潜在分割点是否为数据流分割 点。 当判断潜在分割点 不是数据流分割点时, 按照与 相同的方式 获得下一个潜在分割点, 并按照在去重服务器 103上预设的规则及上 述方法判断下一个潜在分割点是否为数据流分割点。当超过设定的最 大数据块仍然没有找到数据流分割点时,则从最大数据块的结束位置 作为强制分割点。 当然该方法的实施受最大数据块长度和构成该数据 流的文件的大小约束, 在此不再赘述。
在图 3所示的数据流分割点查找的基础上, 在图 25所示的实施方 式中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1 确定 11个窗口 ^| -4, + ]和窗口 ^| -4^+ ]对应的预定条件
Cx , 其中 X为 1到 11连续自然数,
Figure imgf000106_0001
Β3 =1; Α4=169, Β4=0; Α5=Π0, Β5=-1-, Α6=\1\, Β6 =-2 ΑΊ=\12, Β7=-3-, Α& = Π3, β8=-4; , =Π4, Β9=-5-, AW=175, S10=-6; Αη=\16, Βη=-Τ, ^f LCl = C2 = C3=C4
5 = Ο6 = ΟΊ=Ο, = Ο9=€10 =€η, 则 11个窗口分别为 ^[k-166, k+3]、 w2 [k-167,k+2]、 [k-168,k+l]、 ff4[k-169, k]、 5 [k-170, k-l]、 6[k-171, k-2]、 7[k-172,k-3], 8 [k-173, k-4], 9 [k-174, k-5], ww [k-175,k-6] 和^ [k-176,k-7]。 ^为数据流分割点, 图 25中所示数据流分割点查 找方向为从左向右, 从数据流分割点 跳过最小数据块 4KB后, 最小 数据块 4KB结束位置作为下一个潜在分割点 , 在本实施例中, 根据 在去重服务器 103上预设的规则,为潜在分割点 确定 11个窗口^ [ k- Ax ,k+ βχ ]及窗口 wix [ k- Ax ,k+ Bx ]对应的预定条件 Cx , χ分别为 1到 11连 续的自然数。 在图 25所示的实施方式中, 为潜在分割点 确定 11个窗 口, 分别为 +3]、 Wi2[kr\61, +2]、 ^3| ;-168, + 1]、 4| ;-169, ]、 Wi5[krl70,krl]. Wi6[krl7l,kr2], Wn[krl72,kr3]. ^8| ;-173, -4]、 9| ;-174, -5]、 10| ;-175, -6]和
Figure imgf000106_0002
判断^ [ -166, +3]中至少部分数据是否满足预定条件 C,、判断 ^2 [^-167, +2]中至少部分数据是否满足预定条件 C2、 判断^ [ 168, +1]中至少部分数据是否满足预定条件 C3、 判断^ 中至 少部分数据是否满足预定条件 、 判断 -17( ; -1]中至少部分数 据是否满足预定条件 C5、 判断 6[ -17ΐΛ.-2]中至少部分数据是否满 足预定条件 C6、 判断^ ^7[ 172Λ.-3]中至少部分数据是否满足预 定条件 C7、 判断 8 [ -173Λ.-4]中至少部分数据是否满足预定条件 C8、 判断 Wl9 [ -174Λ.-5]中至少部分数据是否满足预定条件 C9、 判断 ^。
[ -175»]中至少部分数据是否满足预定条件 C1Q和判断^
-7]中至少部分数据是否满足预定条件 。 当判断窗口 wn中至少部 分数据满足预定条件 、 窗口 ^中至少部分数据满足预定条件 C2、 窗口 3中至少部分数据满足预定条件 3、 窗口 ^中至少部分数据满 足预定条件 C4、 窗口 ^中至少部分数据满足预定条件 C5、 窗口 ^6中 至少部分数据满足预定条件 C6、 窗口 ^中至少部分数据满足预定条 件 C7、 窗口 ^中至少部分数据满足预定条件 C8、 窗口 ^中至少部分 数据满足预定条件 C9、窗口 Ί。中至少部分数据满足预定条件 C1Q和窗 口 中至少部分数据满足预定条件 时, 则当前潜在分割点 为数 据流分割点。 当 11个窗口中任一个窗口中至少部分数据不满足对应的 预定条件时, 如图 26所示, 7[ -172, -3], 则从潜在分割点 沿着 数据流分割点查找方向跳跃 N个字节, 其中 N个字节不大于 II ΒΊ II + maxx( II Ax II), 在图 26所示的实施方式中, 跳夭 N个字节不大于 185 个字节, 在本实施例中, N=5, 得到新的潜在分割点, 为与潜在分割 点 区别, 这里将新的潜在分割点表示为 , 根据图 25所示的实施方 式中在去重服务器 103上预设的规则, 为潜在分割点 kj确定的窗口为 11个,分别为 Wn [kj-l66,kj+3], Wj^kj-iei^j+l], J3| ,168, +1]、 J4[ 169,]、 ^,[^.-170,^.-1], J6[ 171, 2]、 j7[ V1723]、 J8[ 173, 4]、 J9[V174,V5]、 w [ k]-\15,k] -6]^ Wjn [ kr\16, kJ -7]。 判断^ [ -166, +3]中至少部分数据是否满足预定条件 、 判 断 lVj2 [ ^-167, k] +2]中至少部分数据是否满足预定条件 2、判断 Wj3 [ k] -168,^+1]中至少部分数据是否满足预定条件 C3、 判断 .4[ -169, ] 中至少部分数据是否满足预定条件 4、判断 [ - 170, - 1 ]中至少部 分数据是否满足预定条件 C5、判断^ [ -171, -2]中至少部分数据是 否满足预定条件 、判断^ [ -172, -3]中至少部分数据是否满足预 定条件 C7、判断 [ - 173 , -4]中至少部分数据是否满足预定条件 C8 判断 .9[ -174, -5]中至少部分数据是否满足预定条件 C9、判断
[ ^-175,^. -6]中至少部分数据是否满足预定条件 C10和判断 WjU [ k l76: -7]中至少部分数据是否满足预定条件 。 当然在本发明实施例中, 判断潜在分割点 是否为数据流分割点时也遵循该原则,具体实现不 再描述, 可以参照判断潜在分割点 的描述。 当判断窗口 l中至少 部分数据满足预定条件(^、窗口 ^中至少部分数据满足预定条件 C2、 窗口 ^中至少部分数据满足预定条件 C3、窗口 中至少部分数据满 足预定条件 C4、 窗口 ^中至少部分数据满足预定条件 C5、 窗口 ^中 至少部分数据满足预定条件 C6、 窗口 ^中至少部分数据满足预定条 件 C7、 窗口^中至少部分数据满足预定条件 C8、 窗口 中至少部分 数据满足预定条件 C9、窗口 ^。中至少部分数据满足预定条件 C1Q和窗 口 ^„中至少部分数据满足预定条件 时,则当前潜在分割点 为数 据流分割点, 与 之间的数据构成 1个数据块, 同时按照与 相同 的方式跳过最小分块大小 4KB, 获得下一个潜在分割点, 并按照在去 重服务器 103上预设的规则, 判断下一个潜在分割点是否为数据流分 割点。 当判断潜在分割点 不是数据流分割点时, 按照与 相同的方 式获得下一个潜在分割点, 并按照在去重服务器 103上预设的规则及 上述方法判断下一个潜在分割点是否为数据流分割点。 当超过设定的 最大数据块仍然没有找到数据流分割点时 ,则从最大数据块的结束位 置作为强制分割点。
在图 3所示的数据流分割点查找的基础上, 在图 27所示的实 施方式中, 在去重服务器 103 上预设有规则, 所述规则为: 为潜 在分割点 /1确定 11个窗口 [k-4, k + ]和窗口 k + ]对 应的预定条件 其中 X为 1到 11连续的自然数, 4=169, B=0; 4 = 170, B2=-l; 4=171, Β3=-2; Α4 = Π2, Β4 =-3; A =173, B =-4; 4 = 174, B6 =-5; 4=175, B7=-6; 4=176, s8=-7; A9 = \77, B9=-S; 4。=168, Bw=\; Au=\19, Bu=3; 并且 (^ = (2 = (3 = (4 = (5 = (6 = (7 = (8 = C9 = Cw≠Cn , 则 11个窗口分别为 ^[1^-169,1^、 ff2[k-170,k-l]、 w3 [k-171, k-2]、 ff4[k-172, k-3]、 W5[k-\73, k-4]、 W6[k-\74, k-5]、 W7[k-\75, k-6]、 Ws[k-\76, k-7], W9[k-\77, k-8], 10 [k-168, k+1]和^ [k-179, k+3]。 为数据流分割点, 图 27中所示数据流分割点查找方向为 从左向右, 从数据流分割点 跳过最小数据块 4KB后, 最小数据 块 4KB结束位置作为下一个潜在分割点 , 在本实施例中, 根据 在去重服务器 103上预设的规则, 为潜在分割点 确定窗口 - Ax, kt + Bx], x分别为 1到 11连续的自然数, 在图 27所示的实施 方式中,为潜在分割点 确定 11个窗口分别为 Wn [ ki -169, ki ]、 Wn | ;-170, -1]、 ^3| ;-171, kt -2] , Wu[kr\12, -3]、 ^[^-173, kt -4]、 Wi6[kr\l , kr5], Wn[kr\15, kt -6] , Wa[kr\16, -7]、 Wi9 [ kt -177, ^-8], Wm [k l6^, + 1]和^ +3]。判断^
]中至少部分数据是否满足预定条件 、 判断^ -170, I]中 至少部分数据是否满足预定条件 C2、 判断^ -171, -2]中至少 部分数据是否满足预定条件 C3、 判断^ -172, -3]中至少部分 数据是否满足预定条件 C4、 判断^ -173, -4]中至少部分数据 是否满足预定条件 C5、 判断 6 -174, -5]中至少部分数据是否 满足预定条件 C6、 判断^ -175, -6]中至少部分数据是否满足 预定条件 C7、 判断^ [ -176, ^-7]中至少部分数据是否满足预定 条件 C8、 判断 9[ -177, -8]中至少部分数据是否满足预定条件 c9、判断^。 μ; - 168 , + 1 ]中至少部分数据是否满足预定条件 c10和 判断^„[ -179, +3]中至少部分数据是否满足预定条件 Cu。当判 断窗口 ^中至少部分数据满足预定条件 、 窗口 ^中至少部分数 据满足预定条件 C2、 窗口 ^中至少部分数据满足预定条件 C3、 窗 口 ^中至少部分数据满足预定条件 C4、窗口 ^中至少部分数据满 足预定条件 C5、 窗口 ^中至少部分数据满足预定条件 C6、 窗口 ^ 中至少部分数据满足预定条件 C7、 窗口 ^中至少部分数据满足预 定条件 C8、 窗口 ^中至少部分数据满足预定条件 C9、 窗口 ^。中 至少部分数据满足预定条件 C1Q和窗口 ^ t中至少部分数据满足预 定条件 时, 则当前潜在分割点 ^为数据流分割点。 当判断窗口 „中至少部分数据不满足预定条件 C„时, 则从潜在分割点 kl沿着 数据流分割点查找方向跳跃 1 个字节, 得到新的潜在分割点, 为 与潜在分割点 区别,这里将新的潜在分割点表示为 。当 ^、 wl2、 wi3、 wi4、 wi5、 wi6、 wn、 πΆ、 和 ^。 10个窗口中任一个窗口 中至少部分数据不满足对应的预定条件时, 如图 28 所示, ^4[ -172, kr3], 则从点 沿着数据流分割点查找方向跳跃 N个字节, 其中 N个字节不大于 II ΒΛ II +maxx( II Ax || ), 在图 28所示的实施 方式中, 跳跃 N个字节不大于 182个字节, 在本实施例中, N=6, 得到新的潜在分割点, 为与潜在分割点 区别, 这里将新的潜在分 割点表示为 , 根据图 27所示的实施方式中在去重服务器 103上 预设的规则, 为潜在分割点 确定的窗口分别为 ]、 Wj2[k l70, k l], Ψβ ΚΓ\Ί\, kr2], W] [kr\12, ^-3], ^,[^-173, V4]、 6[ 174, V5]、 7[ 175, V6]、 Wji[k]-\16, 7]、 wj9 [k m, s]、 [ 168, +1]和 川 [V179, +3]。 判断^ [^-169, ]中至少部分数据是否满足预定条件 、判断 JVj2 [ -170, -1]中至少部分数据是否满足预定条件 C2、 判断^ [ -171, k厂 2] 中至少部分数据是否满足预定条件 C3、 判断 .4[ -172, -3]中至 少部分数据是否满足预定条件 C4、 判断 .5[ -173, -4]中至少部 分数据是否满足预定条件 C5、 判断 .6[ -174, -5]中至少部分数 据是否满足预定条件 C6、 判断 .7[ -175, -6]中至少部分数据是 否满足预定条件 C7、 判断 ^ [ -176, -7]中至少部分数据是否满 足预定条件 C8、 判断 .9[ -177, -8]中至少部分数据是否满足预 定条件 C9、判断 WjW [ -168, +1 ]中至少部分数据是否满足预定条 件 C1Q和判断 jU [kr179, kJ +3]中至少部分数据是否满足预定条件 Cu。 当然在本发明实施例中, 判断潜在分割点 是否为数据流分 割点时也遵循该原则, 具体实现不再描述, 可以参照判断潜在分 割点 的描述。 当判断窗口 ^中至少部分数据满足预定条件 、 窗口 if ,.2中至少部分数据满足预定条件 、窗口 ,.3中至少部分数据 满足预定条件 c3、 窗口 4中至少部分数据满足预定条件 c4、 窗口 WJ5中至少部分数据满足预定条件 c5、窗口 wj6中至少部分数据满足 预定条件 C6、 窗口 ^.7中至少部分数据满足预定条件 C7、 窗口 中 至少部分数据满足预定条件 c8、 窗口 中至少部分数据满足预定 条件 C9、 窗口 ϊ¥ 中至少部分数据满足预定条件 C1Q和窗口 WjU中至 少部分数据满足预定条件 Cu时, 则当前潜在分割点 为数据流分 割点, 与 之间的数据构成 1 个数据块, 同时按照与 相同的 方式跳过最小分块大小 4KB, 获得下一个潜在分割点, 并按照在 去重服务器 103 上预设的规则, 判断下一个潜在分割点是否为数 据流分割点。 当判断潜在分割点 不是数据流分割点时,按照与 ^ 相同的方式获得下一个潜在分割点, 并按照在去重服务器 103 上 预设的规则及上述方法判断下一个潜在分割点是否为数据流分割 点。 当超过设定的最大数据块仍然没有找到数据流分割点时, 则 从最大数据块的结束位置作为强制分割点。
在图 3所示的数据流分割点查找的基础上, 在图 29所示的实施方 式中, 在去重服务器 103上预设有规则, 所述规则为: 为潜在分割点 /1 确定 11个窗口 [ 和窗口 [/ 4, Ρ ]对应的预定 条件 C , X分别为 1到 11连续的自然数, 其中, 窗口 + SJ 中至少部分数据满足预定条件的概率为 1/2, 4=169, ΒΓ0-, 4=171, 2 =-2; Α3=Π3, Β3=-4; Α4=Π5, Β4=-6-, Α5=ΠΊ, Β5= -?,; Α6=Π9, Β6=-10-, A7=m,
Figure imgf000112_0001
Bu =-20; 并且 ς= 2 3 =C4=C5= C6= C7= C8= C9= C10= Cu, 则 11个窗口分别为 W [k-169,k]、 ff2[k-171,k-2]、 3 [k-173, k-4], ff4[k-175, k-6]、 5[k-177, k-8]、 6[k-179,k-10]、 7 [k-181, k-12], 8 [k-183, k-14], 9 [k-185, k-16], 10[k-187,k-18]和^ [k-189,k-20]。 ^为数据流分割点, 图 29中所示 数据流分割点查找方向为从左向右,从数据流分割点 ka跳过最 '〗、数据 块 4KB后, 在最小数据块 4KB结束位置作为下一个潜在分割点 , 为 潜在分割点 ^确定点 Ax, 在本实施例中, 根据在去重服务器 103上预 设的规则, X分别为 1到 11连续的自然数。 在图 29所示的实施方式中, 依据预定规则, 为潜在分割点 确定的 11个窗口分别为 ^[^-169, ]、 Wi2[kr\l\, k 2], Wa[k l73, kt -4] , W¼[kr\15, kt -6] , Wi5[kr\ll, k S], Wi6[k \19, -10]、 W^k.-l , -12]、 Wi&[k m, -14]、 Wi9 [ -185, -16]、 Wm [k l^l, k l^ Wm[k m, -20]。 判断^ [ -169, ]中至少部分数据是否满足预定条件 、判断 ^2μ;-171, kr2] 中至少部分数据是否满足预定条件 C2、 判断^ 3μ;-173, -4]中至少 部分数据是否满足预定条件 C3、 判断 ^4[ -175, -6]中至少部分数 据是否满足预定条件 C4、 判断^ [ -177, -8]中至少部分数据是否 满足预定条件 C5、 判断 J 179, -10]中至少部分数据是否满足预 定条件 C6、 判断^ [ -181, -12]中至少部分数据是否满足预定条件 C7、 判断^ -14]中至少部分数据是否满足预定条件 C8、 判 断^ -16]中至少部分数据是否满足预定条件 C9、 判断^。
[ kt -187, -18]中至少部分数据是否满足预定条件 C10和判断 ^„ [ kt -189, -20]中至少部分数据是否满足预定条件 Cu。 当判断窗口 1中 至少部分数据满足预定条件 d、 窗口^中至少部分数据满足预定条 件 C2、 窗口 ^中至少部分数据满足预定条件 C3、 窗口 ^中至少部分 数据满足预定条件 C4、 窗口 ^中至少部分数据满足预定条件 C5、 窗 口 6中至少部分数据满足预定条件 C6、窗口 ^中至少部分数据满足 预定条件 7、 窗口 ^中至少部分数据满足预定条件 8、 窗口 ^中至 少部分数据满足预定条件 c9、 窗口 ^。中至少部分数据满足预定条件 C1Q和窗口 „中至少部分数据满足预定条件 cu时,则当前潜在分割点 为数据流分割点。 当 11个窗口中任一个窗口中至少部分数据不满足 对应的预定条件时, 如图 30所示, -6]中至少部分数据 不满足预定条件 C4, 则选择下一个潜在分割点, 为与潜在分割点 区 另' J, 这里表示为 , 位于 右边, 并且 与 ^间距 1个字节。 如图 30所示, 依为去重服务器 103预设的规则, 为潜在分割点 确定 11个 窗口分别为 [-169, kj], Wj2[kr\l\, kj-2], 3[ -173, kj-4], .4[ -175, kr6], Wj5[kr\77, -8]、 ^,[^-179, -10]、 Wj7[krm, kj-12],
Figure imgf000114_0001
-14]、 WJ9[kj-lS5, kj-16], WJW [kj-lS7, -18] 和^ -20], 并且 C^C^C^C^C^C C C^ ^Q^C 判断 ]中至少部分数据是否满足预定条件 、 判断
[ -171, -2]中至少部分数据是否满足预定条件 C2、判断^ [ -173, -4]中至少部分数据是否满足预定条件 C3、 判断^ [ -175, -6]中 至少部分数据是否满足预定条件 C4、 判断 .5[ -177, -8]中至少部 分数据是否满足预定条件 C5、判断 .6[ -179, -10]中至少部分数据 是否满足预定条件 C6、判断 [ - 181 , 12]中至少部分数据是否满 足预定条件 C7、判断 [ -183, -14]中至少部分数据是否满足预定 条件 C8、判断 ^.9[ -185, -16]中至少部分数据是否满足预定条件 C9、 判断 jW [ -187, -18]中至少部分数据是否满足预定条件 C1Q和判断 WJU[k 189, -20]中至少部分数据是否满足预定条件 C„。 当判断窗 口 ^中至少部分数据满足预定条件 、窗口 ^中至少部分数据满足 预定条件 c2、 窗口 ^中至少部分数据满足预定条件 c3、 窗口 ^中至 少部分数据满足预定条件 c4、 窗口 ^.5中至少部分数据满足预定条件 c5、 窗口 6中至少部分数据满足预定条件 c6、 窗口 中至少部分数 据满足预定条件 C7、 窗口 中至少部分数据满足预定条件 c8、 窗口 ^中至少部分数据满足预定条件 c9、 窗口 ^。中至少部分数据满足 预定条件 c1Q和窗口 ινβ1中至少部分数据满足预定条件 Cu时, 则当前 潜在分割点 为数据流分割点。当判断窗口 wj2. wj}. wj4、 wj5. JVj6、 Wj7、 Wj8、 Wj9、 ^。和 „中任一个窗口中至少部分数据不满 足预定条件时, 如图 31所示, .3[ -173, -4]中至少部分数据不满 足预定条件 c3时, 位于 ^右边从 沿着数据流分割点查找方向跳跃 N个字节, 其中 N个字节不大于 II B4 II +maxx( || Ax || ), 在图 28所示的 实施方式中, N个字节不大于 195个字节, 在本实施例中, N=15, 获 得下一个潜在分割点, 为与潜在分割点 、 相区别, 表示为 。 根 据图 29所实施方式中为去重服务器 103预设的规则, 为潜在分割点 确定 11个窗口分别为 ^[^-169, ]、 W [kr\l\, kr2], Wl3[krl73, -4]、 Wl4[kr\75, kr6]. W15[kr\ll, -8]、 W16[kr\19, -10]、 Wn | ,-181, -12]、 /80,-183, -14]、 Wl9[k,-l^5, -16]、 Wno[k,-l^l,
Figure imgf000115_0001
-20]。判断^ μ,-169, ]中至少部分数据是否 满足预定条件 、 判断 -171, -2]中至少部分数据是否满足预 定条件 C2、 判断^ -173, -4]中至少部分数据是否满足预定条件 C" 判断 [ -175, -6]中至少部分数据是否满足预定条件 C4、 判 断^ μ,-177, -8]中至少部分数据是否满足预定条件 c5、判断
-179, -10]中至少部分数据是否满足预定条件 C6、 判断 ^7μ,-181, -12]中至少部分数据是否满足预定条件 C7、 判断^ μ,-183, -14] 中至少部分数据是否满足预定条件 C8、 判断 -185, -16]中至少 部分数据是否满足预定条件 c9、判断^。 [krm, is]中至少部分数 据是否满足预定条件 C1Q和判断^ t [ -189, k, -20]中至少部分数据是 否满足预定条件 Cu。当判断窗口 JVn中至少部分数据满足预定条件(^、 窗口 中至少部分数据满足预定条件 C2、窗口 ^中至少部分数据满 足预定条件 C3、 窗口 ^中至少部分数据满足预定条件 C4、 窗口 ^中 至少部分数据满足预定条件 C5、 窗口 中至少部分数据满足预定条 件 c6、 窗口 中至少部分数据满足预定条件 c7、 窗口 ^中至少部分 数据满足预定条件 c8、 窗口 中至少部分数据满足预定条件 c9、 窗 口 Wno中至少部分数据满足预定条件 C1Q和窗口 ffm中至少部分数据满 足预定条件 c„时,则当前潜在分割点 为数据流分割点。当窗口 w 、
Wl2 W13、 Wl4, V15、 W16, Wn、 WK, W19, ^。和 ffm中任一窗口中 至少部分数据不满足预定条件时, 选择下一个潜在分割点, 为与潜在 分割点 、 和 区别, 表示为 ^位于 右边, 并且^与 间距
1个字节。根据图 29所示实施例为去重服务器 103预设的规则, 为潜在 分割点 确定的 11个窗口分别为^ km]、 Wm2[km-\1\, km-2], km-4], Wm4[km-n5, km-6]. Wm5[km-m, Am-8]、 Wm6[km
-179, ^-io]、 wm7[km-m, km-\2], wm&[km- , km-u], wm9[km-ns, ^-16]、 wmW [km-m,
Figure imgf000116_0001
wmn[km- , -20]。判断^ μ„-ΐ69, 中至少部分数据是否满足预定条件 、 判断^ 2μΜ-171, Am-2]中 至少部分数据是否满足预定条件 C2、判断^ 3μ„-173, ^-4]中至少部 分数据是否满足预定条件 C3、判断^ 4μΜ-175, ^-6]中至少部分数据 是否满足预定条件 C4、判断^ 5[^-177, Am -8]中至少部分数据是否满 足预定条件 C5、 判断^ 6μ„-179, -10]中至少部分数据是否满足预 定条件 C6、 判断^ 7μ„-181, ^-12]中至少部分数据是否满足预定条 件 C7、判断^ 8[^-183, -14]中至少部分数据是否满足预定条件 C8、 判断^ -16]中至少部分数据是否满足预定条件 C9、 判断 WmW [km-Ul, 中至少部分数据是否满足预定条件 (^和判断
Wm [km-U9, ^-20]中至少部分数据是否满足预定条件 Cu。 当判断窗 口 ^∞1中至少部分数据满足预定条件 、 窗口 m2中至少部分数据满 足预定条件 C2、窗口 ^3中至少部分数据满足预定条件 C3、窗口 m4中 至少部分数据满足预定条件 c4、 窗口 m5中至少部分数据满足预定条 件 c5、 窗口 ^ 6中至少部分数据满足预定条件 c6、 窗口 ^ 7中至少部 分数据满足预定条件 c7、 窗口 ^ 8中至少部分数据满足预定条件 c8、 窗口 Wm9中至少部分数据满足预定条件 C9、 窗口 ¥ml0中至少部分数据 满足预定条件 c1Q和窗口 mll中至少部分数据满足预定条件 时, 贝' J 当前潜在分割点 为数据流分割点。当任一个窗口中至少部分数据不 满足预定条件时, 则按照前面描述的方案执行跳跃, 以获得下一个潜 在分割点并判断是否为数据流分割点。
本发明实施例提供了一种判断窗口 Viz [k -A2, k^B 中至少 部分数据是否满足预定条件 Cz的方法, 本实施例中使用随机函数 判断窗口 Wjki-Az, ^ + ^]中至少部分数据是否满足预定条件 Cz, 以图 21所示的实施方式为例, 根据在去重服务器 103上预设的规 则, 为潜在分割点 ^确定窗口 ^ , 判断^
中至少部分数据是否满足预定的条件 如图 32所示, 表示窗 P Wa[krl69, kt], 为判断^ ]中至少部分数据是否满足 预定条件 选择 5个字节, 图 32中 "國"表示选择的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将选择的 5字节数据反 复利用 51次, 共获得 255字节, 以增加随机性。 其中每个字节由 8位组成, 记为 ^ .,. α^,表示 255个字节中第 m个字节的第 1到 第 8 位, 因 此, 255 个字节对应 的位可以表示为 : , V =1,当一" α =00†, V =-1,
Figure imgf000118_0001
其中 表示 , .. 中的任一个, 255个字节对应的位按照 "m,„与 Vamn 的 转 换 关 系 得 到 矩 阵 , 可 以 表 示 为 :
V, 1 ... ν
V … V
, 选取大量随机数, 组成矩阵, 由随机数
V V
,1 , … V 据组成的矩阵一旦组成, 保持不变, 如从服从特定分布 (这里以 正态分布为例) 的随机数中选择 255*8 个随机数组成矩阵 R:
Figure imgf000118_0002
Figure imgf000118_0003
'2558 将矩阵 ^的第 m行与矩阵 R的第 m行的随机 数相乘, 然后求和得到一个值, 具体表示为
Figure imgf000118_0004
+ ···+ V * 。根据该方法,获得 、 Sa2…到 Sa255 ,统计 、 Sa2... 到 255中满足特定条件(这里以大于 0为例)的值的个数 K。 由于 矩阵 R服从正态分布, 则 m与矩阵 R—样, 仍然服从正态分布, 根据概率论, 正态分布随机数大于 0的概率为 1/2, 在& Sa2... 到 255中, 每个值大于 0 的概率为 1/2, 所以 K满足二项分布:
P(k = n) = C" (-)" (丄) 255- " = C" (丄) 255
2 2 255V 。 根据统计结果, 判断& sa2... 到 255的值大于 0的个数 κ是否为偶数, 二项分布的随机数为偶 数的概率为 1/2, 所以 K以 1/2的概率满足条件。 当 K为偶数时, 表明 ^ [ 169, t,]中至少部分数据满足预定条件 当 Κ为奇数 时, 表明 ^ -169, 中至少部分数据不满足预定条件 ,这里 即指根据上述方式获得的 Sal、 Sa2…到 255的值大于 0的个数 K为 偶数。 在图 21所示的实施方式中, 在^ ^-169,^]、 ί2[ -ΙΊ0,^ -1]、 Wi3[k lll,k 2], Wi4[k l72,k 3]. Wl5[krl73,k 4], wi6[k \74, k 5]. 7| ;-175,/<:,-6]、 ^0,-176,/(,-7]、 Wl9[krm ,krS], Wn0 [ kt -178Λ-9]和^„[ -179Λ.-10]中, 各窗口大小相同, 即窗口大小均 为 169 字节, 同时判断窗口中至少部分数据是否满足预定条件的 方式也相同,具体见上述判断^ -169, 中至少部分数据是否 满足预定条件 (^的描述。 因此, 如图 32所示, 表示判断窗口 Wl2[kr\70, -1]中至少部分数据是否满足预定条件 时选择的 1 个字节, 相邻两个选择的字节之间相差 42个字节。 将选择的 5字 节数据反复利用 51次, 共获得 255字节, 以增加随机性。 其中每 个字节由 8位组成, 记为 H 表示 255个字节中第 m个字节 的第 1 到第 8 位, 因此, 255 个字节对应的位可以表示为:
Figure imgf000119_0001
其中 „表示 ,. ^中的任一个, 255 个字节对应的位按照 „与
V 的转换关系得到矩阵 ,可以表示为:
Figure imgf000119_0002
判断 Wtl [k \69, ]中至少部分数据是否满足预定条件的方式与判 断窗口 ^2[ -170, 中至少部分数据是否满足预定条件的方式 相同, 因此使用矩阵 R:
Figure imgf000120_0001
8人将矩阵 的第 m行 与矩阵 R的第 m行的随机数相乘, 然后求和得到一个值, 具体表 示为 Sbm= U U Vbm,2* hm,2 + ...+ Vbm 、 hm,s。 根据该方法, 获得 、 sb2...到 sblii , 统计 、 sb2...到 sb255中满足特定条件(这里以大于 0为例)的值的个数 K。 由于矩阵 R服从正态分布, 则& m与矩阵 R 一样, 仍然服从正态分布, 根据概率论, 正态分布随机数大于 0 的概率为 1/2,在 Sbl 、 Sb2.. Sb255中,每个值大于 0的概率为 1/2,
P(k = n) = C2 n 55 (-)" (丄) 255- " = C2 n 55 (丄) 255
所以 K满足二项分布: 255 W 255 27 。 根据统计 结果, 判断 、 到 255的值大于 0的个数 K是否为偶数, 二 项分布的随机数为偶数的概率为为 1/2, 所以 K以 1/2的概率满足 条件。 当 K为偶数时, 表明 ^ -1]中至少部分数据满足 预定条件 C2; 当 K为奇数时, 表明 ^ -170, -1]中至少部分数 据不满足预定条件 C2,这里 C2即指根据上述方式获得的 、 到 255的值大于 0的个数 K为偶数。图 21所示的实施方式中, 2[
-170, -1]中至少部分数据满足预定条件 C2
因此, 如图 32所示, "■,,表示判断窗口 ^ 3μ;-171, -2]中至少部 分数据是否满足预定条件 C3时选择的 1个字节, 相邻两个选择的字节 之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节,以增加随机性。然后使用判断窗口 ^[^-169,^]和^ 2μ;-170Λ
-1]中至少部分数据是否满足预定条件的方法, 判断^ [ -171Λ.-2] 中至少数据是否满足预定条件 C3。图 21所示的实施方式中, ^3[ -171, -2]中至少部分数据满足预定条件。 如图 32所示, 表示判断窗 口 Wl4 [ kt -172, kt -3]中至少部分数据是否满足预定条件 4时选择的 1个 字节, 相邻两个选择的字节之间相差 42个字节。 将选择的 5字节数据 反复利用 51次,共获得 255字节,以增加随机性。然后使用判断窗口 W
[ -169, ]、 ^2[ 170Λ·-1]和^ [ -171Λ-2]中至少部分数据是否满 足预定条件的方法, 判断 4[ -172, -3]中至少部分数据是否满足预 定条件 C4。 图 21所示的实施方式中, ^4[ -172, -3]中至少部分数据 满足预定条件 C4。 如图 32所示, "IB"表示判断窗口 ^[^-173,^-4] 中至少部分数据是否满足预定条件 C5时选择的 1个字节, 相邻两个选 择的字节之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共 获得 255字节, 以增加随机性。 然后使用判断窗口^ [ -169, ]、 Wa μ;-170Λ·-1]、 ^3[ -171, -2]和 ^4[ -172, -3]中至少部分数据是否 满足预定条件的方法, 判断 Wl5 [k 173, kt -4]中至少数据是否满足预定 条件 C5。 图 21所示的实施方式中, ^[^-173,^-4]中至少部分数据不 满足预定条件 C5
当 [ -173Λ.-4]中至少部分数据不满足预定条件时 C5 ,从点 pl5 沿着数据流分割点查找方向跳跃 7个字节,在第 7个字节的结束位置获 得下一个潜在分割点 , 如图 22所示, 根据为去重服务器 103预设的 规则, 为潜在分割点 确定窗口^ [ -169, ], 判断窗口^ [ -169, ]中至少部分数据是否满足预定条件 的方式与判断窗口^ [ kt - 169Λ. ]中至少部分数据是否满足预定条件 x的方式相同, 因此如图 33所示, ^表示窗口,为判断中至少部分数据是否满足预定条件 ς, 选择 5个字节, 图 33中 "國"表示选择的 1个字节,相邻两个选择的字节 之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255 字节, 以增加随机性。 其中每个字节由 8位组成, 记为 ^,Λ,.^,Λ表 示 255个字节中第 m个字节的第 1到第 8位, 因此, 255个字节对应的位 可以表示为:
Figure imgf000122_0001
=0时, ^^'=-1, 其中" m,„ '表示 ^,Λ.." ^'中的任一个, 255个字节对 应的位按照《m„ '与 的转换关系得到矩阵 α', 可以表示为:
。判断窗口中至少部分数据是否满足预定的
Figure imgf000122_0002
条件与判断窗口 ^[ -169Λ.]中至少部分数据是否满足预定的条件
的方式相同, 因此使用矩阵 R:
Figure imgf000122_0003
"255'2 "' ,8人将矩阵 。'的第 m 行与矩阵 R的第 m行的随机数相乘, 然后求和得到一个值, 具体表示 ^ S = Vam ^hm,+ Vam, ' * ΛΜ,2 + ... + V ' * 0 根据该方法, 获得 、
…到 255 ', 统计 、 到 255 '中满足特定条件(这里以大 于 0为例) 的值的个数 K。 由于矩阵 RI 人正态分布, 则 m '与矩阵 R 一样, 仍然服从正态分布, 根据概率论, 正态分布随机数大于 0的概 率为 1/2, 在 '、 2'...到 255 '中, 每个值大于 0的概率为 1/2, 所以
P(k = n) = C2"55(丄)" (丄) 255- " = C2"55 (-)255
K满足二项分布: 2 2 2 。 根据统计结果, 判断 '、 到 255 '的值大于 0的个数 Κ是否为偶数, 二项分布的 随机数为偶数的概率为 1/2, 所以 Κ以 1/2的概率满足条件。 当 Κ为偶数 时, 表明 l[ -169, ]中至少部分数据满足预定条件 当 Κ为奇数 时, 表明 ^[ -169 ]中至少部分数据不满足预定条件 。 判断 Wl2 [ -170, t; -1 ]中至少部分数据是否满足预定条件 C2的方 式和判断 [ -170,^-1]中至少部分数据是否满足预定条件 C2的方 式相同, 因此, 如图 33所示, 表示判断窗口 ^2[ -170, -1]中至 少部分数据是否满足预定条件 2时选择的 1个字节, 相邻两个选择的 字节之间相差 42个字节。 将选择的 5字节数据反复利用 51次, 共获得 255字节, 以增加随机性。 其中每个字节由 8位组成, 记为
Figure imgf000123_0001
表示 255个字节中第 m个字节的第 1到第 8位, 因此, 255个字节对应的 位可以 当 6,
=0时,
Figure imgf000123_0002
节对应 的位按照 U与 '的转换关系得到矩阵 可以表示为:
V V V
y Μ,Ι y b\,2 , ·· y ,8 、
V V V
y b2,\ v b2,2 '
。判断窗口 ^2[ 170Λ.-1]中至少部分数据是
V V V
6255,1 y >255,2 ' '· y 6255,8 J 否满足预定条件 和 WJ2 [ ^-170, -1 ]中至少部分数据是否满足预定
Figure imgf000123_0003
条件 的方式相同, 因此仍使用矩阵 R: 、 5'1 "255'2 "' "255 ,将矩阵 Vb,的第 m行与矩阵 R的第 m行的随机数相乘, 然后求和得到一个值, 具体表示为 sbm' = vbm, ' * κ + vbm,2 ' * hm +...+ vbm^ hmfi。 根据该方法 , 获得 、 · - .到 sbl55 ' ,统计 、 sb2 ..到 sb255 '中满足特定条件 (这 里以大于 0为例) 的值的个数 K。 由于矩阵 RI 人正态分布, 则 m '与 矩阵 R—样, 仍然服从正态分布, 根据概率论, 正态分布随机数大于 0 的概率为 1/2, 在 、 2'...到 255 '中, 每个值大于 0的概率为 1/2,
P(k = n) = C2 n 55 (-)" (丄) 255— " = C2 n 55 (丄) 255
所以 K满足二项分布: 27 Ύ 255、2J 。 根据统计结 果, 判断 '、 到 255 '的值大于 0的个数 K是否为偶数, 二项分 布的随机数为偶数的概率为为 1/2, 所以 K以 1/2的概率满足条件。 当 K 为偶数时, 表明中至少部分数据满足预定条件 C2; 当 K为奇数时, 表 明 ^2[ -170, -1]中至少部分数据不满足预定条件 C2。同理,判断^ [ -171 , -2]中至少部分数据是否满足预定条件 C3的方式与判断 WJ3 [ -171, -2]中至少部分数据是否满足预定条件 C3的方式相同,同理, 判断 ^4[ -172 -3]中至少部分数据是否满足预定条件 C4、 判断
[ -173, -4]中至少部分数据是否满足预定条件 C5、 判断 .6[ -174, -5]中至少部分数据是否满足预定条件 C6、 判断 ^7[ -175, -6]中 至少部分数据是否满足预定条件 C7、判断 [ - 176, -7]中至少部分 数据是否满足预定条件 8、判断 .9[ -177, -8]中至少部分数据是否 满足预定条件 C9、 判断 ifl。 [k厂] &,k】 -9]中至少部分数据是否满足预 定条件 C1Q和判断 β1 [ krU9, -10]中至少部分数据是否满足预定条 件 Cu, 在此不再赘述。
本实施例中使用随机函数判断窗口 Wiz [k-Az, kt + Bz]中至少部 分数据是否满足预定条件 Cz, 仍然以图 21所示实施方式为例,根据在 去重服务器 103上预设的规则, 为潜在分割点 确定窗口
kt], 判断^ [ -169, ]中至少部分数据是否满足预定的条件 如 图 32所示, ^表示窗口 ^ -169, kt], 为判断 ]中至 少部分数据是否满足预定条件 选择 5个字节, 图 32中 "國"表示选 择的 1个字节, 相邻两个选择 "國,,的字节之间相差 42个字节。 其中一 种实现方式为使用 HASH函数计算选择的 5个字节,使用 HASH函数计 算得到的数值是一个固定均匀分布, 如果使用 HASH函数计算得到的 数值为偶数, 则判断 ^[ l69, 中至少部分数据满足预定条件 即 (^表示根据上述方式使用 HASH函数计算得到的数值为偶数。 因此,
Wa [k l69, ]中至少部分数据是否满足预定条件的概率为 1/2。 在图 21所示的实施方式中, 使用 Hash函数判断 2[ 17( ;-1]中至少部分 数据是否满足预定条件 C2、 [^ -171, -2]中至少部分数据是否满足 预定条件 、 ^4[^-172Λ.-3]中至少部分数据是否满足预定条件 和 5[t;-173,t;-4]中至少部分数据是否满足预定条件 C5 , 具体实现可参 考描述图 21所示实施方式使用 Hash函数判断 ^ [ ki -169, ]中至少部 分数据是否满足预定条件的方式 在此不再赘述。
当 ^5 μ;-173Λ.-4]中至少部分数据不满足预定条件 C5时, 从潜在 分割点 ki沿着数据流分割点查找方向跳跃 7个字节,在第 7个字节的结 束位置获得当前潜在分割点 , 如图 22所示, 根据为去重服务器 103 预设的规则, 为潜在分割点 确定窗口^ [ -169, ], 判断窗口^^ [ k厂 169, kJ ]中至少部分数据是否满足预定条件 的方式与判断窗口
Wn [ ki -169, kt ]中至少部分数据是否满足预定条件 Cx的方式相同, 因此 如图 33所示, ^表示窗口 ^ [ -169, ], 为判断^ [ -169, ]中至 少部分数据是否满足预定条件 选择 5个字节, 图 33中 "國"表示选 择的 1个字节,相邻两个选择的字节 "國"之间相差 42个字节。使用 Hash 函数计算从窗口 l[ -169, ]中选取的 5个字节, 如果得到的数值为 偶数, 则^ [ -169, ]中至少部分数据满足预定条件 。 图 33中, 判 断 2 [ k, -1 -1 ]中至少部分数据是否满足预定条件 2的方式和判 断 2 [ - 170, - 1 ]中至少部分数据是否满足预定条件 C2的方式相同, 因此, 如图 33所示, " "表示判断窗口 .2[ -170, -l]中至少部分 数据是否满足预定条件 2时选择的 1个字节, 相邻两个选择的字节
之间相差 42个字节。 使用 Hash函数计算选择的 5个字节, 如果得 到的数值为偶数,则 ^2 [ -170,^-1]中至少部分数据满足预定条件 C2。 图 33中, 判断^ [ -171Λ.-2]中至少部分数据是否满足预定条件 C3的 方式与判断 [ - 171 , kJ -2 ]中至少部分数据是否满足预定条件 C3的 方式相同, 因此, 如图 33所示, 表示判断窗口 ^3[ -171, -2] 中至少部分数据是否满足预定条件 C3时选择的 1个字节, 相邻两个选 择的字节 之间相差 42个字节。使用 Hash函数计算选择的 5个字节, 得到的数值为偶数,则 [ -171,^-2]中至少部分数据满足预定条件
C3。 图 33中, 判断 ^.4[ -172, -3]中至少部分数据是否满足预定条件
C4的方式和判断窗口 ^4[ -172, -3]中至少部分数据是否满足预定 条件 的方式, 因此,如图 33所示, "表示判断窗口 ^.4[ -172,
-3]中至少部分数据是否满足预定条件 4时选择的 1个字节, 相邻两个 选择的字节" "之间相差 42个字节。 使用 Hash函数计算选择的 5个字 节,得到的数值为偶数, 则 ^4[ -172, -3]中至少部分数据满足预定 条件 C4。根据上述方法,判断 ^.5[ -173, -4]中至少部分数据是否满 足预定条件 C5、判断 .6[ -174, -5]中至少部分数据是否满足预定条 件 C6、判断 ^7[ -175 -6]中至少部分数据是否满足预定条件 C7、判 断 ^8 [ -176, -7]中至少部分数据是否满足预定条件 C8、判断 [ -177, -8]中至少部分数据是否满足预定条件 C9、判断^。[ -178, -9] 中至少部分数据是否满足预定条件 C10和判断 [ - 179, - 10]中至 少部分数据是否满足预定条件 Cu, 在此不再赘述。 本实施例中使用随机函数判断窗口 Wiz [k -Az, kt + Bz]中至少部 分数据是否满足预定条件 Cz, 以图 21所示的实施方式为例,根据在去 重服务器 103上预设的规则, 为潜在分割点 确定窗口^ -169, kt], 判断^ [ 169, 中至少部分数据是否满足预定条件 如图 32所 示, ^表示窗口 ^ kt], 为判断^ -169, 中至少部分 数据是否满足预定条件 选择 5个字节, 图 32中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "■"分 别转换成一个十进制数值, 分别表示为 α1 ^ α23、 α4和 α5。 因为
1个字节由 8位组成,所以每个字节 "國 "作为一个数值,则 fll23、 α4和 α5中的任一个 ar均满足 0≤ ar≤255。 和《5组成
1*5的矩阵。 从服从二项分布的随机数中选择 256*5个随机数, 组成矩
"θ,Ι "0,2
〃 h1,1 〃 h1,2 .
阵 R, 表示为:
、〃 h h ,
255,5 "255,5 * * 255,5 y
根据 A的值和所在的列,从矩阵 R中查找对应的值,如 =36, a, 位于第 1列, 则查找 ¾对应的值; 根据 的值和所在的列, 从矩阵 R 中查找对应的值, 如^=48, ^位于第 2列, 则查找 /482对应的值; 根 据《3的值和所在的列, 从矩阵 R中查找对应的值, 如《3=26, «3位于 第 3列, 则查找¾3对应的值; 根据 4的值和所在的列, 从矩阵 R中查 找对应的值, 如 =26, ^位于第 4列, 则查找 ¾4对应的值; 根据《5 的值和所在的列, 从矩阵 R中查找对应的值, 如《5=88, «5位于第 5 列, 则查找½,5对应的值。 = /¾+/V2 +/¾3 +/¾4 +/V5, 因为矩阵 良 从二项分布, 因此, 也服从二项分布。 当 为偶数, 则 ]中至少部分数据满足预定条件 当 为奇数, Wn [k 69, kt] 中至少部分数据不满足预定条件 S为偶数的概率为 1/2, 表示 按上述方式计算 为偶数。 在图 21所示实施例中, ^ -169, 中 至少部分数据满足预定条件(^。如图 32所示, "^"表示判断窗口 2 [ kt
-170Λ.-1]中至少部分数据是否满足预定条件 C2时分别选择的 1个字 节, 在图 32中, 分别用序号 170、 128、 86、 44和 2表示, 相邻两个选 择的字节之间相差 42个字节。将序号 170、 128、 86、 44和 2的字节 " " 分别转换成一个十进制数值, 分别表示为 、 b2、 、 和 。 因为
1个字节由 8位组成,所以每个字节"^ "作为一个数值,则 、 b2、 ¾、 和 中的任一个 均满足 0≤ ≤255。 b2、 b3、 和 组成 1*5 的矩阵。 本实施方式中, 判断 ^口 ^中至少部分数据是否满足预定 条件的方式相同, 因此仍然使用矩阵 R, 根据 的值和所在的列, 从 矩阵 R中查找对应的值, 如 =66, 位于第 1列, 则查找 6>1对应的 值; 根据 的值和所在的列, 从矩阵 R中查找对应的值, 如 =48, b2 位于第 2列, 则查找 2对应的值; 根据¾的值和所在的列, 从矩阵 R 中查找对应的值, 如63=99, ¾位于第 3列, 则查找¾,3对应的值; 根 据¾的值和所在的列, 从矩阵 R中查找对应的值, 如 =26, 位于 第 4列, 则查找 A2M对应的值; 根据 的值和所在的列, 从矩阵 R中查 找对应的值, 如 =90, 位于第 5列, 则查找 5对应的值。 = ^+ Z^+Z^+Z^+Z^,因为矩阵 RI 人二项分布, 因此, 也服从二项分 布。当 为偶数,则 ^2μ;-170Λ.-1]中至少部分数据满足预定条件 C2 , 当 为奇数, 则 ^2[ -170, -1]中至少部分数据不满足预定条件 C2 , 为偶数的概率为 1/2。 在图 21所示实施例中, 2[ -170,^-1]中至 少部分数据满足预定条件 C2。 使用同样的规则, 分别判断^ [ -171, -2]中至少部分数据是否满足预定条件 C3、判断 ^4[ 172Λ.-3]中至 少部分数据是否满足预定条件 4、 判断 5 -173Λ. -4]中至少部分数 据是否满足预定条件 C5、 判断 6[ -174Λ.-5]中至少部分数据是否满 足预定条件 C6、 判断Vl7 -175Λ. -6]中至少部分数据是否满足预定条 件 C7、 判断^ [ -176Λ.-7]中至少部分数据是否满足预定条件 C8、 判 断 Wl9 [ 8]中至少部分数据是否满足预定条件 C9、 判断 Wm [kt -178Λ.-9]中至少部分数据是否满足预定条件 <^。和判断^„[ 179Λ. - 10]中至少部分数据是否满足预定条件 C„。 图 21所示的实施方式中, Wl5 [ -173Λ.-4]中至少部分数据不满足预定条件 c5 , 从潜在分割点 沿着数据流分割点查找方向跳跃 7个字节,在第 7个字节的结束位置获 得当前潜在分割点 , 如图 22所示, 根据为去重服务器 103预设的规 则,为潜在分割点 确定窗口^ [ -169, ],判断窗口^ [ -169, ] 中至少部分数据是否满足预定条件 的方式与判断窗口 ^ -169Λ. ] 中至少部分数据是否满足预定条件 的方式相同, 因此如图 33所示, ^表示窗口 ^,[^-169,^], 为判断^ [ -169, ]中至少部分数据是 否满足预定条件 图 33中序号为 169、 127、 85、 43和 1的字节 "■" 分别表示选择的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "國"分别转换成一个十进制数 值, 分别表示为 和《5'。 因为 1个字节由 8位组成, 所以每个字节 "國"作为一个数值, 则 和《5'中的任 一个 α 均满足 0≤ αΓ'<255ο "2、 ,、 '和 "5'组成 1*5的矩阵。 判断窗口 ^ [ - 169, ]中至少部分数据是否满足预定条件 的方式 与判断窗口 ^ [ - 169,^ ]中至少部分数据是否满足预定条件 的方
Figure imgf000130_0001
式相同, 因此, 仍然使用矩阵 R, 表示为: 〃 h1,1 〃 h1,2 . '. Ks
、〃 h255,5 " h255,5 , - ^55,
根据 的值和所在的列,从矩阵 R中查找对应的值,如 =16, Ωι '位于第 1列, 则查找 对应的值; 根据。2 '的值和所在的列, 从 矩阵 R中查找对应的值, 如 =98, 。2 '位于第 2列, 则查找¾2对 应的值; 根据《3 '的值和所在的列, 从矩阵 R中查找对应的值, 如 α3'=56, «3 '位于第 3列, 则查找¾,3对应的值; 根据。4 '的值和所在 的列, 从矩阵 R中查找对应的值, 如 =36, 。4 '位于第 4列, 则 查找 ¾4对应的值; 根据《5 '的值和所在的列, 从矩阵 R 中查找对 应的值, 如《5'=99, «5'位于第 5列, 则查找¾,5对应的值。 =
+ ,2+ 3+ Μ + ¾9,"因为矩阵 R服从二项分布, 因此, '也服从二 项分布。 当 '为偶数, 则 ^,[ -169, ]中至少部分数据满足预定 条件 当 '为奇数, 则^ -^^ ]中至少部分数据不满足预定 条件 '为偶数的概率为 1/2。
判断 2 [ -170Λ. -1 ]中至少部分数据是否满足预定条件 C2的方 式和判断 [ -170,^-1]中至少部分数据是否满足预定条件 C2的方 式相同, 因此, 如图 33所示, " "表示判断窗口 2[ -170, -l]中至 少部分数据是否满足预定条件 2时选择的 1个字节, 相邻两个选择的 字节之间相差 42个字节, 分别用序号 170、 128、 86、 44和 2表示, 相 邻两个选择的字节之间相差 42个字节。 将序号 170、 128、 86、 44和 2 的字节" ¾ ',分别转换成一个十进制数值, 分别表示为 v、 V、 b3'、 和 。因为 1个字节由 8位组成,所以每个字节 作为一个数值, 贝'】V、 V、 、 和 中的任一个 均满足 0≤V≤255。 v、 V、 V、 和 组成 1*5的矩阵。 与判断窗口 ^2[ 170Λ.-1]中至少部分数据 是否满足预定条件 使用相同的矩阵 R, 根据 V的值和所在的列, 从 矩阵 R中查找对应的值, 如 ν=210, V位于第 1列, 则查找/ ¾。 对应 的值;根据 的值和所在的列,从矩阵 R中查找对应的值,如 =156, 位于第 2列, 则查找 ¾56,2对应的值; 根据 的值和所在的列, 从矩 阵 R中查找对应的值,
Figure imgf000131_0001
位于第 3列, 则查找 ¾4,3对应的 值;根据 的值和所在的列,从矩阵 R中查找对应的值,如 =60, 位于第 4列, 则查找 A6M对应的值; 根据 的值和所在的列, 从矩阵 R 中查找对应的值, 如 =90, 位于第 5列, 则查找 ¾。,5对应的值。 S2
= l + ^6,2 + ^44,3 + 4 +^90,5 ' 与 的判断条件相同, 当 S2 '为偶数, 则 ^2[ -170, -1]中至少部分数据满足预定条件 C2, 当 S2 '为奇数, 则 ^2[ -170, -1]中至少部分数据不满足预定条件 , s2'为偶数的 概率为 1/2。
同理, 判断^ [ - 171 , kt -2 ]中至少部分数据是否满足预定条件 C3 的方式与判断VJ3 [k]-\l\,k] -2]中至少部分数据是否满足预定条件 C3 的方式相同, 同理, 判断 4[ -172, -3]中至少部分数据是否满足预 定条件 C4、判断 ^.5[ -173, -4]中至少部分数据是否满足预定条件 C5、 判断 6[ -174, -5]中至少部分数据是否满足预定条件 C6、 判断
[ -175, -6]中至少部分数据是否满足预定条件 C7、 判断 .8[ -176, -7]中至少部分数据是否满足预定条件 C8、 判断 ^9[ -177, -8]中 至少部分数据是否满足预定条件 C9、 判断 jW [^-178,^. -9]中至少部 分数据是否满足预定条件 <^和判断^ i [-179, -10]中至少部分数 据是否满足预定条件 Cu, 在此不再赘述。
本实施例中使用随机函数判断窗口 Wiz [k -Az, ^ + Βζ]中至少部 分数据是否满足预定条件 Cz , 以图 21所示的实施方式为例,根据在去 重服务器 103上预设的规则, 为潜在分割点 确定窗口 ^ [^-169, kt], 判断^ [ 169, 中至少部分数据是否满足预定的条件 如图 32 所示, ^表示窗口^ [ 169, kt], 为判断 ^ [ t;-169, ]中至少部 分数据是否满足预定条件 选择 5个字节, 图 32中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "■"分 别转换成一个十进制数值, 分别表示为 al ^ a2、 a 、 a45。 因为 1 个字节由 8位组成,所以每个字节 "國 "作为一个数值,则 Ωι、 α23、 α4和 α5中的任一个 as均满足 0≤ as≤255。 l^、 CI 2、 X 、 d ^和 5组成 1*5 的矩阵。从服从二项分布的随机数中选择 256*5个随机数,组成矩阵 R, 表示为: 数中选择 256
个随机
Figure imgf000132_0001
, 组成矩阵 G, 表示为: 根据 Ωι的值和所在的列, 如^=36, Ωι位于第 1列, 则从矩阵 R中 查找查找 ¾对应的值,从矩阵 G中查找 g36;1对应的值; 根据《2的值和 所在的列, 如《2=48, «2位于第 2列, 则从矩阵 R中查 /48,2对应的值, 从矩阵 G中查找 g4S,2对应的值; 根据 3的值和所在的列,如 3=26, 3 位于第 3列, 则从矩阵 R中查找 ¾,3对应的值, 从矩阵 G中查找 6,3对 应的值; 根据《4的值和所在的列, 如《4=26, «4位于第 4列, 则从矩阵 R中查找 ¾4对应的值, 从矩阵 G中查找 g264对应的值; 根据 5的值和 所在的列,如^=88, 5位于第 5列,则从矩阵 R中查找 /¾,5对应的值, 从矩阵 G中查找 g88,5对应的值。 Sh = h36, + 2 + + ^26,4 + /½,5 ,因为矩阵 从二项分布, 因此, 也服从二项分布; =g36,1+g4S,2+g26,3 + g26,4 + 5, 因为矩阵 G月良从二项分布, 因此 也月良从二项分布。 当 和 中有 1个为偶数, M Wn[k l69, ]中至少部分数据满足预定条件 当 Sg均为奇数,则 ^ -169, 中至少部分数据不满足预定条 件 表述按照上述方法获得的 和 g中有 1个为偶数。因为 和 均服从二项分布, 因此 为偶数的概率为 1/2, g为偶数的概率 为 1/2, 和 中有 1个为偶数的概率为 1-1/4=3/4, 因此,
]中至少部分数据满足预定条件 (^的概率为 3/4。 在图 21所示实施例 中, 中至少部分数据满足预定条件 。 在图 21所示的 实施方式中,在^ | ;-169Λ·]、 Wi2[krl70,krl], Wi3[krl7l,kr2], Wi4 | ;-172, -3]、 Wi5[krl73,kr4], Wi6[krl74,kr5], Wn[k \l 5,^-6]. Ά μ; -176,^-7]、 Wi9[kr\ll ,kr^ ^。μ;-178Λ·-9]和 Wm[ki-\19,ki-\0'\ 中, 各窗口大小相同,即窗口大小均为 169字节, 同时判断窗口中至少 部分数据是否满足预定条件的方式也相同,具体见上述判断 [kt -169Λ.]中至少部分数据是否满足预定条件 (^的描述。 因此, 如图 32 所示, "^"表示判断窗口 ^2μ;-170Λ.-1]中至少部分数据是否满足预 定条件 C2时分别选择的 1个字节, 在图 32中, 分别用序号 170、 128、 86、 44和 2表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、 44和 2的字节 "^"分别转换成一个十进制数值, 分别表示 为 、 、 、 和 。 因为 1个字节由 8位组成, 所以每个字节 "^" 作为一个数值, 则 όιbib、 和 中的任一个 均满足 0≤ ≤255。 !^、 b2、 ¾、 和 组成 1*5的矩阵。 本实施方式中, 判断各窗口中至 少部分数据是否满足预定条件的方式相同, 因此仍然使用相同矩阵 R
Figure imgf000134_0001
位于第 1列, 则从矩阵 R 中查找 对应的值, 从矩阵 G中查找 g661对应的值; 根据 的值和所 在的列, 如 =48, 位于第 2列, 则从矩阵 R中查找 48,2对应的值, 从矩阵 G中查找 g4S,2对应的值;根据 的值和所在的列,如63=99, ¾位 于第 3列, 则从矩阵 R中查找 ¾,3对应的值, 从矩阵 G中查找 9,3对应 的值; 根据 ¾的值和所在的列, 如¾=26, ¾位于第 4列, 则从矩阵 R 中查找 ¾,4对应的值, 从矩阵 G中查找 g26,4对应的值; 根据 的值和所 在的列, 如 =90, 位于第 5列, 则从矩阵 R中查找 ¾。,5对应的值, 从 矩阵 G中查找 g9Q,5对应的值。 = ½,2+ h9 ,+ h26A + / 5,因为矩阵 R 服从二项分布, 因此, 也服从二项分布。 ^+g^+g^+g +g95, 因为矩阵 G服从二项分布, 因此, S2g也服从二项分布。 当 和 中有 1个为偶数, 则 ^2[ -170Λ.-1]中至少部分数据满足预定条 件 C2, 当 和 均为奇数, 则^ [ -170Λ.-1]中至少部分数据不满 足预定条件 C2, ¾和 中有 1个为偶数的概率为 3/4。 在图 21所示实 施例中, ^2[ 170Λ.-1]中至少部分数据满足预定条件 C2。 使用同样 的规则, 分别判断 W,3 [ -171Λ.-2]中至少部分数据是否满足预定条件 C3、 判断 ^4[^-172,^-3]中至少部分数据是否满足预定条件 C4、 判断 ^[^-173,^-4]中至少部分数据是否满足预定条件 C5、 判断^ 6[ -174Λ.-5]中至少部分数据是否满足预定条件 C6、判断^ 7μ;-175Λ·-6] 中至少部分数据是否满足预定条件 C7、 判断^ 8 [ - 176, kt -7]中至少部 分数据是否满足预定条件 C8、 判断^ [ -177Λ.-8]中至少部分数据是 否满足预定条件 、判断 ^。 [ -178Λ.-9]中至少部分数据是否满足预 定条件 C1Q和判断 ^„ [ k, -179, -10]中至少部分数据是否满足预定条 件 Cu。 图 21所示的实施方式中, 5[ t;-173, t;-4]中至少部分数据不满 足预定条件 C5 , 从潜在分割点 沿着数据流分割点查找方向跳跃 7个 字节,在第 7个字节的结束位置获得当前潜在分割点 kj ,如图 22所示, 根据为去重服务器 103预设的规则, 为潜在分割点 确定窗口 W [kJ -169, ], 判断窗口^ [ -169, ]中至少部分数据是否满足预定条件 的方式与判断窗口 ^ 1 [ kt -169, ]中至少部分数据是否满足预定条 件(^的方式相同, 因此如图 33所示, ^表示窗口^ [ -169, ], 为 判断 ^[ -169, ]中至少部分数据是否满足预定条件 ,图 33中序号 为 169、 127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻 两个选择的字节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1 的字节 "國"分别转换成一个十进制数值, 分别表示为 '、 2'、 、 4 '和 '。因为 1个字节由 8位组成,所以每个字节 "國 "作为一个数值, 贝' 、 α2' , β3'、 α4 '和 5'中的任一个 均满足 0≤β ≤255。 α 、 α2' , 3'、 4 '和 组成 1*5的矩阵。 使用与判断窗口^ ^-169,^]中至少 部分数据是否满足预定条件 相同的矩阵 R和 G, 分别表示为:
Figure imgf000135_0001
5 J
根据 的值和所在的列, 如" =16, 位于第 1列, 则从矩阵 R中查 找 ¾对应的值,从矩阵 G中查找 g16对应的值;根据《2 '的值和所在的 列, 如 =98, 2 '位于第 2列, 则从矩阵 R中查找 98,2对应的值,从矩 阵 G中查找 g9S,2对应的值; 根据《3 '的值和所在的列, 如《3'=56, 位 于第 3列,则从矩阵 R中查找 对应的值,从矩阵 G中查找 g56,3对应的 值; 根据 4 '的值和所在的列, 如 =36, 4 '位于第 4列, 则从矩阵 R 中查找 4对应的值,从矩阵 G中查找 g364对应的值; 根据《5 '的值和 所在的列, 如《5' =99, «5 '位于第 5列, 则从矩阵 R中查找 /¾9,5对应的 值,从矩阵 G中查找 g99,5对应的值。 ¾/ = ¾,1+ ¾8,2 + /¾3 +/¾6,4 +/¼5,因 为矩阵 RI良从二项分布, 因此, 也服从二项分布; ^^^^^+^^十 g56,3+g36,4 + ,5,因为矩阵 G服从二项分布,因此 '也服从二项分布。 当 A '和 '中有 1个为偶数, 则^ [ -169, ]中至少部分数据满足预 定条件 当 '和 g,均为奇数, 则^ [ -169, ]中至少部分数据 不满足预定条件 , A '和 g '有 1个为偶数的概率为 3/4。
判断 2 [ -170,^ -1 ]中至少部分数据是否满足预定条件 C2的方 式和判断 [ -170,^-1]中至少部分数据是否满足预定条件 C2的方 式相同, 因此, 如图 33所示, "^"表示判断窗口 ^2[ -170, -1]中至 少部分数据是否满足预定条件 2时选择的 1个字节, 相邻两个选择的 字节之间相差 42个字节。 在图 33中, 分别用序号 170、 128、 86、 44 和 2表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、 44和 2的字节 " "分别转换成一个十进制数值, 分别表示为 、 、 V、 和 V。 因为 1个字节由 8位组成, 所以每个字节 " "作为 一个数值, 则 、 V、 V、 V和 中的任一个 均满足 0≤V≤255。
V、 、 V、 和 组成 1*5的矩阵。 使用与判断窗口 ^2 [ -170, -1 ]中至少部分数据是否满足预定条件 2相同的矩阵 R和 G, 根据 b '的 值和所在的列, 如 =210, 位于第 1列, 则从矩阵 R中查找 /^^对 应的值,从矩阵 G中查找 。 对应的值; 根据 的值和所在的列, 如 V=156, 位于第 2列, 则从矩阵 R中查找 ½,2对应的值,从矩阵 G中 查找 g156,2对应的值; 根据 的值和所在的列, 如 =144, 位于第 3 列, 则从矩阵 R中查找 /¾44,3对应的值,从矩阵 G中查找 g144,3对应的值; 根据 的值和所在的列, 如 V=60, 位于第 4列, 则从矩阵 R中查 找 6。,4对应的值,从矩阵 G中查找 g6。,4对应的值;根据 的值和所在的 歹 |J, 如 =90, 位于第 5列, 则从矩阵 R中查找 ¾。,5对应的值,从矩 阵 G中查找 g9Q,5对应的值。 S = h2 + h + + Λ60;4 + h90,5 , S2 = g2W, + g156,2+g144,3+g6。,4+g9。,5。 当 > 和 · 中有 1个为偶数, 则^ [ 170, -1]中至少部分数据满足预定条件 C2,当 '和 g '均为奇数,则 ^.2[
-170,^-1]中至少部分数据不满足预定条件 C2, 和 '中有 1个为偶 数的概率为 3/4。
同理, 判断^ [ - 171 , kt -2 ]中至少部分数据是否满足预定条件 C3 的方式与判断VJ3 [k]-\l\,k] -2]中至少部分数据是否满足预定条件 C3 的方式相同, 同理, 判断 .4[ -172, -3]中至少部分数据是否满足预 定条件 C4、判断 ^.5[ -173, -4]中至少部分数据是否满足预定条件 C5、 判断 6[ -174, -5]中至少部分数据是否满足预定条件 C6、 判断
[ -175, -6]中至少部分数据是否满足预定条件 C7、 判断 .8[ -176, -7]中至少部分数据是否满足预定条件 C8、 判断 ^9[ -177, -8]中 至少部分数据是否满足预定条件 C9、 判断 WjW [^-178,^. -9]中至少部 分数据是否满足预定条件 <^和判断^ i [-179, -10]中至少部分数 据是否满足预定条件 Cu , 在此不再赘述。
本实施例中使用随机函数判断窗口 Wiz [k-Az, kt + Bz]中至少部 分数据是否满足预定条件 Cz, 以图 21所示的实施方式为例,根据在去 重服务器 103上预设的规则, 为潜在分割点 确定窗口^ [ -169, kt], 判断^ [ -169, 中至少部分数据是否满足预定的条件 如图 32 所示, ^表示窗口^ kt], 为判断 -169, ]中至少部 分数据是否满足预定条件 选择 5个字节, 图 32中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻两个选择的字 节之间相差 42个字节。 将序号为 169、 127、 85、 43和 1的字节 "■"依 次看成 40个位, 分别表示为
«4。中的任一 A , 当 Α=0时, Vat =-1, 当 ,=1时, Vat=L 根据 ^与^ 对应关系, 生成 、 Va2、 Va3、 Va4... Va40 o 从服从正态分布的随机数 中选择 40个随机数, 分别表示为: h2、 H S =va^hx + 。2* + *^+ 。4* + ...+ 。4。* 。。 因为 h2、 …/^服从正 态分布, 因此, S。也服从正态分布。 当 为正数, 则^ kt] 中至少部分数据满足预定条件 当 为负数或 0, 则^ kt] 中至少部分数据不满足预定条件 为正数的概率为 1/2。 在图 21 所示实施例中, 中至少部分数据满足预定条件 。 如 图 32所示 表示判断窗口 Wl2[kr\10, -1]中至少部分数据是否满 足预定条件 C2时分别选择的 1个字节,在图 32中,分别用序号 170、 128、
86、 44和 2表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、 44和 2的字节 "^"依次看成 40个位,分别表示为 、 b2、 ¾、 b2、 ¾、 中的任一 , 当 =0时, Vbt=-\ , 当^ = 1 时, Vb=i, 根据 与 对应关系, 生成^、 Vbl、 Vb3 , Vb4... Vb40 o 判断窗口 ^[^-169, 中至少部分数据是否满足预定条件 的方式 与判断窗口 ^2[ -170, 中至少部分数据是否满足预定条件 的 方式相同, 因此, 使用相同的随机数: , /¾、 h3, .,.Η^ , Sb = Vbl
+^^/^+^ +…+^。515/^。。 因为/ / h2, /¾、 A4...//4。月良 从正态分布, 因此, 也服从正态分布。 当 为正数, 则^ [ -170, -1]中至少部分数据满足预定条件 C2,当 为负数或 0,则 Wl2[krl70, -1]中至少部分数据不满足预定条件 C2, 为正数的概率为 1/2。 在 图 21所示实施例中, ^2[ -170, -1]中至少部分数据满足预定条件 C2。 使用同样的规则, 分别判断^ [ -171Λ.-2]中至少部分数据是否 满足预定条件 C3、 判断 ^4[ 172Λ.-3]中至少部分数据是否满足预定 条件 C4、 判断 ^5[ 173Λ.-4]中至少部分数据是否满足预定条件 C5、 判断 [ -174Λ.-5]中至少部分数据是否满足预定条件 C6、 判断 W„ [ kt -115,1, -6]中至少部分数据是否满足预定条件 C7、判断 Ά [ kt -176, kt -7]中至少部分数据是否满足预定条件 C8、判断^ [ -177Λ.-8]中至少 部分数据是否满足预定条件 C9、判断^。 [ -178Λ.-9]中至少部分数据 是否满足预定条件 C10和判断 ^„ [ kt -179, -10]中至少部分数据是否 满足预定条件 Cu。 图 21所示的实施方式中, ^5μ;-173Λ·-4]中至少部 分数据不满足预定条件 ,从潜在分割点 沿着数据流分割点查找方 向跳跃 7个字节, 在第 7个字节的结束位置获得当前潜在分割点 , 如 图 22所示, 根据为去重服务器 103预设的规则, 为潜在分割点 确定 窗口 [ -169, ],判断窗口^ [ -169, ]中至少部分数据是否满足 预定条件 的方式与判断窗口^ i [ kt -169, ]中至少部分数据是否满 足预定条件 的方式相同, 因此如图 33所示, ^表示窗口
^], 为判断 ^,[ -169, ]中至少部分数据是否满足预定条件 选 择 5个字节, 图 33中序号为 169、 127、 85、 43和 1的字节 "國"分别表 示选择的 1个字节, 相邻两个选择的字节之间相差 42个字节。 将序号 为 169、 127、 85、 43和 1的字节 "國"依次看成 40个位,分别表示为 、 α2,、 <¾'、 4' ... "40'。 、 α2,、 <¾'、 4' ... "40'中 0 任 ' a , 当 " =0 时, vat' =-i, 当 =1时, ^'=1, 根据 Ω /与 '对应关系, 生成 '、 2'、 3'、 να4 ..να40 判断窗口^ [ i69, ]中至少部分数据是否 满足预定条件 的方式与判断窗口 ^ 1 μ; - 169 Λ. ]中至少部分数据是 否满足预定条件(^的方式相同, 因此使用相同的随机数: hx. h2、 h3, ..h40。 ^:^^+^^ +^ ^+^^ +…+^ 。因为 h2、 h3, A4...//4。服从正态分布, 因此, 也服从正态分布。 当《 为 正数, 则^ [ -169 ]中至少部分数据满足预定条件 当 为负 数或 0, 则 ^[ -169, ]中至少部分数据不满足预定条件 为正 数的概率为 1/2。
判断 2 [ ki -1 -1 ]中至少部分数据是否满足预定条件 C2的方 式和判断 [ -170,^-1]中至少部分数据是否满足预定条件 C2的方 式相同, 因此, 如图 33所示, "^"表示判断窗口 ^2[ -170, -1]中至 少部分数据是否满足预定条件 2时选择的 1个字节, 相邻两个选择的 字节之间相差 42个字节。 在图 33中, 分别用序号 170、 128、 86、 44 和 2表示,相邻两个选择的字节之间相差 42个字节。将序号 170、 128、 86、 44和 2的字节 "^"依次看成 40个位,分别表示为 、 V、 、 V... 。'。 、 V、 、 。'中的任一 V, 当 =0时, '=-1, 当 = l 时, Vb =1,根据 与 '对应关系,生成 '、 Vb2 Vb3'、 Vb4 .. Vb40 判断^ [ 170 Λ. - 1 ]中至少部分数据是否满足预定条件 C2的方式和 判断 ^2 [ - 170, - 1 ]中至少部分数据是否满足预定条件 2的方式相 同, 因此,使用相同的随机数: 、 h2, /¾、 h4...h40 , S^V.^h.+ v^ 承^+^^ + ^^^ +…+^^。 /^。。 因为/ / /¾、 h3, .. 月良从正 态分布, 因此, 《 也服从正态分布。 当《 为正数,则 2[ -170, -l] 中至少部分数据满足预定条件 C2, 当《 为负数或 0, 则 ^2[ -170, -1]中至少部分数据不满足预定条件 C2, ^为正数的概率为 1/2。
同理, 判断^ μ; -171 , k, -2]中至少部分数据是否满足预定条件 C3的方式与判断 ^3 [ - 171 , -2 ]中至少部分数据是否满足预定条件 C3的方式相同, 同理, 判断 ^4[ -172, -3]中至少部分数据是否满足 预定条件 、判断 [ -173, -4]中至少部分数据是否满足预定条件 C5、判断 ^6[ -174, -5]中至少部分数据是否满足预定条件 C6、判断 WJ7 [ ^-175,^. -6]中至少部分数据是否满足预定条件 C7、 判断 WJS [ kJ -176,^-7]中至少部分数据是否满足预定条件 C8、判断 ^9[ -177, -8] 中至少部分数据是否满足预定条件 C9、 判断^。 [ - 178 , k -9]中至少 部分数据是否满足预定条件 C10和判断 [ k厂] 9, -10]中至少部分 数据是否满足预定条件 Cu , 在此不再赘述。
本实施例中使用随机函数判断窗口 Wiz [k -Az, kt + Bz]中至少部 分数据是否满足预定条件 Cz, 仍然以图 21所示实施方式为例,根据在 去重服务器 103上预设的规则, 为潜在分割点 确定窗口
kt], 判断^ [ -169, ]中至少部分数据是否满足预定的条件 如 图 32所示, ^表示窗口 ^ [ -169, kt], 为判断^ ]中至 少部分数据是否满足预定条件 C 选择 5个字节, 图 32中序号为 169、 127、 85、 43和 1的字节 "國"分别表示选择的 1个字节, 相邻两个选择 的字节之间相差 42个字节。将序号为 169、 127、 85、 43和 1的字节 "■" 转换成 1个十进制数, 范围为 0- (2Μ0-1 ) , 使用均匀分布随机数生成 器为 0-(2Λ40-1 )中的每一个十进制数生成 1个指定值,记录 0-( 2 0-1 ) 中的每一个十进制数与指定值之间的对应关系 R, —旦指定则该十进 制数对应的指定值就不变, 该指定值服从均匀分布, 如果该指定值为 偶数, M Wa[kr\69, 中至少部分数据满足预定条件 如果该指 定值为奇数, wn[krl69, ]中至少部分数据不满足预定条件 Cx 表示按照上述方法获得的指定值为偶数。因为均匀分布的随机数为偶 数的概率为 1/2,因此, ^, [ t;-169, ]中至少部分数据满足预定条件(^ 的概率为 1/2。 在图 21所示的实施方式中, 使用同样的规则, 分别判 断^ [ -170Λ.-1]中至少部分数据是否满足预定条件 C2, 判断 ^[ -171Λ.-2]中至少部分数据是否满足预定条件 C3、判断
Figure imgf000142_0001
中至少部分数据是否满足预定条件 C4、 判断^ -173Λ.-4]中至少部 分数据是否满足预定条件 C5, 在此不再赘述。
5[t;-173,t;-4]中至少部分数据不满足预定条件 C5, 从潜在分 割点 ki沿着数据流分割点查找方向跳跃 7个字节,在第 7个字节的结束 位置获得当前潜在分割点 , 如图 22所示, 根据为去重服务器 103预 设的规则, 为潜在分割点 确定窗口^ [ -169, ], 判断窗口 J . - 169, ]中至少部分数据是否满足预定条件 的方式与判断窗口 ^ i
中至少部分数据是否满足预定条件 的方式相同, 因此, 使用相同的 0- ( 2 0-1 ) 中的每一个十进制数与指定值之间的对应关 系 R, 如图 33所示, 表示窗口, 为判断 ^[ -169, ]中至少部分 数据是否满足预定条件 选择 5个字节, 图 33中 "國"表示选择的 1 个字节,相邻两个选择的字节 "國"之间相差 42个字节。将序号为 169、
127、 85、 43和 1的字节 "國"转换成 1个十进制数, 在 R查找该十进制 数对应的指定值, 如果该指定值为偶数, 则^^ [ -169, ]中至少部分 数据满足预定条件 如果该指定值为奇数, 则 ^,[ -169, ]中至少 部分数据不满足预定条件 , 因为均匀分布的随机数为偶数的概率为 1/2, 因此, ^[ -169, ]中至少部分数据满足预定条件 (^的概率为
1/2。 同理,判断^ 2[ -170, -1]中至少部分数据是否满足预定条件 c2 的方式和判断 [ -170,^-1]中至少部分数据是否满足预定条件 C2 的方式相同, 判断^ [ -171 , kt -2]中至少部分数据是否满足预定条件 C3的方式与判断 ^3 [ - 171 , -2 ]中至少部分数据是否满足预定条件 C3的方式相同, 同理, 判断 ^4[ -172, -3]中至少部分数据是否满足 预定条件 、判断 [ -173, -4]中至少部分数据是否满足预定条件 C5、判断 ^6[ -174, -5]中至少部分数据是否满足预定条件 C6、判断 WJ7 [ ^-175,^. -6]中至少部分数据是否满足预定条件 C7、 判断 WJS [ kJ -176,^-7]中至少部分数据是否满足预定条件 C8、判断 ^9[ -177, -8] 中至少部分数据是否满足预定条件 C9、 判断^。 [ - 178 , k -9]中至少 部分数据是否满足预定条件 C10和判断 [ k厂] 9, -10]中至少部分 数据是否满足预定条件 Cu , 在此不再赘述。
图 1所示的本发明实施例中的去重服务器 103 ,是指能够实现本发 明实施例所描述的技术方案的装置, 如图 18所示, 通常包括中央处理 单元、 主存储器以及输入输出接口。 中央处理单元、 主存储器与输入 输出接口之间相互通信, 主存储器存储可执行指令, 中央处理单元执 行主存储器中存储的可执行指令, 从而执行特定的功能, 使去重服务 器 103具备特定功能, 如本发明实施例图 20至图 33所描述的查找数据 流分割点。 因此, 如图 19所示, 根据 20至图 33所示的本发明实施例, 去重服务器 103, 在去重服务器 103上预设有规则, 所述规则为: 为潜 在分割点 k石 定 M个窗口 ^ [ 4, k+Bx]和窗口 - 4, k+ Bx]对 应的预定条件 Cx, 其中, X为 1到 M连续的自然数, M > 2 , 4和 ^为 整数;
去重服务器 103包括确定单元 1901和判断处理单元 1902。 其中, 确定单元 1901用于执行步骤 a) : a)依据所述规则为当前潜在分割点 确定对应的窗口^ [kt - Αζ , kt+Bz], i和 z为整数, 并且 l≤z≤M;
判断处理单元 1902,用于判断所述窗口 Wiz ik -Az, ki+ Bz]中至少 部分数据是否满足预定条件 cz
当所述窗口 Wiz [k -Az, Ι Ζ\中至少部分数据不满足所述预定条 件(^ , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 Ν 个数据流分割点最小查找单位 U, N*U不大于 II Bz II + maxx ( II II ) , 获得新的潜在分割点,则所述确定单元 1901为所述新的潜在分割点执 行步骤 a) ;
当所述当前潜在分割点 k,的 M个窗口中的每一个窗口 Wix [ k, - Ax, k, + Bx]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为数 据流分割点。
进一步地,所述规则还包括:至少两个窗口 WiH ki + B^ Wif [ki-A ki+B l, 满足条件: \A +Be\=\Af +
Figure imgf000144_0001
。 进一步地, 所述规则还包括: ^和 为正整数。 进一步地, 所述规则还包括: Ae -\ = Af , Be+l = Bf
进一步地, 判断处理单元 1902具体用于使用随机函数判断窗口 wiz [ - z Λ· + sz ]中至少部分数据是否满足预定条件 cz。 更进一步地 , 判断处理单元 1902具体使用 hash函数判断窗口 Wiz [ kt - z , + Sz ]中至 少部分数据是否满足预定条件 。
进一步地, 判断处理单元 O2用于当所述窗口 Wiz ik -Az, k^B 中至少部分数据不满足所述预定条件 ,从所述当前潜在分割点 沿 所述数据流分割点查找方向跳跃 N个数据流分割点最 d、查找单位 U ,获 得所述新的潜在分割点,所述确定单元 1901为所述新的潜在分割点执 行步骤 a ) ,根据所述规则,为所述新的潜在分割点确定的窗口 Wfc [k, -4, k, + ^]的左边界与所述窗口 Wiz [k -Az, + Sz]的右边界重合或者 为所述新的潜在分割点确定的所述窗口 W;t [ k,. - Ac , kt+Bc ]的左边界位 于所述窗口 ^ [^_4, ^+ ]范围之内; 其中, 为所述新的潜在分割 点确定的所述窗口 W,Jk,-4,k, + ]是根据所述规则, 为所述新的潜 在分割点确定的 M个窗口按照数据流查找方向获得的序列中排序第 一的窗口。
进一步地, 判断处理单元 1902使用随机函数判断所述窗口 Wiz [kt _Az, k Bj中至少部分数据是否满足所述预定条件 Cz, 具体包括: 在所述窗口 Wiz ik -Az, ki+Bz 中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 L.. am 8 , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 αι,ι ai,2 .
节对应的位可以表示为: a2,l , 当。 =1时,
aF ,2 . " aF , j
=1, 当" 时, m -1, 其中" ^„表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000145_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000145_0002
的随机数相乘,然后求和得到一个值,具体表示为 + " 2+...+ Vam^hmfi, 同理, 获得 Sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, kt + Bz]中至少部分数据满足所述预定条件 Cz。 根据 20至图 33所示的本发明实施例提供的基于服务器查找数据 流分割点的方法中, 为潜在分割点 确定窗口 [ -Ax, kt+Bx], 其 中, x分别为 1到 M连续的自然数, M≥2, 可以并行判断 M个窗口中每 一个窗口中至少部分数据是否满足预定条件 Cx ,或者依次判断窗口中 至少部分数据是否满足预定条件,也可以依次窗口^ i [ki-Al , ^ + Β,], 中至少部分数据满足预定条件(^时, 再判断 ^2[ - 2 , ,+ β2]中至少 部分数据满足预定条件 C2时, 直到判断^ [k Am , + 中至少部 分数据满足预定条件 Cm。 实施例中其他窗口的判断与此相同, 不再 赘述。
另外, 根据 20至图 33所示的本发明实施例, 在去重服务器 103上 预设有规则,所述规则:为潜在分割点 k确定 M个窗口 ^ [k- 4 , k + Sx ] 和窗口 ^ [ k - 4 , k + Sx ]对应的预定条件 Cx , χ分别为 1到 Μ连续的自 然数, Μ≥2,在该预设规则中, 4、 4、 4... Λ可以不全部相等, Α、 B2、 可以不全部相等, (^、 C2、 C3... CM也可以不全部相同。 在图 21所示的实施方式中, 在 ^ -169, ]、 ·2| ,·-170Λ-1]、 Wi3 [kt -17ΐΛ-2]、 Wi4[krl72,kr3]. 5 | ,-173, -4]、 Wi6[krl74,kr5]. Wn [^.-175,^.-6], 8| ,-176, -7]、 Wi9[krl77,krS], Wm[krl7S,kr9]^ „ [ - 179Λ-10]中,各窗口大小相同,即窗口大小均为 169字节, 同时 判断窗口中至少部分数据是否满足预定条件的方式也相同,具体见上 述判断 n [k, -169,k, ]中至少部分数据是否满足预定条件 的描述, 但 在图 11所示的实施方式中, ^,[^,-169, ]、 Wi2[kr170, k,-l], Wi3 [kt -171, kr2], Wi4[krni, kr3], Wi5[krm, kr4], wi6[krn4, kr5]. Wn[kr\15, kr6], Wm[kr\76, kr7], Wi9[kr\77, krS], Wm[kr\6S, +1]和^ +3]窗口大小可以不相同,同时判断窗口中至少 部分数据是否满足预定条件的方式也可以不相同。 在所有实施例中, 根据为去重服务器 103预设的规则, 判断窗口 W 中至少部分数据是否 满足预定条件 的方式与判断窗口 ^中至少部分数据是否满足预定 条件 的方式必然相同, 判断^中至少部分数据是否满足预定条件 C2的方式与判断 中至少部分数据是否满足预定条件 C2的方式必然 相同…判断窗口 WlM中至少部分数据是否满足预定条件 CM的方式与 判断窗口 Μ中至少部分数据是否满足预定条件 CM的方式必然相同。 在此不再赘述。
根据 20至图 33所示的本发明实施例, 在去重服务器 103上预设有 规则, ka、 k,、 k 和 为沿着数据流分割点查找方向查找分割点 时获得的潜在分割点, ka、 k,、 、 和 都依据该规则。 本发明实 施例中的窗口 [k-^,k+^]表示一个特定范围, 在该特定范围选择 数据以判断这些数据是否满足预定条件 Cx ,具体地,可以在该特定范 围内选择部分数据,也可以选择全部数据以判断这些数据是否满足预 定条件 Cx。本发明实施例中具体使用的窗口概念可参照窗口 [k- , k+5x], 在此不再赘述。
窗口 [k-4, k + ]中, ( k-4 )和( k + )表示该窗口 ^[k- 4, k+ ]的两个边界, 其中 (k- )表示窗口 04,k+sj相对 于潜在分割点 k位于数据流分割点查找反方向的边界, ( k + ^ )表 示窗口 ^[k-4,k+^]相对于潜在分割点 k位于数据流分割点查找 方向的边界。 具体地, 在本发明实施例中, 在图 20至图 33所示的数据 流分割点查找方向为从左向右,则其中(k-4 )表示窗口 [k-^,k + Βχ ]相对于潜在分割点 k位于数据流分割点查找反方向的边界(即左边 界) , (k + )表示窗口 [k-4, k+ ]相对于潜在分割点 k位于数 据流分割点查找方向的边界(即右边界)。 如果在图 20至图 33所示的 数据流分割点查找方向为从右向左,则其中(k-4 )表示窗口 [k-4, k+Sj相对于潜在分割点 k位于数据流分割点查找反方向的边界(即 右边界) , (k + )表示窗口 O 4, k+ ]相对于潜在分割点 于数据流分割点查找方向的边界(即左边界) 。
本领域普通技术人员可以意识到,结合本发明实施例图 20至图 33 描述的各示例的单元及算法步骤,本发明实施例的关键特征可以与其 他技术相结合, 以更为复杂的形式呈现, 但仍会包含本发明的关键特 征。 在真实环境中可能使用备用分割点, 例如一种实施方式为, 根据 为去重服务器 103预设的规则,为潜在分割点 确定 11个窗口 [k-4, k+Sj及窗口 ^[1^-4,1^+^]对应的预定条件(1, X为 1到 11连续的自 然数, 当 11个窗口中每一个窗口 [k-4,k+ ]中至少部分数据均满 足预定条件 则潜在分割点 为数据流分割点, 当超过设定的最大 数据块时, 仍未查找到分割点, 这时可能使用备用预设规则, 备用的 预设规则与在去重服务器 103上预设的规则类似,备用的预设规则为: 例如为潜在分割点 确定 10个窗口 ^ [k- 4 , k + ^ ]及窗口 Wx [k- 4 , k + ^]对应的预定条件 X为 1到 10连续的自然数,确定当 10个窗口中 每一个窗口 [k-4,k+ ]中至少部分数据均满足预定条件 则潜 在分割点 为数据流分割点, 当超过设定的最大数据块时, 仍未查找 到数据流分割点时, 从最大数据块的结束位置作为强制分割点。
根据 20至图 33所示的本发明实施例, 在去重服务器 103上 预设有规则, 所述规则中为潜在分割点 k确定 M个窗口, 并不一 定要求先有一个潜在分割点 k, 可以通过确定的 M个窗口来判断 潜在分割点 k。
本领域普通技术人员可以意识到, 结合本文中所公开的实施 例描述的各示例的单元及算法步骤, 能够以电子硬件、 或者计算 机软件和电子硬件的结合来实现。 这些功能究竟以硬件还是软件 方式来执行, 取决于技术方案的特定应用和设计约束条件。 专业
功能, 但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到, 为描述的方便和简 洁, 上述描述的系统、 装置和单元的具体工作过程, 可以参考前 述方法实施例中的对应过程, 在此不再赘述。 在提供的几个实施例中, 应该理解到, 所公开的系统、 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅 是示意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多个单元或组件可以结 合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦合或通信连接 可以是通过一些接口, 装置或单元的间接耦合或通信连接, 可以 是电性, 机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上 分开的, 作为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以 根据实际的需要选择其中的部分或者全部单元来实现本实施例方 案的目的。
另外, 在本发明各个实施例中的各功能单元可以集成在一个 处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两 个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品 销售或使用时, 可以存储在一个计算机可读取非易失性存储介质 中。 基于这样的理解, 本发明的技术方案本质上或者说对现有技 术做出贡献的部分或者该技术方案的部分可以以软件产品的形式 体现出来, 该计算机软件产品存储在一个非易失性存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服 务器, 或者网络设备等) 执行本发明各个实施例所述方法的全部 或部分步骤。而前述的非易失性存储介质包括: U盘、移动硬盘、 只读存储器 ( Read-Only Memory, ROM ) 、 磁碟或者光盘等各种 可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范 围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可轻易想到变化或替换, 都应涵盖在本发明的保 护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护 范围为准。

Claims

权利要求
1、 一种基于服务器查找数据流分割点的方法, 其特征在于: 在所述服务器上预设有规则,所述规则为: 为潜在分割点 k确定 M 个点 ?x、 点 ? x†应的窗口 ^ [ ?Χ_4, +SJ和窗口 x [PX-4, px +B 对应的预定条件 Cx , 其中, X为 1到 M连续的自然数, M>2, 4和 为 整数;
所述方法包括:
a)依据所述规则为当前潜在分割点 确定点 及所述点 对应 的窗口^ [ρ_ ^, + SZ] , i和 z为整数, iLKz M;
b) 判断所述窗口 -^, Ριζ + Βζ]中至少部分数据是否满足 预定条件 Cz;
当所述窗口^ -^, ριζ + Βζ]中至少部分数据不满足所述预定 条件 Cz , 从所述点 Plz沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U, N*U不大于 II Bz II +max ( II Ax II + II (k p II ), 获得新的潜在分割点, 执行步骤 a);
c)当所述当前潜在分割点 的 M个窗口中的每一个窗口 Wix [ Pix-
Αχ, ριχ + Βχ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为数据流分割点。
2、 根据权利要求 1所述的方法, 其特征在于, 所述规则还包括: 至少两个点 和 ,满足条件 e = , Be=Bf , Ce = Cf
3、 根据权利要求 2所述的方法, 其特征在于, 所述规则还包括: 所述至少两个点 PePf,相对于所述潜在分割点 k ,在所述数据流分割 点查找反方向上。
4、 根据权利要求 2或 3所述的方法, 其特征在于, 所述规则还包 括: 所述至少两个点 ^和 之间的距离为 1个 u。
5、 根据权利要求 1至 4任一所述的方法, 其特征在于, 判断所述 窗口 ―^, P,Z +B 中至少部分数据是否满足所述预定条件 Cz, 具体包括:
使用随机函数判断所述窗口^ [P,Z -^, Pl +Bz]中至少部分数据 是否满足所述预定条件 Cz
6、 根据权利要求 5所述的方法, 其特征在于, 所述使用随机函数 判断所述窗口 ^[ -^, Ριζ]中至少部分数据是否满足所述预定 条件 Cz , 具体为使用 hash函数判断所述窗口 Wiz [ Piz-AzΡιζ ]中至 少部分数据是否满足所述预定条件 Cz
7、 根据权利要求 1至 6任一所述的方法, 其特征在于, 当所述窗 口 [Ρ,Ζ-^,Ρ,ζ+^]中至少部分数据不满足所述预定条件 CZ, 从所述 点 沿所述数据流分割点查找方向跳跃 N个数据流分割点最小查找 单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在 分割点确定的点 Pic对应的窗口 [ Α.ε -4 , A +^ ]的左边界与所述窗 口 [ Pi2 - 4 , Pi2 + Sz ]的右边界重合或者为所述新的潜在分割点确定的 所述点 pic对应的所述窗口 W [ pic - Ac , Pic + ]的左边界位于所述窗口
^[AZ-^,AZ +SZ]范围之内; 其中, 为所述新的潜在分割点确定的所 述点 是根据所述规则,为所述新的潜在分割点确定的 M个点按照数 据流查找方向获得的序列中排序第一的点。
8、 根据权利要求 5所述的方法, 其特征在于, 使用随机函数判断 所述窗口 Wiz [ piz-Az, piz+Bz]中至少部分数据是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ piz— Az, Pi +Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为。ml ... am 8 , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , ' 当。 m n =1时 ^, ' v am,n
Figure imgf000153_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000153_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000153_0003
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 S。!、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 K为偶数,则所述窗口 Wiz [ ρίζζ, Pi +Bz]中至少部分数据满足所述预定条件 Cz
9、 一种基于服务器查找数据流分割点的方法, 其特征在于, 在所述服务器上预设有规则,所述规则为: 为潜在分割点 k确定 M 个窗口 ^ ik-Ax, + 和窗口 ik-Ax, + ]对应的预定条件(^ , 其中, X为 1到 M连续的自然数, M>2, 4和^为整数;
所述方法包括:
a)依据所述规则为当前潜在分割点 kt确定对应的窗口^ [ kt - Az, kt+Bz] , i和 z为整数, iLKz M;
b)判断所述窗口^ [krAz, kt+Bz]中至少部分数据是否满足预 定条件 Cz;
当所述窗口^ [k ~Az, kt+Bz]中至少部分数据不满足所述预 定条件 Cz, 从所述当前潜在分割点 沿所述数据流分割点查 找方向跳跃 N个数据流分割点最小查找单位 U, N*U不大于 II Bz II +max ( II 4 II ) , 获得新的潜在分割点, 执行步骤 a) ; c)当所述当前潜在分割点 的 M个窗口中的每一个窗口 Wix [ kt - Ax, kt+Bx]中至少部分数据满足预定条件 则所述当前潜在分割点 为 数据流分割点。
10、根据权利要求 9所述的方法,其特征在于,所述规则还包括: 至少两个窗口 Wie [k ~Ae, ki+Be 与 Wif [ kt - Af , k Bf ,满足条件: \Ae +Se|=| + Ce = Cf
11、根据权利要求 10所述的方法,其特征在于,所述规则还包括:
A和 为正整数。
12、 根据权利要求 10或 11所述的方法, 其特征在于, 所述规则还 包括: Ae-l=Af , +1 = β,。
13、 根据权利要求 9至 12任一所述的方法, 其特征在于, 判断所 述窗口^ ik -Az, kt+Bz]中至少部分数据是否满足所述预定条件 Cz, 具体包括:
使用随机函数判断所述窗口^ [k -Az, k^B 中至少部分数据 是否满足所述预定条件 Cz
14、 根据权利要求 13所述的方法, 其特征在于, 所述使用随机函 数判断所述^ [k -Az, kt+Bz]中至少部分数据是否满足所述预定条 件 Cz, 具体为使用 hash函数判断所述^ [k ~Az, kt+Bz]中至少部分数 据是否满足所述预定条件 Cz
15、 根据权利要求 9至 14任一所述的方法, 其特征在于, 当所述 窗口 Wiz ik -Az, kt+Bz]中至少部分数据不满足所述预定条件 Cz,从所 述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为 所述新的潜在分割点确定的窗口 W [ k, - 4 , k, + ^ ]的左边界与所述窗 口 ik -Az, kt+ Bz]的右边界重合或者为所述新的潜在分割点确定 的所述窗口 W,Jk;-4,k; + ^]的左边界位于所述窗口^ [^~ΑΖ, ^ + ΒΖ\ 范围之内;其中,为所述新的潜在分割点确定的所述窗口 Wfc [ k; - Ac , k; + ]是根据所述规则, 为所述新的潜在分割点确定的 M个窗口按照数 据流查找方向获得的序列中排序第一的窗口。
16、 根据权利要求 13所述的方法, 其特征在于, 使用随机函数判 断所述窗口 Wiz [k -Az, kt+Bz]中至少部分数据是否满足所述预定条 件 cz, 具体包括:
在所述窗口 Wiz [k ~Az, kt+Bz]中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为
am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当 a =1时,
Figure imgf000155_0001
=1, 当" 时, m -1, 其中" ^„表示 中的任一个, 所述 F*H个字节对应的位按照 与 Vam„的转换关系得到矩阵 ,所述矩阵 ^表示为: , 从服务正态分布的随机数中选
Figure imgf000156_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000156_0002
Λ 0 ... h
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 的随机数相乘,然后求和得到一个值,具体表示为 =^ * + ^ "K,2+.-.+ Vam^hm^ 同理, 获得 Sal、 sa2.. saF , 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, + Bj中至少部分数据满足所述预定条件 Cz
17、 一种用于查找数据流分割点的服务器, 其特征在于, 所述服 务器包括中央处理单元和主存储器,所述中央处理单元与所述主存储 器通信, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个点 px、点 对应的窗口 JVx [ px-Ax, px + Bx]和窗口 JVx [ px-Ax, + ]对应的预定条件(^ ,其中, X为 1到 M连续的自然数, M> 2, 4 和^为整数;
所述主存储器用于存储可执行指令,所述中央处理单元执行所述 可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 ^确定点 及所述点 对应 的窗口^ [ρ -^, ρ + ζ] , i和 ζ为整数, iLKz M;
b) 判断所述窗口 fViz [P,z_Az, Pi +Bz]中至少部分数据是否满足 预定条件 Cz;
当所述窗口^ -^, pIZ + Bz]中至少部分数据不满足所述预定 条件 Cz, 从所述点 ριζ沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U, N*U不大于 II Βζ II +max ( II Ax II + II (kr Pix ) II ), 获得新的潜在分割点, 执行步骤 a);
c)当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 wix [ pa
Ax , pa + Bx ]中至少部分数据满足预定条件 Cx ,则所述当前潜在分割点 为数据流分割点。
18、根据权利要求 17所述服务器,其特征在于,所述规则还包括: 至少两个点 和 , 满足条件^ = , Be =Bf , Ce = Cf
19、根据权利要求 18所述服务器,其特征在于,所述规则还包括: 所述至少两个点 pe和 pf , 相对于所述潜在分割 ,在所述数据流分 割点查找反方向上。
20、 根据权利要求 18或 19所述的服务器, 其特征在于, 所述规则 还包括: 所述至少两个点 PePf之间的距离为 1个 U。
21、 根据权利要求 17至 20任一所述的服务器, 其特征在于, 所述 中央处理单元具体用于使用随机函数判断所述窗口^ [ -^, Pl + Bz ]中至少部分数据是否满足所述预定条件 Cz
22、 根据权利要求 21所述的服务器, 其特征在于, 所述中央处理 单元具体用于使用 ha s h函数判断所述窗口^ [Az - ^, Αζ + ζ ]中至少 部分数据是否满足所述预定条件 Cz
23、 根据权利要求 17至 22任一所述的服务器, 其特征在于, 当所 述窗口^ [Az-4, AZ+Sz ]中至少部分数据不满足所述预定条件 Cz , 从 所述点 ρ 沿所述数据流分割点查找方向跳跃 Ν个数据流分割点最小 查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所述新的 潜在分割点确定的点 Pic对应的窗口 W;t [ Pic - Ac , Pic +Bc ]的左边界与所 述窗口 [ - 4 , Ρ + Sz ]的右边界重合或者为所述新的潜在分割点确 定的所述点 pic对应的所述窗口 W;e [ Pic - Ac , Pic + ]的左边界位于所述 窗口^ + 范围之内; 其中, 为所述新的潜在分割点确定 的所述点 pic是根据所述规则,为所述新的潜在分割点确定的 M个点按 照数据流查找方向获得的序列中排序第一的点。
24、 根据权利要求 21所述的服务器, 其特征在于, 所述中央处理 单元使用随机函数判断所述窗口 Wiz [ ρίζζ, Piz+Bz]中至少部分数据 是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ Pi2-Az, Pi2+Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为。ml ... am8, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当 a =1时,
Figure imgf000158_0001
=1, 当 =0时, ,„=-1, 其中。 表示 中的任一个, 所述 F*H个字节对应的位按照 am n与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000158_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000158_0003
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 h 的随机数相乘,然后求和得到一个值,具体表示为 +
* 8, 同理, 获得 S。!、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 K为偶数,则所述窗口 Wiz [ Piz-Az, piz+Bz]中至少部分数据满足所述预定条件 Cz
25、 一种用于查找数据流分割点的服务器, 其特征在于, 所述服 务器包括中央处理单元和主存储器,所述中央处理单元与所述主存储 器通信, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 έ 确定 Μ个窗口 ^ [/t_4, 和窗口 _4, 对应的预定 条件 Cx, 其中, X为 1到 M连续的自然数, M>2, 4和^为整数; 所述主存储器用于存储可执行指令,所述中央处理单元执行所述 可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 确定对应的窗口 Wiz [ - Az, kt+Bz] , i和 ζ为整数, iLKz M;
b)判断所述窗口^ [k -Az, kt+Bz]中至少部分数据是否满足预 定条件 Cz;
当所述窗口^ [k ~Az, kt+Bz]中至少部分数据不满足所述预定条 件<^ , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N 个数据流分割点最小查找单位 U, N*U不大于 II Bz II +max ( II ^ II ) , 获得新的潜在分割点, 执行步骤 a) ;
C)当所述当前潜在分割点 ^的 M个窗口中的每一个窗口 fVix [ - Ax, kt+Bx]中至少部分数据满足预定条件 则所述当前潜在分割点 为 数据流分割点。
26、 根据权利要求 25所述的服务器, 其特征在于, 所述规则还包 括:至少两个窗口^ , + 与 , ^+β,] ,满足条件: \A +Be\=\Af + Bf\, Ce = Cf
27、 根据权利要求 26所述的服务器, 其特征在于, 为所述服务器 预设规则, 所述规则还包括: 4和 为正整数。
28、 根据权利要求 26或 27所述的服务器, 其特征在于, 所述规则 还包括: Ae-l = Af , Be+]=Bf
29、 根据权利要求 25至 28任一所述的服务器, 其特征在于, 所述 中央处理单元具体用于使用随机函数判断所述窗口 [k -Az, ki+Bz 中至少部分数据是否满足所述预定条件 Cz
30、 根据权利要求 29所述的服务器, 其特征在于, 所述中央处理 单元具体用于使用 hash函数判断所述窗口^ [k -Az, ki+Bz 中至少 部分数据是否满足所述预定条件 Cz
31、 根据权利要求 25至 30任一所述的服务器, 其特征在于, 当所 述窗口 Wiz ik -Az, k.+ B 中至少部分数据不满足所述预定条件 Cz,从 所述当前潜在分割 沿所述数据流分割点查找方向跳跃 N个数据流 分割点最小查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在分割点确定的窗口 ic [ k, - Ac , k, + ]的左边界与所述 窗口 Wiz [k -Az, kt+Bz]的右边界重合或者为所述新的潜在分割点确 定的所述窗口 W,J 1^.-^,1^ + ]的左边界位于所述窗口^ [ki_Az, ki + ]范围之内; 其中, 为所述新的潜在分割点确定的所述窗口 W,Jk,- Ac, i + Bc ]是根据所述规则,为所述新的潜在分割点确定的 M个窗口按 照数据流查找方向获得的序列中排序第一的窗口。
32、 根据权利要求 29所述的服务器, 其特征在于, 所述中央处理 单元使用随机函数判断所述窗口 Wiz [k -Az, Ι Ζ\中至少部分数据 是否满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [k -Az, k^B 中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 .. am8 , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 7 当。 m,n =1时 ^, 7 v am,n
Figure imgf000161_0001
=1, 当 „=0时, ,„=-1, 其中 „表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000161_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000161_0003
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, k Bj中至少部分数据满足所述预定条件 Cz
33、 一种用于查找数据流分割点的服务器, 其特征在于, 在所述 服务器上预设有规则, 所述规则为: 为潜在分割点 /1确定 M个点 ?x、 点 ?对应的窗口 Wx [ x-Ax, + SJ和窗口 fVx [ px— Ax, ρχ + χ]对应的 预定条件 Cx, 其中, X为 1到 M连续的自然数, M>2, 4和 为整数; 所述服务器包括:确定单元, 用于执行步骤 a) : a)依据所述规则 为当前潜在分割点 确定点 及所述点 对应的窗口^ [ - ^, + Bz] , i和 z为整数, iLKz M;
判断处理单元,用于判断所述窗口^ [Az -^, + βζ]中至少部 分数据是否满足预定条件 Cz; 当所述窗口^ [ρΙΖζ, ριζ + Βζ]中至少部分数据不满足所述预定 条件 Cz , 从所述点 plz沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U, N*U不大于 II Bz II +max ( II Ax II + II (k Pix) II ), 获得新的潜在分割点 ,则所述确定单元为所述新的潜在分割点执行步 骤 a);
当所述当前潜在分割点 的 M个窗口中的每一个窗口 Wix [ PlI-Ax
Pa + Bx]中至少部分数据满足预定条件 Cx, 则所述当前潜在分割点 为数据流分割点。
34、 根据权利要求 33所述的服务器, 其特征在于, 所述规则还包 括: 至少两个点 和 , 满足条件 = , Be=Bf , Ce = Cf
35、 根据权利要求 34所述的服务器, 其特征在于, 所述规则还包 括: 所述至少两个点 和 , 相对于所述潜在分割点 /1,在所述数据 流分割点查找反方向上。
36、 根据权利要求 34或 35所述的服务器, 其特征在于, 所述规则 还包括: 所述至少两个点 PePf之间的距离为 1个 U。
37、 根据权利要求 33至 36任一所述的服务器, 其特征在于, 所述 判断处理单元具体用于使用随机函数判断所述窗口^ [Az -^, Ρι + Bz]中至少部分数据是否满足所述预定条件 Cz
38、 根据权利要求 37所述的服务器, 其特征在于, 所述判断处理 单元具体用于使用 hash函数判断所述窗口^ [Az -^, ζ + ζ]中至少 部分数据是否满足所述预定条件 Cz
39、 根据权利要求 33至 38任一所述的服务器, 其特征在于, 所述 判断处理单元用于当所述窗口 Wiz[Piz-Az,PiZ+Bz ]中至少部分数据不满 足所述预定条件 , 从所述点 Piz沿所述数据流分割点查找方向跳跃 N 个数据流分割点最小查找单位 U, 获得所述新的潜在分割点, 所述确 定单元为所述新的潜在分割点执行步骤 a) , 根据所述规则, 为所述 新的潜在分割点确定的点 pic对应的窗口 W;t [ pic - Ac , pic +Bc ]的左边界 与所述窗口^ [ -^, piz + Sz ]的右边界重合或者为所述新的潜在分割 点确定的所述窗口 λ\ [Αε-4,Αε+Α]的左边界位于所述窗口^ [p,z- ^, + SZ]范围之内; 其中, 为所述新的潜在分割点确定的所述窗口 Wie [ Pic - Ac , pic + Bc ]是根据所述规则 , 为所述新的潜在分割点确定的 M 个点按照数据流查找方向获得的序列中排序第一的点。
40、 根据权利要求 37所述的服务器, 其特征在于, 所述判断处理 单元具体用于使用随机函数判断所述窗口 Wiz [ piz-Az, Pi + Bz]中至少 部分数据是否满足所述预定条件 Cz , 具体包括:
在所述窗口 Wiz [ piz-Az, Pi +Bz]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为 ^... am8, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , ' 当。 m,n =1时 ^, ' am,n
Figure imgf000163_0001
=1, 当" 时, m -1, 其中" ^„表示 中的任一个, 所述 F*H个字节对应的位按照。m„与 V 的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000163_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
Figure imgf000163_0003
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行 h 的随机数相乘,然后求和得到一个值,具体表示为 +
* 2+...+ * 8, 同理, 获得 sal、 sa2.. saF , 统计 sa2... 到8。 ^中满足大于 0的值的个数 K,当 Κ为偶数,则所述窗口 Wiz [ piz-Az, Pi +Bz]中至少部分数据满足所述预定条件 Cz
41、 一种用于查找数据流分割点的服务器, 其特征在于, 在所述 服务器上预设有规则,所述规则为:为潜在分割点 /1确定 M个窗口 ^ [k
_4, + 和窗口 ^ [ -4, + ]对应的预定条件 Cx, 其中, X为 1 到 M连续的自然数, M>2, 4和 为整数;
所述服务器包括:确定单元, 用于执行步骤 a ) :
a)依据所述规则为当前潜在分割点 kt确定对应的窗口^ [ kt - Az, kt+Bz] , i和 z为整数, iLKz M;
判断处理单元,用于判断所述窗口^ [k -Az, k^Bz]中至少部分 数据是否满足预定条件 Cz
当所述窗口^ [k ~Az, k^B 中至少部分数据不满足所述预定条 件(^ , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N 个数据流分割点最小查找单位 U, N*U不大于 II Bz II +max ( II 4 U ) , 获得新的潜在分割点 ,则所述确定单元为所述新的潜在分割点执行步 骤 a) ;
当所述当前潜在分割点 的 M个窗口中的每一个窗口 Wix [ - Ax, kt + Bx ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为数 据流分割点。
42、 根据权利要求 41所述的服务器, 其特征在于, 所述规则还包 括:至少两个窗口^ , + 与 , ^+β,] ,满足条件: | + |=| + |, Ce = cf
43、 根据权利要求 42所述的服务器, 其特征在于, 所述规则还包 括: A和 为正整数。
44、 根据权利要求 42或 43所述的服务器, 其特征在于, 所述规则 还包括: Ae-\ = Af , Be+ =Bf
45、 根据权利要求 41至 44任一所述的服务器, 其特征在于, 所述 判断处理单元具体用于
使用随机函数判断所述窗口^ [k -Az, kt+Bz]中至少部分数据 是否满足所述预定条件 Cz
46、 根据权利要求 45所述的服务器, 其特征在于, 所述判断处理 单元具体使用 hash函数判断所述窗口^ [krAz, k{+Bz]中至少部分 数据是否满足所述预定条件 Cz
47、 根据权利要求 41至 46任一所述的服务器, 其特征在于, 所述 判断处理单元用于当所述窗口 [k -Az, Ι Ζ\中至少部分数据不 满足所述预定条件 Cz,从所述当前潜在分割点 沿所述数据流分割点 查找方向跳跃 N个数据流分割点最 '〗、查找单位 U ,获得所述新的潜在分 割点, 所述确定单元为所述新的潜在分割点执行步骤 a) , 根据所述 规则, 为所述新的潜在分割点确定的窗口 W,Jk,-^,k,+A]的左边界 与所述窗口 Wiz ik -Az, kt+Bz]的右边界重合或者为所述新的潜在分 割点确定的所述窗口 Wie [ k,. - Ac , k; +Sc ]的左边界位于所述窗口 Wiz [ k, - ^, + Sz ]范围之内; 其中, 为所述新的潜在分割点确定的所述窗口 Wie [ k, - Ac , k, + Bc ]是根据所述规则, 为所述新的潜在分割点确定的 M 个窗口按照数据流查找方向获得的序列中排序第一的窗口。
48、 根据权利要求 46所述的服务器, 其特征在于, 所述判断处理 单元使用随机函数判断所述窗口 Wiz [k -Az, ^+Βζ]中至少部分数据 是否满足所述预定条件 Cz, 具体包括: 在所述窗口 iz ik -Az, k^B 中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 .. am&, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 αι,ι ai,2 . ·. ^1,8
节对应的位可以表示为: a2,l ^2,2 .
, ' 当。 m n =i时 ^, ' v am,n aF ,2 . " aF , j
=1, 当 „=0时, ,„=-1, 其中 „表示 中的任一个, 所述 F*H个字节对应的位按照 „与 V 的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000166_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000166_0002
的随机数相乘,然后求和得到一个值,具体表示为 + * 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, k^B 中至少部分数据满足所述预定条件 Cz
49、 一种计算机可读存储介质, 其特征在于, 所述计算机可读存 储介质用于存储可执行指令,服务器执行所述可执行指令以查找数据 流分割点, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个点 px、 点 对应的窗口 JVX [ px—Ax, p + B 和窗口 JVX [ p - Ax, px+Bx]对应的预定条件 Cx ,其中, x为 1到 Μ连续的自然数, Μ > 2 , ^和^为整数;
当所述服务器执行所述可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 kt确定 PizPiz对应的窗口^ [piz~A^ Piz + B ^ i和 z为整数, iLKz M;
b) 判断所述窗口 [ -^, Ριζ + Βζ]中至少部分数据是否满足 预定条件 Cz;
当所述窗口^ [ρΙΖζ, ριζ + Βζ]中至少部分数据不满足所述预定 条件 Cz, 从所述点 ριζ沿所述数据流分割点查找方向跳跃 N个数据流分 割点最小查找单位 U, N*U不大于 II Bz II +max ( II Ax II + II {k pix) II ), 获得新的潜在分割点, 执行步骤 a);
C)当所述当前潜在分割点 kt的 M个窗口中的每一个窗口 Wix [ pa -
Αχ, ριχ + Βχ]中至少部分数据满足预定条件 Cx,则所述当前潜在分割点 为数据流分割点。
50、 根据权利要求 49所述的计算机可读存储介质, 其特征在于, 所述规则还包括: 至少两个点 和 , 满足条件 = , Be=Bf , Ce
= C>。
51、 根据权利要求 50所述的计算机可读存储介质, 其特征在于, 所述规则还包括:所述至少两个点 A和 ,相对于所述潜在分割点 /1, 在所述数据流分割点查找反方向上。
52、根据权利要求 50或 51所述的计算机可读存储介质, 其特征在 于, 所述规则还包括: 所述至少两个点 ^和^之间的距离为 1个 U。
53、根据权利要求 49至 52任一所述的计算机可读存储介质, 其特 征在于, 所述服务器判断所述窗口 [ ριζζ, +βζ]中至少部分数 据是否满足所述预定条件 Cz, 具体包括: 所述服务器使用随机函数判断所述窗口^ [Plz-Az, Az + Sz]中至 少部分数据是否满足所述预定条件 Cz
54、 根据权利要求 53所述的计算机可读存储介质, 其特征在于, 所述服务器使用随机函数判断所述窗口^ [Az -^, + SZ]中至少部 分数据是否满足所述预定条件 Cz , 具体包括:
所述服务器使用 hash函数判断所述窗口^ [Plz-Az, Az + Sz]中至 少部分数据是否满足所述预定条件 Cz
55、根据权利要求 49至 54任一所述的计算机可读存储介质, 其特 征在于, 当所述窗口^ [ -^, + ]中至少部分数据不满足所述预 定条件 Cz,从所述点 沿所述数据流分割点查找方向跳跃 N个数据流 分割点最小查找单位 U, 获得所述新的潜在分割点, 根据所述规则, 为所述新的潜在分割点确定的点 Pic对应的窗口 [ Pic - Ac , Pic + ]的 左边界与所述窗口^ [ ^ - 4 , P,z + Sz ]的右边界重合或者为所述新的潜 在分割点确定的所述点 pic对应的所述窗口 W [ pic - Ac , pic + ^ ]的左边 界位于所述窗口 ^[ -^, + Sz]范围之内; 其中, 为所述新的潜在 分割点确定的所述点 ^是根据所述规则, 为所述新的潜在分割点确 定的 M个点按照数据流查找方向获得的序列中排序第一的点。
56、 根据权利要求 53所述的计算机可读存储介质, 其特征在于, 使用随机函数判断所述窗口 Wiz [ Piz-Az, Pi +Bz]中至少部分数据是否 满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz [ ρίζζ, ρίζζ]中选择 F个字节, 将所述 F个字节 反复利用 H次,共获得 F*H个字节,其中每个字节由 8位组成,记为 ... am&, 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 7 当。 m,n =1时 ^, 7 v am,n
Figure imgf000169_0001
=1, 当 „=0时, ,„=-1, 其中 „表示 中的任一个, 所述 F*H个字节对应的位按照 amn与 Vam„的转换关系得到矩阵 ,所述矩阵
^表示为: , 从服务正态分布的随机数中选
Figure imgf000169_0002
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000169_0003
的随机数相乘,然后求和得到一个值,具体表示为
Figure imgf000169_0004
* 2+...+ * 8, 同理, 获得 sal、 sa2.. saF,H, 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K,当 Κ为偶数,则所述窗口 Wiz [ ρίζζ, piz+Bz]中至少部分数据满足所述预定条件 Cz
57、 一种计算机可读存储介质, 其特征在于, 所述计算机可读存 储介质用于存储可执行指令,服务器执行所述可执行指令以查找数据 流分割点, 在所述服务器上预设有规则, 所述规则为: 为潜在分割点 确定 M个窗口 [ _4, 和窗口 ^ _4, ]对应的预定 条件 Cx , 其中, X为 1到 M连续的自然数, M>2, 4和^为整数; 当所述服务器执行所述可执行指令, 以执行以下步骤:
a)依据所述规则为当前潜在分割点 确定对应的窗口 Wiz [ kt - Az, kt+Bz] , i和 ζ为整数, iLKz M;
b)判断所述窗口^ [k ~Az, kt+Bz]中至少部分数据是否满足预 定条件 cz;
当所述窗口^ [k ~Az, kt+Bz]中至少部分数据不满足所述预定条 件 , 从所述当前潜在分割点 沿所述数据流分割点查找方向跳跃 N 个数据流分割点最小查找单位 U, N*U不大于 II Bz II +max ( II x II ) , 获得新的潜在分割点, 执行步骤 a) ;
C)当所述当前潜在分割点 的 M个窗口中的每一个窗口 Wix [ kt - Ax, kt+Bx]中至少部分数据满足预定条件 则所述当前潜在分割点 为 数据流分割点。
58、 根据权利要求 57所述的计算机可读存储介质, 其特征在于, 所述规则还包括: 至少两个窗口^ [k ~Ae, ki+B^与 Wif [k ~A k{ + Bf] , 满足条件: 14 + |=| + β, I, Ce = Cf
59、 根据权利要求 58所述的计算机可读存储介质, 其特征在于, 所述规则还包括: Λ和 为正整数。
60、根据权利要求 58或 59所述的计算机可读存储介质, 其特征在 于, 所述规则还包括: 4-1= , +1=β,。
61、根据权利要求 57至 60任一所述的计算机可读存储介质, 其特 征在于,
所述服务器判断所述窗口^ [k -Az, +βζ]中至少部分数据是 否满足所述预定条件 Cz, 具体包括:
使用随机函数判断所述窗口^ [k ~Az, k^B 中至少部分数据 是否满足所述预定条件 Cz
62、 根据权利要求 61所述的计算机可读存储介质, 其特征在于, 所述服务器使用随机函数判断所述窗口^ [ - z, . + βζ]中至少部 分数据是否满足所述预定条件 Cz,具体为所述服务器使用 hash函数判 断所述窗口^ ik -Az, kt+Bz]中至少部分数据是否满足所述预定条 件 Cz
63、根据权利要求 57至 62任一所述的计算机可读存储介质, 其特 征在于, 当所述窗口 Wiz ik -Az, k^B 中至少部分数据不满足所述预 定条件 Cz,从所述当前潜在分割点 沿所述数据流分割点查找方向跳 跃 N个数据流分割点最小查找单位 U, 获得所述新的潜在分割点, 根据 所述规则, 为所述新的潜在分割点确定的窗口 W,Jk,-4,k,+^]的左 边界与所述窗口 Wiz [k~Az, ki+Bz 的右边界重合或者为所述新的潜 在分割点确定的所述窗口 W [ k; - Ac , k; + ]的左边界位于所述窗口 Wiz [ - 4, + Sz ]范围之内; 其中, 为所述新的潜在分割点确定的所述 窗口 Wjk,-4,k,+^]是根据所述规则, 为所述新的潜在分割点确定 的 M个窗口按照数据流查找方向获得的序列中排序第一的窗口。
64、 根据权利要求 61所述的计算机可读存储介质, 其特征在于, 使用随机函数判断所述窗口 ik-Az, kt+Bz]中至少部分数据是否 满足所述预定条件 Cz, 具体包括:
在所述窗口 Wiz ik -A2, kt+Bz]中选择 F个字节, 将所述 F个字节反 复利用 H次, 共获得 F*H个字节, 其中每个字节由 8位组成, 记为 am & , 表示所述 F*H个字节中第 m个字节的第 1到第 8位, 所述 F*H个字 节对应的位可以表示为: , 当 a =1时,
Figure imgf000171_0001
=1, 当" 时, m -1, 其中" ^„表示 中的任一个, 所述 F*H个字节对应的位按照 与 Vam„的转换关系得到矩阵 ,所述矩阵 ^表示为: , 从服务正态分布的随机数中选
Figure imgf000172_0001
择 F*H*8个随机数组成矩阵 R, 所述矩阵 R表示为:
,将所述矩阵 Va的第 m行与所述矩阵 R的第 m行
Figure imgf000172_0002
的随机数相乘,然后求和得到一个值,具体表示为 =^ * + ^ "K,2+. - .+ Vam^hm^ 同理, 获得 Sal、 sa2.. saF , 统计 Sa2... 到8。 ^中满足大于 0的值的个数 K, 当 Κ为偶数,则所述窗口 Wiz [k -Az, ki + Bj中至少部分数据满足所述预定条件 Cz
PCT/CN2014/072648 2014-02-14 2014-02-27 一种基于服务器查找数据流分割点的方法及服务器 WO2015120645A1 (zh)

Priority Applications (16)

Application Number Priority Date Filing Date Title
CA2922994A CA2922994C (en) 2014-02-14 2014-02-27 Method and server for searching for data stream dividing point based on server
RU2016114526A RU2639947C2 (ru) 2014-02-14 2014-02-27 Способ и сервер для поиска точки деления потока данных на основе сервера
SG11201601357TA SG11201601357TA (en) 2014-02-14 2014-02-27 Method and server for searching for data stream dividing point based on server
JP2016518730A JP6198090B2 (ja) 2014-02-14 2014-02-27 サーバに基づいてデータストリーム分割点を探索するための方法およびサーバ
MX2016004935A MX358948B (es) 2014-02-14 2014-02-27 Metodo y servidor para buscar un punto de division de corriente de datos basado en servidor.
KR1020167007148A KR101912727B1 (ko) 2014-02-14 2014-02-27 데이터 흐름 분할 포인트를 검색하기 위한 서버 기반 방법, 및 서버
CN201480000347.4A CN104169917B (zh) 2014-02-14 2014-02-27 一种基于服务器查找数据流分割点的方法及服务器
EP14882733.0A EP3026585A4 (en) 2014-02-14 2014-02-27 Server-based method for searching for data flow break point, and server
BR112016005391A BR112016005391B8 (pt) 2014-02-14 2014-02-27 Método e servidor para buscar ponto divisório de corrente de dados com base em servidor
NZ717601A NZ717601A (en) 2014-02-14 2014-02-27 Method and server for searching for data stream dividing point based on server
AU2014382891A AU2014382891B2 (en) 2014-02-14 2014-02-27 Method and server for searching for data stream dividing point based on server
IL244830A IL244830B (en) 2014-02-14 2016-03-30 A method and server for searching for a split point in a data stream is based on the server
US15/235,378 US9906577B2 (en) 2014-02-14 2016-08-12 Method and server for searching for data stream dividing point based on server
US15/235,407 US9967304B2 (en) 2014-02-14 2016-08-12 Method and server for searching for data stream dividing point based on server
US15/938,845 US10264045B2 (en) 2014-02-14 2018-03-28 Method and server for searching for data stream dividing point based on server
US16/352,509 US10542062B2 (en) 2014-02-14 2019-03-13 Method and server for searching for data stream dividing point based on server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2014072115 2014-02-14
CNPCT/CN2014/072115 2014-02-14

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US15/235,378 Continuation US9906577B2 (en) 2014-02-14 2016-08-12 Method and server for searching for data stream dividing point based on server
US15/235,407 Continuation US9967304B2 (en) 2014-02-14 2016-08-12 Method and server for searching for data stream dividing point based on server

Publications (1)

Publication Number Publication Date
WO2015120645A1 true WO2015120645A1 (zh) 2015-08-20

Family

ID=53799539

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/072648 WO2015120645A1 (zh) 2014-02-14 2014-02-27 一种基于服务器查找数据流分割点的方法及服务器

Country Status (13)

Country Link
US (4) US9906577B2 (zh)
EP (1) EP3026585A4 (zh)
JP (1) JP6198090B2 (zh)
KR (1) KR101912727B1 (zh)
AU (1) AU2014382891B2 (zh)
BR (1) BR112016005391B8 (zh)
CA (1) CA2922994C (zh)
IL (1) IL244830B (zh)
MX (1) MX358948B (zh)
NZ (1) NZ717601A (zh)
RU (1) RU2639947C2 (zh)
SG (2) SG10201703412SA (zh)
WO (1) WO2015120645A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100904B2 (en) * 2012-09-13 2015-08-04 First Principles, Inc. Data stream division to increase data transmission rates
JP6198090B2 (ja) * 2014-02-14 2017-09-20 華為技術有限公司Huawei Technologies Co.,Ltd. サーバに基づいてデータストリーム分割点を探索するための方法およびサーバ
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
CN114063882A (zh) * 2020-07-31 2022-02-18 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997011A (zh) * 2006-07-26 2007-07-11 白杰 数据分割方法和数据分割装置
CN101547138A (zh) * 2008-03-26 2009-09-30 国际商业机器公司 用于快速模式匹配的方法和装置
CN102591892A (zh) * 2011-01-13 2012-07-18 索尼公司 数据分段设备和方法
CN102646117A (zh) * 2012-02-20 2012-08-22 华为技术有限公司 文件数据传送的方法与装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8028106B2 (en) * 2007-07-06 2011-09-27 Proster Systems, Inc. Hardware acceleration of commonality factoring with removable media
US8788466B2 (en) * 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US20100318782A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
JP4960417B2 (ja) * 2009-09-15 2012-06-27 株式会社東芝 可変長のデータ断片の開始・終了オフセットを決定する方法及び装置
US8510275B2 (en) * 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
US8396899B2 (en) * 2009-11-23 2013-03-12 Dell Products L.P. Efficient segment detection for deduplication
US8423520B2 (en) * 2009-11-23 2013-04-16 Dell Products L.P. Methods and apparatus for efficient compression and deduplication
US8965852B2 (en) * 2009-11-24 2015-02-24 Dell Products L.P. Methods and apparatus for network efficient deduplication
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US8244992B2 (en) * 2010-05-24 2012-08-14 Spackman Stephen P Policy based data retrieval performance for deduplicated data
US9292533B2 (en) * 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8694703B2 (en) * 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
CN102143039B (zh) * 2010-06-29 2013-11-06 华为技术有限公司 数据压缩中数据分段方法及设备
US8645636B2 (en) * 2010-09-29 2014-02-04 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US20120078931A1 (en) * 2010-09-29 2012-03-29 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9201890B2 (en) * 2010-10-04 2015-12-01 Dell Products L.P. Storage optimization manager
CN102479245B (zh) * 2010-11-30 2013-07-17 英业达集团(天津)电子技术有限公司 数据区块的切分方法
CN102082575A (zh) 2010-12-14 2011-06-01 江苏格物信息科技有限公司 基于预分块及滑动窗口的重复数据消除方法
US9110936B2 (en) * 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8666955B2 (en) * 2011-04-11 2014-03-04 Hitachi, Ltd. Data management method and data management system
CN102214210B (zh) 2011-05-16 2013-03-13 华为数字技术(成都)有限公司 重复数据处理方法、装置和系统
US8904128B2 (en) * 2011-06-08 2014-12-02 Hewlett-Packard Development Company, L.P. Processing a request to restore deduplicated data
US8521705B2 (en) * 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8918375B2 (en) * 2011-08-31 2014-12-23 Microsoft Corporation Content aware chunking for achieving an improved chunk size distribution
US8484170B2 (en) * 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
CN103034659B (zh) * 2011-09-29 2015-08-19 国际商业机器公司 一种重复数据删除的方法和系统
US9047304B2 (en) * 2011-11-28 2015-06-02 International Business Machines Corporation Optimization of fingerprint-based deduplication
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US9164688B2 (en) * 2012-07-03 2015-10-20 International Business Machines Corporation Sub-block partitioning for hash-based deduplication
US9311323B2 (en) * 2012-09-05 2016-04-12 Indian Institute Of Technology, Kharagpur Multi-level inline data deduplication
US9626373B2 (en) * 2012-10-01 2017-04-18 Western Digital Technologies, Inc. Optimizing data block size for deduplication
US9465808B1 (en) * 2012-12-15 2016-10-11 Veritas Technologies Llc Deduplication featuring variable-size duplicate data detection and fixed-size data segment sharing
US20140244604A1 (en) * 2013-02-28 2014-08-28 Microsoft Corporation Predicting data compressibility using data entropy estimation
WO2014136183A1 (ja) * 2013-03-04 2014-09-12 株式会社日立製作所 ストレージ装置及びデータ管理方法
CN103324699B (zh) 2013-06-08 2016-03-02 西安交通大学 一种适应大数据应用的快速重复数据删除方法
JP6198090B2 (ja) * 2014-02-14 2017-09-20 華為技術有限公司Huawei Technologies Co.,Ltd. サーバに基づいてデータストリーム分割点を探索するための方法およびサーバ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997011A (zh) * 2006-07-26 2007-07-11 白杰 数据分割方法和数据分割装置
CN101547138A (zh) * 2008-03-26 2009-09-30 国际商业机器公司 用于快速模式匹配的方法和装置
CN102591892A (zh) * 2011-01-13 2012-07-18 索尼公司 数据分段设备和方法
CN102646117A (zh) * 2012-02-20 2012-08-22 华为技术有限公司 文件数据传送的方法与装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3026585A4 *

Also Published As

Publication number Publication date
US10542062B2 (en) 2020-01-21
JP6198090B2 (ja) 2017-09-20
CA2922994C (en) 2017-10-10
BR112016005391B1 (pt) 2019-04-30
AU2014382891A1 (en) 2016-03-17
US9967304B2 (en) 2018-05-08
KR20160045108A (ko) 2016-04-26
US20190215352A1 (en) 2019-07-11
MX358948B (es) 2018-09-07
US20160350026A1 (en) 2016-12-01
BR112016005391B8 (pt) 2022-10-25
NZ717601A (en) 2017-05-26
US20170041367A1 (en) 2017-02-09
KR101912727B1 (ko) 2018-10-29
EP3026585A1 (en) 2016-06-01
AU2014382891B2 (en) 2016-11-10
US20180219930A1 (en) 2018-08-02
IL244830B (en) 2021-03-25
SG10201703412SA (en) 2017-06-29
US9906577B2 (en) 2018-02-27
MX2016004935A (es) 2016-06-28
SG11201601357TA (en) 2016-03-30
IL244830A0 (en) 2016-05-31
RU2639947C2 (ru) 2017-12-25
RU2016114526A (ru) 2017-10-19
EP3026585A4 (en) 2017-04-05
CA2922994A1 (en) 2015-08-20
JP2017505927A (ja) 2017-02-23
US10264045B2 (en) 2019-04-16

Similar Documents

Publication Publication Date Title
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
WO2015120645A1 (zh) 一种基于服务器查找数据流分割点的方法及服务器
US9847913B2 (en) System and method for gathering information
US10346475B2 (en) Hash table structures
JP5182672B2 (ja) パターンマッチングによる高性能raid6システムアーキテクチャ
US7797612B2 (en) Storage accelerator
JP3947163B2 (ja) 再構成可能な並列ルックアップテーブルシステム
Alstrup et al. Adjacency labeling schemes and induced-universal graphs
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
US20130219394A1 (en) System and method for a map flow worker
CN110716708A (zh) 用于非常大整数的加法器电路
GB2546352A (en) Efficient modulo calculation
US8060549B2 (en) Method and apparatus for accumulating floating point values
US9851743B2 (en) Lookup table sharing for memory-based computing
JPH0312738B2 (zh)
US9703525B2 (en) Partially and fully parallel normaliser
CN110688094A (zh) 一种基于并行循环压缩的余数运算电路及方法
US10210063B2 (en) Disk array storage controller
CN113254072B (zh) 数据处理器、数据处理方法、芯片、计算机设备及介质
US11836353B2 (en) Method, device, and computer program product for rebuilding storage system
US9361404B2 (en) Offline radix tree compression with key sequence skip
EP4036704A1 (en) Multiplier
US9590633B2 (en) Carry-skip one-bit full adder and FPGA device
US8805904B2 (en) Method and apparatus for calculating the number of leading zero bits of a binary operation
US9355133B2 (en) Offline compression for limited sequence length radix tree

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14882733

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2014882733

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2922994

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2014382891

Country of ref document: AU

Date of ref document: 20140227

Kind code of ref document: A

Ref document number: 20167007148

Country of ref document: KR

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112016005391

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2016518730

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 244830

Country of ref document: IL

ENP Entry into the national phase

Ref document number: 2016114526

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: MX/A/2016/004935

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 112016005391

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20160311