BR112016005391B1 - Método e servidor para buscar ponto divisório de corrente de dados com base em servidor - Google Patents
Método e servidor para buscar ponto divisório de corrente de dados com base em servidor Download PDFInfo
- Publication number
- BR112016005391B1 BR112016005391B1 BR112016005391-5A BR112016005391A BR112016005391B1 BR 112016005391 B1 BR112016005391 B1 BR 112016005391B1 BR 112016005391 A BR112016005391 A BR 112016005391A BR 112016005391 B1 BR112016005391 B1 BR 112016005391B1
- Authority
- BR
- Brazil
- Prior art keywords
- data
- window
- piece
- dividing point
- meets
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000011159 matrix material Substances 0.000 claims description 307
- 238000009826 distribution Methods 0.000 claims description 124
- 230000006870 function Effects 0.000 claims description 108
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000005192 partition Methods 0.000 abstract description 3
- 238000002513 implantation Methods 0.000 description 108
- 238000010586 diagram Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 15
- 238000009827 uniform distribution Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- DYUUGILMVYJEHY-UHFFFAOYSA-N 1-$l^{1}-oxidanyl-4,4,5,5-tetramethyl-3-oxido-2-phenylimidazol-3-ium Chemical compound CC1(C)C(C)(C)N([O])C(C=2C=CC=CC=2)=[N+]1[O-] DYUUGILMVYJEHY-UHFFFAOYSA-N 0.000 description 1
- 241000722946 Acanthocybium solandri Species 0.000 description 1
- 101000713585 Homo sapiens Tubulin beta-4A chain Proteins 0.000 description 1
- 102100036788 Tubulin beta-4A chain Human genes 0.000 description 1
- 102000018252 Tumor Protein p73 Human genes 0.000 description 1
- 108010091356 Tumor Protein p73 Proteins 0.000 description 1
- 241000736772 Uria Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
modalidades da presente invenção fornecem um método para buscar um ponto divisório de corrente de dados com base em um servidor. nas modalidades da presente invenção, um ponto divisório de corrente de dados é buscado por determinar se pelo menos uma parte de dados em uma janela de m janelas atende uma condição predefinida, e quando a pelo menos uma parte de dados na janela não atende a condição predefinida, um comprimento de n*u é pulado, de modo a obter um próximo ponto divisório potencial, desse modo aumentando a eficiência na busca por um ponto divisório de corrente de dados.
Description
“MÉTODO E SERVIDOR PARA BUSCAR PONTO DIVISÓRIO DE CORRENTE DE DADOS COM BASE EM SERVIDOR” [0001] A presente invenção se refere ao campo de tecnologias de informações, e em particular, a um método e um servidor para buscar um ponto divisório de corrente de dados com base em um servidor.
ANTECEDENTES [0002] Na medida em que os montantes de dados continuam crescendo, torna-se um desafio crucial fornecer armazenamento de dados suficiente no campo do armazenamento atualmente. No presente, uma maneira de lidar com um desafio como esse é usando uma tecnologia de desduplicação por meio de uma característica de redundância de dados que precisam ser armazenados, de modo a reduzir um montante de dados armazenados.
[0003] Em um algoritmo de eliminar dados duplicados com base em uma fatia definida por conteúdo (Fatia Definida por Conteúdo, CDC) na técnica anterior, uma corrente de dados a ser armazenada é primeiramente dividida em múltiplas fatias de dados. Para dividir uma corrente de dados em fatias de dados, um ponto divisório adequado precisa ser encontrado na corrente de dados, e os dados entre dois pontos divisórios adjacentes na corrente de dados formam uma fatia de dados. Um valor característico de uma fatia de dados é calculado, de modo a se constatar se existem fatias de dados tendo um mesmo valor característico. Se forem encontradas fatias de dados tendo um mesmo valor característico, é considerado que existem dados duplicados. Especificamente, em uma tecnologia de eliminar dados duplicados com base em uma fatia definida por conteúdo, uma técnica de janela deslizante (Técnica de Janela Deslizante) é aplicada para que se busque um ponto divisório de uma fatia com base no conteúdo de um arquivo, isto é, uma impressão digital Rabin de dados em uma janela é calculada para determinar um ponto divisório de corrente de dados. Presume-se que um ponto divisório é buscado da esquerda para a direita em uma corrente de dados. Uma
Petição 870160008725, de 11/03/2016, pág. 273/698
2/200 impressão digital de dados em uma janela deslizante é calculada de cada vez, e após uma operação de módulo ser realizada em um valor de impressão digital com base em um determinado número inteiro K, um resultado da operação de módulo é comparado com um determinado resto R. Se o resultado da operação de módulo for igual ao determinado resto R, a extremidade direita da janela é um ponto divisório de corrente de dados. Se assim não for, a janela continua a ser deslizada na direção direita em um byte, e o cálculo e a comparação são realizados em sequência e ciclicamente até que se chegue à extremidade da corrente de dados. Em um processo de eliminar dados duplicados com base em uma fatia definida por conteúdo, uma grande quantidade de recursos de computação precisa ser consumida para buscar um ponto divisório de corrente de dados, o que, portanto, se torna um obstáculo para aperfeiçoar o desempenho de eliminação de dados duplicados.
SUMÁRIO [0004] De acordo com um primeiro aspecto, uma modalidade da presente invenção fornece um método para buscar um ponto divisório de corrente de dados com base em um servidor, onde uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx[px-Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ Px - Ax , Px + Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o método inclui:
(a) determinar um ponto pIz e uma janela Wz [ p,z - Az, pz + Bz ] que corresponde ao ponto pz para um ponto divisório potencial corrente kt de acordo com a regra, onde i e z são números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte dos dados na janela W z [pz - A, pl2 + Bz ] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela Wz [ pz - A, pz + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U
Petição 870160008725, de 11/03/2016, pág. 274/698
3/200 para buscar um ponto divisório de corrente de dados a partir do ponto pIz ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que IIBz 11+ maxx(II Ax ||+||(kt -px)||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wx [Px Αχ, Pix+Bx ] de M janelas do ponto divisório potencial corrente ki atende a C k condição predefinida x, selecionar o ponto divisório potencial corrente 1, como um ponto divisório de corrente de dados.
[0005] Com referência ao primeiro aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af, Be = Bf, e Ce = Cf.
[0006] Com referência à primeira maneira de implantação possível do primeiro aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf, estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
[0007] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do primeiro aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[0008] Com referência ao primeiro aspecto, ou a qualquer uma da primeira à terceira maneiras de implantação possíveis do primeiro aspecto, em uma quarta maneira de implantação possível, determinar se pelo menos uma parte de dados na janela Wiz [ pIz- Az, pz+Bz] atende uma condição predefinida Cz inclui especificamente:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - Az, pz + Bz] atende a condição predefinida Cz.
[0009] Com referência à quarta maneira de implantação possível do primeiro aspecto, em uma quinta maneira de implantação possível,
Petição 870160008725, de 11/03/2016, pág. 275/698
4/200 determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ pz - A, piz+Bz ] atende a condição predefinida Cz é especificamente: determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wlz [ plz - A, pz+Bz ] atende a condição predefinida Cz.
[00010] Com referência ao primeiro aspecto, ou a qualquer uma da primeira à quinta maneiras de implantação possíveis do primeiro aspecto, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela Wlz [ plz - A, Pz+Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto piz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [ ptc - Ac, ptc + Bc ] que corresponde a um ponto pcc que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [plz - A, pz+Bz ] ou um limite à esquerda de uma janela Wic [ pcc - Ac, pc+Bc ] que corresponde a um ponto pic que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [ plz - A, pz + Bz ], onde o ponto pic determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[00011] Com referência à quarta maneira de implantação possível do primeiro aspecto, em uma sétima maneira de implantação possível, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ piz- Az, piz + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wiz [ piz - Az, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é
Petição 870160008725, de 11/03/2016, pág. 276/698
5/200 formado por 8 bits, que são indicados por am1, ..., e am8, representando do
primeiro bit ao | oitavo b | |
correspondem | aos F | |
C a1,1 | a1,2 ·· | a1,8 ' |
a2,1 | a2,2 ·· | a2,8 |
Ç a F*H ,1 | aF *H ,2 ·· | aF*H ,8 J |
V = am,n | -1, onde a | m,n repre |
it de um emésimo byte nos F*H bytes, bits que *H bytes podem ser representados como:
, onde quando a =1, V =1, e quando a =0, ’ ~ m,n ’ am,n ’ ~ m ,n ’ qualquer um dentre am 1, ..., e am 8, uma matriz
V é obtida de acordo com uma relação de conversão entre a e V a a s m ,n am,n partir dos bits que correspondem aos F*H bytes, a matriz Va é representada
C v v .. ... v .. 1 como:
F a1,1 | v a1,2 | a1,8 |
V 2,1 | V v a2,2 | V v a2,8 |
Ç VaF*H ,1 | VaF*H ,2 | VaF*H ,8 |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição normal para formar h 1 rl1,8 h
,l2,8 uma matriz R, a matriz R é representada como:
' h1,1 h2,1 h1,2 h2,2 h
,lF*H ,2 h
riF*H ,8 J números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam,2 * hm 2 +···+ Vam8*hm8, Sa1, Sa2, e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ Piz-Az, Piz + Bz ] atende a condição predefinida Cz.
[00012] De acordo com um segundo aspecto, uma modalidade da presente invenção fornece um método para buscar um ponto divisório de corrente de dados com base em um servidor, onde uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M janelas Wx [k - Ax, k+Bx ], e uma condição predefinida Cx que corresponde à
Petição 870160008725, de 11/03/2016, pág. 277/698
6/200 janela Wx [k - Ax, k+Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o método inclui:
(a) determinar uma janela correspondente W z [k - Az, k + Bz ] para um ponto divisório potencial corrente k, de acordo com a regra, onde i e z são números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte de dados na janela Wlz [ k, Az, kt + Bz] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela W„ [ k, - A,, k, + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente k ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz || +maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wx [k, Ax, k, + Bx ] de M janelas do ponto divisório potencial corrente k, atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente k, como um ponto divisório de corrente de dados.
[00013] Com referência ao segundo aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos duas janelas Wie [ k, - Ae, k, + Be ] e Wlf [ k, - Af, k, + Bf ] atendem as condições | Ae + Be |=| Af + Bf 1 e Ce = Cf [00014] Com referência à primeira maneira de implantação possível do segundo aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente que Ae e Af são números inteiros positivos.
[00015] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do segundo aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que Ae 1=Af e Be +1 = Bf.
Petição 870160008725, de 11/03/2016, pág. 278/698
7/200 [00016] Com referência ao segundo aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis do segundo aspecto, em uma quarta maneira de implantação possível, determinar de pelo menos uma parte de dados na janela Wz [ k, - A, k,+Bz ] atende a condição predefinida Cz inclui especificamente:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [k, - Az, kt + Bz] atende a condição predefinida Cz.
[00017] Com referência à quarta maneira de implantação possível do segundo aspecto, em uma quinta maneira de implantação possível, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [k, - Az, kt+Bz] atende a condição predefinida Cz é especificamente: determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wz [ k, - A, k,+Bz ] atende a condição predefinida Cz.
[00018] Com referência ao segundo aspecto, ou a qualquer uma da primeira à quinta maneiras de implantação possíveis do segundo aspecto, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela Wz [kt - Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [ki -Ac, k,+Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wz [kt - Az, kt + Bz ] ou um limite à esquerda de uma janela Wic | k, -Ac, k,+Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wz [ k , - Az, k, + Bz ], onde a janela W [ k ; - Ac, k; + Bc ] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados de M janelas que são determinadas para o novo ponto divisório potencial
Petição 870160008725, de 11/03/2016, pág. 279/698
8/200 de acordo com a regra.
[00019] Com referência à quarta maneira de implantação possível do segundo aspecto, em uma sétima maneira de implantação possível, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [kt - Az, kt + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wlz [ kl - Az, kl + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados como am1,..., e am8 representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem í a1,1 a2,1 ai,2 a2,2 aos ai,8 a2,8
F*H bytes podem ser representados como: í , onde quando amn=1, Vamn =1, e quando amn =0, ( a F*H ,1 Vam,n =-1, onde
Va é obtida de acordo com uma relação de conversão entre a e V a partir a s m,n am,n ~ a
m,n aF*H ,8 y , representa qualquer um dentre am1,..., e am8, uma matriz dos bits que correspondem aos F*H bytes, a matriz Va é representada como: í V V . . ... V . í
F a1,1 | a1,2 | a1,8 |
Va 2,1 | V · a2,2 | V v a2,8 |
^VaF*H ,1 | VaF*H ,2 | VaF*H,8 y |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição í h1,1
- — - — - - h2,1 uma matriz R, a matriz R é representada como:
normal h1,2 h2,2 para formar h 3
1,8 h
,l2,8 h
lF*H ,1 h
,lF*H ,2 h
rlF *H ,8 y números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1* hm1 + Vam2* hm2 +...+ Vam8*hm8, Sa1, Sa2, e SaFH são obtidos de um mesmo modo, uma
Petição 870160008725, de 11/03/2016, pág. 280/698
9/200 quantidade K de valores maiores que 0 entre Sa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wlz [ kt -Az, kl + Bz ] atende a condição predefinida Cz.
[00020] De acordo com um terceiro aspecto, uma modalidade da presente invenção fornece um servidor para buscar um ponto divisório de corrente de dados, onde o servidor inclui uma unidade de processamento central e uma memória principal, a unidade de processamento central se comunica com a memória principal, e uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx [ px - Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px - Ax, px+Bx], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros;
e a memória principal é configurada para armazenar uma instrução executável, e a unidade de processamento central executa a instrução executável para realizar as seguintes etapas:
(a) determinar um ponto pIz e uma janela W [ plz - Az, Piz+Bz] que corresponde ao ponto plz para um ponto divisório potencial corrente kt de acordo com a regra, onde i e z são números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte de dados na janela Wlz [plzA, pz+Bz] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela Wlz [ plz - A, piz+ Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto plz ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz || +maxx( || Ax || + || (k. - p ix) ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wx [ px Ax, px+Bx] de M janelas do ponto divisório potencial corrente ki atende a
Petição 870160008725, de 11/03/2016, pág. 281/698
10/200 condição predefinida Cx, selecionar o ponto divisório potencial corrente k como um ponto divisório de corrente de dados.
[00021] Com referência ao terceiro aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af, Be=Bf, e Ce=c f .
[00022] Com referência à primeira maneira de implantação possível do terceiro aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf, estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
[00023] Com referência à primeira maneira de implantação possível ou a segunda maneira de implantação possível do terceiro aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[00024] Com referência ao terceiro aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis, em uma quarta maneira de implantação possível, a unidade de processamento central é especificamente configurada para:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ pz - A, pz+Bz] atende a condição predefinida Cz.
[00025] Com referência à quarta maneira de implantação possível do terceiro aspecto, em uma quinta maneira de implantação possível, a unidade de processamento central é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela WIz [ pIz - A, pz+Bz] atende a condição predefinida Cz.
[00026] Com referência ao terceiro aspecto, ou a qualquer uma da primeira à quinta maneiras de implantação possíveis, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela
Petição 870160008725, de 11/03/2016, pág. 282/698
11/200
Wiz [ piz- A, piz+Bz] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto plz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wic [pcc -Ac, pic+Bc ] que corresponde a um ponto pcc que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [ plz - A, plz+Bz] ou um limite à esquerda de uma janela Wic [pc -Ac, pic+Bc] que corresponde a um ponto pic que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wiz [ piz - A, pz+Bz ], onde o ponto pc determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[00027] Com referência à quarta maneira de implantação possível do terceiro aspecto, em uma sétima maneira de implantação possível, determinar, pela unidade de processamento central usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz - Az, piz + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wiz [ piz - Az, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados como am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que
F*H bytes podem ser representados como:
correspondem aos
' ai,1 | ai,2 · | · ai,8 ' |
a2,1 | a2,2 · | · a2,8 |
( a f*h ,1 | aF *H ,2 · | · aF*H ,8 / |
, onde quando a =1, V =1, e quando a 0, V > ~ m ,n ’ am,n ’ ~ m,n ’ am,n =-1, onde amn ’ m ,n representa qualquer um dentre am1, ..., e am8, uma matriz Va é obtida de acordo com uma relação de conversão entre a e V a partir dos s m,n am,n ~
Petição 870160008725, de 11/03/2016, pág. 283/698
12/200 bits que correspondem aos F*H bytes, a matriz Vamn é representada como:
' νΛ, | Va1,2 | V 1 F a1,8 |
V 2,1 | V a2,2 | V v a2,8 |
V V aF*H ,1 | V v aF*H ,2 | .. V v aF*H ,8 J |
F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição Γ h1,1
- — - — - - h2,1 uma matriz R, a matriz R é representada como:
normal h1,2 h2,2 h
rlF*H ,2 para formar h 1
1,8 h
fl2,8 • »5 h
hF*H ,8 J números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1* hm1 + Vam2* hm2 +...+ Vam,8*hm,8, Sa1, Sa2, e SaF*Hsão obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ Piz-Az, Piz + Bz ] atende a condição predefinida Cz.
De acordo com um quarto aspecto, uma modalidade da presente invenção fornece um servidor para buscar um ponto divisório de corrente de dados, onde o servidor inclui uma unidade de processamento central e uma memória principal, a unidade de processamento central se comunica com a memória principal, e uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M janelas Wx [ k- Ax, k + Bx] e uma condição predefinida Cx que corresponde à janela Wx [ k- Ax, k + Bx] onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bxsão números inteiros; e a memória principal é configurada para armazenar uma instrução executável, e a unidade de processamento central executa a instrução executável para realizar as seguintes etapas:
(a) determinar uma janela correspondente W [k, - Az, k + Bz ] para um ponto divisório potencial corrente ki de acordo com a regra, onde i e z são
Petição 870160008725, de 11/03/2016, pág. 284/698
13/200 números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte dos dados na janela Wlz [ k, Az, k,+Bz] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela Wz [ k, - A, k, + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente k, ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz || +maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela WIx [ k, Ax, k,+Bx ] de M janelas do ponto divisório potencial corrente k, atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente k, como um ponto divisório de corrente de dados.
[00028] Com referência ao quarto aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos duas janelas WIe [ k, - Ae, k, + Be ] e w f [ k, - a f, k, + b f ] atendem as condições | Ae + Be|=| Af + Bf | e Ce = Cf .
[00029] Com referência à primeira maneira de implantação possível do quarto aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente que Ae e A f são números inteiros positivos.
[00030] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do quarto aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente Ae-1 = Af e Be +1 = Bf .
[00031] Com referência ao quarto aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis, em uma quarta maneira de implantação possível, a unidade de processamento central é especificamente configurada para:
determinar, usando-se uma função aleatória, se a pelo menos uma
Petição 870160008725, de 11/03/2016, pág. 285/698
14/200 parte de dados na janela Wiz [k, - Az, k,+Bz] atende a condição predefinida Cz.
[00032] Com referência à quarta maneira de implantação possível do quarto aspecto, em uma quinta maneira de implantação possível, a unidade de processamento central é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wz [k, -Az, k,+Bz] atende a condição predefinida Cz.
[00033] Com referência ao quarto aspecto, ou qualquer uma da primeira à quinta maneiras de implantação possíveis, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela Wz [kt - Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial e, de acordo com a regra, um limite à esquerda de uma janela Wic [k, -Ac, k, + Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [kt - Az, kt + Bz ], ou um limite à esquerda de uma janela Wic [kl -Ac, ki + Bc] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wiz [ kt - Az, kt + Bz ], onde a janela Wic[kl-Ac, kl+Bc] determinada para o novo ponto divisório potencial é a janela colocada como a primeira em uma sequência, que é obtida de acordo com a direção de busca de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
[00034] Com referência à quarta maneira de implantação possível do quarto aspecto, em uma sétima maneira de implantação possível, determinar, pela unidade de processamento central usando-se uma função aleatória, se a pelo menos uma parte de dados na janela W,z [ k, - Az, k, + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wz [ kt - Az, kt + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é
Petição 870160008725, de 11/03/2016, pág. 286/698
15/200 formado por 8 bits, que são indicados por am1, ..., e am8, representando do
primeiro bit ao | oitavo b | |
correspondem | aos F | |
C a1,1 | a1,2 ·· | a1,8 ' |
a2,1 | a2,2 ·· | a2,8 |
Ç a F*H ,1 | aF *H ,2 ·· | aF*H ,8 J |
V = am,n | -1, onde a | mn repre |
it de um emésimo byte nos F*H bytes, bits que *H bytes podem ser representados como:
, onde quandoa =1, V =1, e quando a =0, ’ ~ m,n ’ am,n ’ ~ m ,n ’ qualquer um dentre am 1, ..., e am 8, uma matriz
V é obtida de acordo com uma relação de conversão entre a e V a a s m ,n am,n partir dos bits que correspondem aos F*H bytes, a matriz Va é representada
C v v .. ... v .. í como:
F a1,1 | a1,2 | a1,8 |
Va 2,1 | V a2,2 | V v a2,8 |
Ç VaF*H ,1 | VaF*H ,2 | VaF*H ,8 |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição normal para formar h í H1,8 h
fl2,8 uma matriz R, a matriz R é representada como:
' h1,1 h2,1 h1,2 h2,2 h
,lF*H ,2 h
riF*H ,8 J números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam2 * hm 2 +···+ Vam8*hm8, Sa1, Sa2, e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ Piz-Az, Piz + Bz ] atende a condição predefinida Cz.
[00035] De acordo com um quinto aspecto, uma modalidade da presente invenção fornece um servidor para buscar um ponto divisório de corrente de dados, onde uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx [ Px - Ax, Px+Bx ] que corresponde ao ponto px, e uma condição predefinida Cx
Petição 870160008725, de 11/03/2016, pág. 287/698
16/200 que corresponde à janela Wx [ px - Ax, px+Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor inclui: uma unidade de processamento, configurada para realizar a etapa (a):
(a) determinar um ponto pIz e uma janela Wz [ ptz - A, Pz + Bz ] que corresponde ao ponto pz para um ponto divisório potencial corrente kt de acordo com a regra, onde i e z são números inteiros, e 1<z<M; e uma unidade de julgamento e processamento, configurada para: determinar se pelo menos uma parte de dados na janela WIZ [ p z - Az., pIZ + Bz ] atende uma condição predefinida Cz;
quando a pelo menos uma parte de dados na janela Wz [ pz - A, pz + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto pz ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que IIBz 11+ maxx(II Ax 11+11( kI -px)||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a) para o novo ponto divisório potencial; e quando pelo menos uma parte de dados em cada janela Wix [ pix - Ax , pix+Bx ] de M janelas do ponto divisório potencial corrente kI atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kI, como um ponto divisório de corrente de dados.
[00036] Com referência ao quinto aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af, Be = Bf, e Ce = Cf.
[00037] Com referência à primeira maneira de implantação possível do quinto aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
Petição 870160008725, de 11/03/2016, pág. 288/698
17/200 [00038] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do quinto aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[00039] Com referência ao quinto aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis, em uma quarta maneira de implantação possível, a unidade de julgamento e processamento determina especificamente, usando uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - A, piz+Bz] atende a condição predefinida Cz.
[00040] Com referência à quarta maneira de implantação possível do quinto aspecto, em uma quinta maneira de implantação possível, a unidade de julgamento e processamento é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wlz [ plz- Az, piz + Bz] atende a condição predefinida Cz.
[00041] Com referência ao quinto aspecto, ou qualquer uma da primeira à quinta maneiras de implantação possíveis, em uma sexta maneira de implantação possível, a unidade de julgamento e processamento é configurada para: quando a pelo menos uma parte de dados na janela Wlz [plzA.., pz+Bz] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto plz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, onde a unidade de determinação realiza a etapa (a) para o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wic [ pic - Ac, pic+Bc ] que corresponde a um ponto pc que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [ plz - A, piz+Bz] ou um limite à esquerda de uma janela Wic [pc -Ac, pc+Bc ], que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela W z [ plz
Petição 870160008725, de 11/03/2016, pág. 289/698
18/200
- A, Piz+Bz ], onde a janela WIc [ pIc - Ac, pIc+Bc ] determinada para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[00042] Com referência à quarta maneira de implantação possível do quinto aspecto, em uma sétima maneira de implantação possível, o fato de que a unidade de julgamento e processamento seja especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wic [ pc - Ac, pIc+Bc ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wlz [ pIz - Az, pIz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados como am1, e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que
correspondem | aos F*H bytes podem ser representados | como: | |||
' ai,1 | a1,2 | ... a1,8 | |||
a2,1 | a2,2 | ... a2,8 | , onde | quandoa =1, V =1, e quando ~ m,n ’ am,n ’ ~ | a =0, m ,n ’ |
( a F*H ,1 | aF *H ,2 | ... aF*H ,8 > | |||
V =- am,n | 1, onde | amn representa qualquer um dentre am1, ..., e am 8, uma matriz | |||
Va é obtida de acordo com uma relação de conversão entre a e a s m ,n | V a am,n | ||||
partir dos bits que correspondem | aos F*H bytes, a matriz Va é representada | ||||
' VaU | Vfl1,2 - | V F a1,8 | |||
como: | Va 2,1 | V ··· v a2,2 | V v a2,8 | , F*H*8 números aleatórios são selecionados | |
< VaF*H ,1 | VaF*H, 2 ’ ” | VaF*H ,8 |
a partir de números aleatórios seguindo-se uma distribuição normal para formar
Petição 870160008725, de 11/03/2016, pág. 290/698
19/200
' h1,1 | h1,2 ·· | h j 1,8 | |
h2, | h ·· | h^ | |
uma matriz R, a matriz R é representada como: | 2,1 | 2,2 | 2,8 • 5 |
h V F*H ,1 | h nF*H ,2 | h f *h ,8 y | |
números aleatórios em uma emésima linha da matriz V e | em uma | emésima |
linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam2 * hm 2 +···+ Vam,8*hm8, Sa1, Sa2, e SaF*.H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ Piz-Az, Piz + Bz ] atende a condição predefinida Cz.
[00043] De acordo com um sexto aspecto, uma modalidade da presente invenção fornece um servidor para buscar um ponto divisório de corrente de dados, onde uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k , determinar M janelas Wx [k- Ax, k+Bx] e uma condição predefinida Cx que corresponde à janela Wx [ k - Ax , k + Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor inclui: uma unidade de determinação, configurada para realizar a etapa (a):
(a) determinar uma janela correspondente W k - Az, k, + Bz ] para um ponto divisório potencial corrente k, de acordo com a regra, onde i e z são números inteiros, e 1<z<M; e uma unidade de julgamento e processamento, configurada para: determinar se pelo menos uma parte de dados na janela W [ k, - Az, k,+Bz ] atende uma condição predefinida Cz quando a pelo menos uma parte de dados na janela W [ k, - Az, k, + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente ki ao longo de uma direção de buscar um ponto divisório de
Petição 870160008725, de 11/03/2016, pág. 291/698
20/200 corrente de dados, onde N*U não é maior que || Bz || +maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wa [ kI Ax, kI+Bx ] de M janelas do ponto divisório potencial corrente kI atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kI como um ponto divisório de corrente de dados.
[00044] Com referência ao sexto aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos duas janelas WIe [ kI - Ae, kI + Be ] e wIf [ kI - Af, kI + b f ] atendem as condições | Ae + Be |=| A f + B f 1 e Ce = C f .
[00045] Com referência à primeira maneira de implantação possível do sexto aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente que Ae e Af são números inteiros positivos.
[00046] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do sexto aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente Ae-1= Af e Be +1= Bf .
[00047] Com referência ao sexto aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis, em uma quarta maneira de implantação possível, a unidade de julgamento e processamento é especificamente configurada para:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ kt - A, kt + Bz ] atende a condição predefinida Cz.
[00048] Com referência à quarta maneira de implantação possível do sexto aspecto, em uma quinta maneira de implantação possível, a unidade de julgamento e processamento é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wiz [ kI - A., kI+Bz] atende a condição predefinida Cz.
[00049] Com referência ao sexto aspecto, ou qualquer uma da
Petição 870160008725, de 11/03/2016, pág. 292/698
21/200 primeira à quinta maneiras de implantação possíveis, em uma sexta maneira de implantação possível, a unidade de julgamento e processamento é configurada para: quando a pelo menos uma parte de dados na janela Wz [ kt Az, kl + Bz ] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, a unidade de determinação realiza a etapa (a) para o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [kl -Ac, kl+Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [ kt - Az, kt + Bz ] ou um limite à esquerda de uma janela Wlc [kl -Ac, kl+Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [kt Az, kt + Bz ], onde a janela Wlc [kl -Ac, kl+Bc] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
[00050] Com referência à quarta maneira de implantação possível do sexto aspecto, em uma sétima maneira de implantação possível, o fato de que a unidade de julgamento e processamento para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ kt Az, k + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wlz [ kt - Az, k + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados como aml,..., e am8 representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem aos F*H bytes podem ser representados como:
Petição 870160008725, de 11/03/2016, pág. 293/698
22/200 ' a a2,1 «1,2 a2,2 ai,8 a2,8 , onde quando amn =1, l =1, e quando amn =0,
V a F*H ,1 Vamn =-1, onde
V é obtida de acordo com uma relação de conversão entre a e V a partir a m ,n am ,n a
m,n aF*H ,8 y , representa qualquer um dentre am1e am8, uma matriz dos bits que correspondem aos F*H bytes, a matriz Va é representada como:
C v v .. ... v .. í
v a1,1 | a1,2 | a1,8 |
Va 2,1 | V a2,2 | Va 2,8 |
^VaF*H ,1 | VaF*H ,2 | VaF*H,8 y |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição
C h1,1
- — - — - - h2,1 uma matriz R, a matriz R é representada como:
normal h1,2 h2,2 para formar h í
1,8 h
,l2,8 h
lF*H ,1 h
,lF*H ,2 h
rlF *H ,8 y números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1* hm1 + Vam2* hm2 +...+ Vam8*hm8, Sa1, Sa2, e SaFH são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wiz [ ki - Az, kt + Bz ] atende a condição predefinida Cz.
[00051] De acordo com um sétimo aspecto, uma modalidade da presente invenção fornece um meio de armazenamento legível por computador, onde o meio de armazenamento legível por computador é configurado para armazenar uma instrução executável, um servidor executa a instrução executável para buscar um ponto divisório de corrente de dados, e uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela W [Px-Ax, Px + Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à
Petição 870160008725, de 11/03/2016, pág. 294/698
23/200 janela Wx [ px - Ax, px+Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor executa a instrução executável para realizar as seguintes etapas:
(a) de acordo com a regra, para um ponto divisório potencial corrente kt, determinar um ponto pIz e uma janela WIz [ pIz - A.., plz+Bz] que corresponde ao ponto plz para um ponto divisório potencial corrente kt de acordo com a regra, onde i e z são números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte de dados na janela Wlz [plzA, pz+Bz] atende a condição predefinida Cz; e quando a pelo menos uma parte de dados na janela Wlz [ plz - A, pz + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto p z ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que IIBz 11+ maxx(|| Ax ll+ll( kI -px)||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wix [ px Ax, px+Bx] de M janelas do ponto divisório potencial corrente kI atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kI, como um ponto divisório de corrente de dados.
[00052] Com referência ao sétimo aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af, Be = Bf, e Ce = Cf.
[00053] Com referência à primeira maneira de implantação possível do sétimo aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf, estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
[00054] Com referência à primeira maneira de implantação possível
Petição 870160008725, de 11/03/2016, pág. 295/698
24/200 ou à segunda maneira de implantação possível do sétimo aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[00055] Com referência ao sétimo aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis do sétimo aspecto, em uma quarta maneira de implantação possível, determinar, pelo servidor, se pelo menos uma parte de dados na janela Wlz [ pz - A, piz+Bz ] atende a condição predefinida Cz inclui especificamente:
determinar, pelo servidor usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ pz- Az, piz+Bz] atende a condição predefinida Cz.
[00056] Com referência à quarta maneira de implantação possível do sétimo aspecto, em uma quinta maneira de implantação possível, determinar, pelo servidor usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - A, Pz+Bz ] atende a condição predefinida Cz inclui especificamente:
determinar, pelo servidor usando uma função hash, se a pelo menos uma parte de dados na janela Wlz [ plz - A, pz+Bz ] atende a condição predefinida Cz.
[00057] Com referência ao sétimo aspecto, ou qualquer uma da primeira à quinta maneiras de implantação possíveis do sétimo aspecto, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela Wlz [ plz- A, pz+Bz] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto plz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [pc -Ac, pc+Bc ] que corresponde a um ponto pc que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [plz
Petição 870160008725, de 11/03/2016, pág. 296/698
25/200
- A, Piz+Bz ] ou um limite à esquerda de uma janela Wic [ p - Ac, pic+Bc ] que corresponde a um ponto pcc que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wz [ pz- A, pz + Bz ], onde o ponto pic determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[00058] Com referência à quarta maneira de implantação possível do sétimo aspecto, em uma sétima maneira de implantação possível, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ piz - A, piz + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wz [ piz - A, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados por am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que *H bytes podem ser representados como:
correspondem | aos F | |
C ai, 1 | a1,2 | ... ai,8 |
a2,1 | a2,2 | ... a2,8 |
a F*H ,1 | aF *H ,2 | ... aF*H ,8 J |
V = am,n | -1, onde | amn repre |
, onde quando a =1, V =1, e quando a =0, ’ ~ m,n ’ am,n ’ ~ m ,n ’ qualquer um dentre am1, ..., e am8, uma matriz
V é obtida de acordo com uma relação de conversão entre a e V a a s m ,n am,n partir dos bits que correspondem aos F*H bytes, a matriz Va é representada
C v v .. ... v .. í como:
F a1,1 | v a1,2 | v a1,8 |
Va 2,1 | V v a2,2 | V v a2,8 |
^VaF*H ,1 | VaF*H ,2 | VaF*H ,8 |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição normal para formar
Petição 870160008725, de 11/03/2016, pág. 297/698
26/200
' h1,1 | h1,2 ·· | h j 1,8 | |
h2, | h ~ ·· | h^ | |
uma matriz R, a matriz R é representada como: | 2,1 | 2,2 | 2,8 • 5 |
h V f*h ,1 | h nF*H ,2 | h f *h ,8 y | |
números aleatórios em uma emésima linha da matriz V e | em uma | emésima |
linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam2 * hm 2 +···+ Vam,8*hm8, Sa1, Sa2, e SaF*.H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela WIZ [ Piz - A, Piz + Bz ] atende a condição predefinida Cz.
[00059] De acordo com um oitavo aspecto, uma modalidade da presente invenção fornece um meio de armazenamento legível por computador, onde o meio de armazenamento legível por computador é configurado para armazenar uma instrução executável, um servidor executa a instrução executável para buscar um ponto divisório de corrente de dados, e uma regra é predefinida no servidor, onde a regra é: para um ponto divisório potencial k, determinar M janelas Wx [k - Ax, k+Bx], e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k+Bx], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor executa a instrução executável para realizar as seguintes etapas:
(a) determinar uma janela correspondente Wiz [k - Az, k, + Bz ] para um ponto divisório potencial corrente k, de acordo com a regra, onde i e z são números inteiros, e 1<z<M;
(b) determinar se pelo menos uma parte de dados na janela Wlz [ k, A., ki+Bz ] atende a condição predefinida Cz; e quando a pelo menos uma parte de dados na janela W, [ k, - Az, k, + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório
Petição 870160008725, de 11/03/2016, pág. 298/698
27/200 potencial corrente k ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz || +maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wx [ px Ax, px+Bx] de M janelas do ponto divisório potencial corrente ki atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente ki como um ponto divisório de corrente de dados.
[00060] Com referência ao segundo aspecto, em uma primeira maneira de implantação possível, a regra inclui adicionalmente que pelo menos duas janelas Wie [ k - Ae, kI + Be ] e Wf [ kt - Af, kt + Bf ] atendem as condições | Ae + Be |=| Af + Bf 1 e Ce = Cf [00061] Com referência à primeira maneira de implantação possível do oitavo aspecto, em uma segunda maneira de implantação possível, a regra inclui adicionalmente que Ae e Af são números inteiros positivos.
[00062] Com referência à primeira maneira de implantação possível ou à segunda maneira de implantação possível do oitavo aspecto, em uma terceira maneira de implantação possível, a regra inclui adicionalmente que Ae 1=a f e Be +1= b f [00063] Com referência ao oitavo aspecto, ou qualquer uma dentre a primeira à terceira maneiras de implantação possíveis do oitavo aspecto, em uma quarta maneira de implantação possível, determinar, pelo servidor, se pelo menos uma parte de dados na janela Wlz [ kt - A, kt + Bz ] atende a condição predefinida Cz inclui especificamente:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ kt - A, kI+Bz ] atende a condição predefinida Cz.
[00064] Com referência à quarta maneira de implantação possível do oitavo aspecto, em uma quinta maneira de implantação possível, determinar, pelo servidor usando-se uma função aleatória, se a pelo menos uma parte de dados na janela WIz [ kt - A, kI+Bz] atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 299/698
28/200
Cz é especificamente: determinar, pelo servidor usando uma função hash, se a pelo menos uma parte de dados na janela W k - Az, k+Bz ] atende a condição predefinida Cz.
[00065] Com referência ao oitavo aspecto, ou qualquer uma da primeira à quinta maneiras de implantação possíveis do oitavo aspecto, em uma sexta maneira de implantação possível, quando a pelo menos uma parte de dados na janela Wz [kt - Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [kl -Ac, kl+Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [kt - Az, kt + Bz ] ou um limite à esquerda de uma janela Wlc [ki -Ac, ki+Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [ k, - Az, k, + Bz ], onde a janela W lc [ kl -Ac, kl + Bc] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
[00066] Com referência à quarta maneira de implantação possível do oitavo aspecto, em uma sétima maneira de implantação possível, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [kt - Az, kt + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wlz [ kt - Az, kt + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados por am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que
Petição 870160008725, de 11/03/2016, pág. 300/698
29/200
correspondem | aos F | |
C ai,1 | a1,2 | ··· a1,8 ' |
a2,1 | a2,2 | ··· a2,8 |
( a F*H ,1 | a p *H ,2 | ··· aF*H,8 J |
V = am,n | -1, onde | am,n repre |
*H bytes podem ser representados como:
, onde quando a =1, V =1, e quando a =0, ’ ~ m,n ’ am,n ’ ~ m ,n ’ qualquer um dentre am1, ..., e am8, uma matriz
V é obtida de acordo com uma relação de conversão entre a e V a a s m ,n am,n partir dos bits que correspondem aos F*H bytes, a matriz Va é representada
C v v .. ... v .. ã como:
v a1,1 | a1,2 | v a1,8 |
Va 2,1 | V 22 a2,2 | Va 2,8 |
^VaF*H ,1 | VaF*H ,2 | VaF*H ,8 |
, F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição normal para formar
uma matriz R, a matriz R é representada como: | C h1,1 h2,1 | h1,2 · h2,2 · | h ã 1,8 h fl2,8 |
h p <F*H ,1 | h ,lF*H ,2 | h t,F*H ,8 J |
números aleatórios em uma emésima linha da matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam2 * hm 2 +···+ Vam8*hm8, Sa1, Sa2, e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wiz [ ki - Az, kt + Bz ] atende a condição predefinida Cz.
[00067] Nas modalidades da presente invenção, um ponto divisório de corrente de dados é buscado quando se determina se pelo menos uma parte de dados em uma janela de M janelas atende uma condição predefinida, e quando a pelo menos uma parte de dados na janela não atende a condição predefinida, um comprimento de N*U é pulado, de modo a obter um próximo ponto divisório potencial, desse modo aumentando a eficiência de buscar um ponto divisório de corrente de dados.
Petição 870160008725, de 11/03/2016, pág. 301/698
30/200
BREVE DESCRIÇÃO DOS DESENHOS [00068] A Figura 1 é um diagrama esquemático de uma situação de aplicação de acordo com uma modalidade da presente invenção;
[00069] A Figura 2 é um diagrama esquemático de um ponto divisório de corrente de dados;
[00070] A Figura 3 é um diagrama esquemático de buscar um ponto divisório de corrente de dados;
[00071] A Figura 4 é um diagrama esquemático de um método de acordo com uma modalidade da presente invenção;
[00072] A Figura 5 e a Figura 6 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00073] A Figura 7 e a Figura 8 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00074] A Figura 9 e a Figura 10 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00075] A Figura 11, a Figura 12, e a Figura 13 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00076] A Figura 14 e a Figura 15 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00077] A Figura 16 e a Figura 17 são diagramas esquemáticos de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida;
[00078] A Figura 18 é um diagrama estrutural de um servidor para desduplicação;
Petição 870160008725, de 11/03/2016, pág. 302/698
31/200 [00079] A Figura 19 é um diagrama estrutural de um servidor para desduplicação;
[00080] A Figura 20 é um diagrama esquemático de um método de acordo com uma modalidade da presente invenção;
[00081] A Figura 21 e a Figura 22 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00082] A Figura 23 e a Figura 24 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00083] A Figura 25 e a Figura 26 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00084] A Figura 27, a Figura 28, e a Figura 29 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados;
[00085] A Figura 30 e a Figura 31 são diagramas esquemáticos de uma maneira de implantação de busca de um ponto divisório de corrente de dados; e [00086] A Figura 32 e a Figura 33 são diagramas esquemáticos de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida.
DESCRIÇÃO DE MODALIDADES [00087] Com o contínuo progresso de tecnologias de armazenamento, os montantes de dados gerados crescem cada vez mais, e um grande montante de dados levantou a questão de maiores exigências quanto à capacidade de armazenamento. Os custos com a compra de equipamento de TI aumentam juntamente com a capacidade de armazenamento. Para mitigar o conflito de demanda entre os montantes de
Petição 870160008725, de 11/03/2016, pág. 303/698
32/200 dados e a capacidade de armazenamento e baixar os custos com a compra de equipamento de TI, uma tecnologia de eliminar dados duplicados é introduzida no campo de armazenamento de dados.
[00088] Uma situação de uso de uma modalidade da presente invenção é uma situação de backup de dados. O backup de dados é um processo de fazer, usando um servidor para backup, um backup de dados em outro meio de armazenamento para impedir a perda de dados que se deve a várias razões. A Figura 1 mostra uma arquitetura de um sistema de backup de dados. O sistema de backup de dados inclui clientes (101a, 101b, ..., e 101n), um servidor para backup 102, um servidor para eliminação de dados duplicados (denominado um servidor para desduplicação ou um servidor para eliminação de duplicação de forma resumida) 103, e dispositivos de armazenamento (104a, 104b, ..., e 104n). Os clientes (101a, 101b, ..., e 101n) podem ser servidores do aplicativo, estações de trabalho ou similares. O servidor para backup 102 é configurado para fazer um backup de dados gerados pelos clientes. O servidor para desduplicação 103 é configurado para executar uma tarefa de eliminar dados duplicados para os dados de backup. Os dispositivos de armazenamento (104a, 104b, ..., e 104n) servem de mídia de armazenamento que armazena dados a partir dos quais dados duplicados foram eliminados, e pode ser mídia de armazenamento tal como arranjos de disco e bibliotecas em fita. Os clientes (101a, 101b, ..., e 101n), o servidor para backup 102, o servidor para eliminação de dados duplicados 103, e os dispositivos de armazenamento (104a, 104b, ..., e 104n) podem ser conectados de uma maneira tal como usando um comutador, uma rede de área local, a internet, ou uma fibra óptica. Os supracitados dispositivos podem ser localizados em um mesmo site, ou podem ser localizados em sites diferentes. O servidor para backup 102, o servidor para eliminação de duplicação 103, e os dispositivos de armazenamento (104a, 104b, ..., e 104n) podem ser dispositivos físicos independentes, ou podem ser fisicamente integrados como
Petição 870160008725, de 11/03/2016, pág. 304/698
33/200 um todo em uma implantação específica, ou o servidor para backup 102 e o servidor para eliminação de duplicação 103 são integrados como um todo, ou o servidor para eliminação de duplicação 103 e os dispositivos de armazenamento (104a, 104b, ..., e 104n) são integrados como um todo, ou similares.
[00089] O servidor para desduplicação 103 realiza uma operação de eliminar dados duplicados em uma corrente de dados de dados de backup, onde a operação em geral inclui as seguintes etapas:
(1) buscar um ponto divisório de corrente de dados: buscar um ponto divisório de corrente de dados em uma corrente de dados de acordo com um algoritmo específico;
(2) realizar uma divisão de acordo com o ponto divisório encontrado de corrente de dados para obter fatias de dados;
(3) calcular um valor característico de cada fatia de dados: calcular o valor característico da fatia de dados, o que serve como uma característica para identificar a fatia de dados; e adicionar o valor característico obtido por meio de cálculo a uma lista característica da fatia de dados de um arquivo que corresponde à corrente de dados, onde um algoritmo SHA-1 ou MD5 é em geral usado para calcular um valor característico de uma fatia de dados;
(4) detectar uma mesma fatia de dados: comparar o valor característico da fatia de dados obtida por meio de cálculo com um valor característico que já existe na lista característica da fatia de dados para determinar se uma fatia de dados idêntica existe ou não; e (5) eliminar bloco de dados duplicados: caso seja constatado pela detecção da mesma fatia de dados que um valor característico igual àquele da fatia de dados existe na lista característica da fatia de dados, pular o armazenamento da fatia de dados ou determinar se armazenar ou não a fatia de dados de acordo com uma quantidade de armazenamento de fatias de dados duplicados que é determinada de acordo com uma política do backup.
Petição 870160008725, de 11/03/2016, pág. 305/698
34/200 [00090] Pode ser conhecido, a partir da etapa de realizar, pelo servidor para desduplicação 103, a operação de eliminar dados duplicados em uma corrente de dados de dados de backup, que a busca de um ponto divisório de corrente de dados, servindo como uma etapa chave na operação de eliminar dados duplicados, determina diretamente o desempenho de eliminação de dados duplicados.
[00091] Em uma modalidade da presente invenção, o servidor para desduplicação 103 recebe um arquivo para backup enviado pelo servidor para backup 102, e realiza processamento de eliminar dados duplicados no arquivo. Um arquivo para backup a ser processado é usualmente apresentado na forma de uma corrente de dados no servidor para desduplicação 103. Quando o servidor para desduplicação 103 busca por um ponto divisório em uma corrente de dados, uma unidade mínima para buscar um ponto divisório de corrente de dados usualmente precisa ser determinada. Especificamente, conforme mostrado na Figura 2, por exemplo, um ponto divisório potencial k está localizado entre duas unidades mínimas consecutivas, cujos números na sequência são 1 e 2, para buscar um ponto divisório de corrente de dados. Um ponto divisório potencial significa um ponto para o qual precisa ser determinado se o ponto pode serve como um ponto divisório de corrente de dados. Quando o ponto k é um ponto divisório de corrente de dados, em uma direção de buscar um ponto divisório de corrente de dados mostrada por uma seta na Figura 2, um próximo ponto divisório potencial k7 é buscado, isto é, um ponto localizado entre duas unidades mínimas consecutivas, cujos números na sequência são 7 e 8, para buscar um ponto divisório de corrente de dados. Quando o ponto divisório potencial k7 é um ponto divisório de corrente de dados, dados entre os dois pontos divisórios de corrente de dados adjacentes kj, e k7 é a fatia de dados 1. A unidade mínima para buscar um ponto divisório de corrente de dados pode especificamente ser determinada de acordo com uma real exigência, e aqui 1 byte (Byte) é usado como um exemplo, isto é,
Petição 870160008725, de 11/03/2016, pág. 306/698
35/200 todas as unidades mínimas, cujos números na sequência são 1, 2, 7, e 8, para buscar um ponto divisório de corrente de dados têm um tamanho de 1 byte. A direção de buscar um ponto divisório de corrente de dados mostrada na Figura 2 usualmente representa uma direção de busca de um cabeçalho de arquivo para um fim de arquivo ou a direção de um fim de arquivo para um cabeçalho de arquivo, e nessa modalidade, a direção de busca de um cabeçalho de arquivo para um fim de arquivo é usada como um exemplo.
[00092] Em uma situação de eliminar dados duplicados, uma fatia de dados menor em geral indica uma taxa de eliminar dados duplicados mais alta e um modo mais fácil de encontrar uma fatia de dados duplicados, mas um quantidade maior de metadados gerados a partir daí; além disso, após uma fatia de dados diminuir parcialmente, a taxa de eliminar dados duplicados não aumenta mais, mas o montante de metadados aumenta rapidamente. Portanto, um tamanho de uma fatia de dados pode ser controlado. Em aplicações reais, um valor mínimo de uma fatia de dados, por exemplo, 4 KB (4096 bytes), é usualmente definido; em consideração da taxa de eliminar dados duplicados ao mesmo tempo, um valor máximo de uma fatia de dados também é definido, isto é, o tamanho de uma fatia de dados não pode exceder o valor máximo, por exemplo, 12 KB (12288 bytes). Uma maneira de implantação específica é mostrada na Figura 3. O servidor para desduplicação 103 busca por um ponto divisório de corrente de dados ao longo da direção mostrada pela seta. ka é um ponto divisório de corrente de dados encontrado naquele momento, e a partir de ka, um próximo ponto divisório potencial é buscado na direção de buscar um ponto divisório de corrente de dados. Para atender a exigência de uma fatia de dados mínima, usualmente começando a partir de um ponto divisório de corrente de dados, um tamanho da fatia de dados mínima é pulada ao longo de uma direção de buscar um ponto divisório de corrente de dados, e a busca começa a partir de uma posição de extremidade da fatia de dados mínima, isto é, a posição de extremidade da fatia de dados mínima serve como
Petição 870160008725, de 11/03/2016, pág. 307/698
36/200 um próximo ponto divisório potencial kt. Nessa modalidade da presente invenção, uma fatia de dados mínima de 4 KB, isto é, 4*1024=4096 bytes pode ser primeiramente pulada a partir do ponto ka ao longo da direção de buscar um ponto divisório de corrente de dados. 4096 bytes são pulados a partir do ponto ka ao longo da direção de buscar um ponto divisório de corrente de dados, e o ponto kt é obtido em uma posição de extremidade de um quatro milésimo nonagésimo sexto byte para servir como um ponto divisório potencial. Por exemplo, kt está localizado entre duas unidades mínimas consecutivas, cujos números na sequência são 4096 e 4097, para buscar um ponto divisório de corrente de dados. Ainda usando a Figura 3 como um exemplo, ka é um ponto divisório de corrente de dados encontrado naquele momento, e um próximo ponto divisório de corrente de dados é buscado ao longo da direção mostrada na Figura 3. Se nenhum próximo ponto divisório de corrente de dados é encontrado após um valor máximo de uma fatia de dados ser excedido, começando a partir do ponto ka na direção de buscar um ponto divisório de corrente de dados, um ponto kz em que o valor máximo de uma fatia de dados é conseguido serve como o próximo ponto divisório de corrente de dados e a é realizada uma divisão forçada.
[00093] Uma modalidade da presente invenção fornece um método para buscar um ponto divisório de corrente de dados com base em um servidor para duplicação, que, conforme mostrado na Figura 4, inclui:
[00094] Uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx [ px - Ax, px+Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx[px-Ax, px+Bx], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros, onde uma distância entre px e o ponto divisório potencial k é de dx unidades mínimas para buscar um ponto divisório de corrente de dados, a unidade mínima para buscar um ponto divisório de corrente de dados
Petição 870160008725, de 11/03/2016, pág. 308/698
37/200 é representada como U, e nessa modalidade, U=1 byte. Em uma maneira de implantação mostrada na Figura 3, sobre um valor de M, em uma maneira de implantação, um valor de M*U não é maior que uma distância máxima predefinida entre dois pontos divisórios de corrente de dados adjacentes, isto é, um comprimento máximo predefinido de uma fatia de dados. É determinado se pelo menos uma parte de dados em uma janela Wz [pz -Az, pz+Bz ] que corresponde a um ponto pz atende uma condição predefinida Cz, onde z é um número inteiro, 1<z<M, e (pz - Az) e (pz+Bz) representam dois limites da janela Wz [pz -Az, pz + Bz]. Quando é determinado que pelo menos uma parte de dados em uma janela Wz [pz -Az, pz+Bz ] de qualquer ponto pz não atende a condição predefinida Cz, N bytes são pulados a partir do ponto pz que corresponde à janela Wz [ pz - Az, pz+Bz ] que não atende a condição predefinida ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N< || Bz ||+maxx(|| Ax || + || (k-px) ||), onde II (k-px) || representa uma distância entre qualquer ponto dos M pontos px e o ponto divisório potencial k, maxx (|| Ax || + || (k- px) ||) representa um valor máximo de uma soma de um valor absoluto da distância entre qualquer ponto dentre os M pontos px e o ponto divisório potencial k e um valor absoluto de Ax que corresponde ao qualquer ponto, e IIBz II representa um valor absoluto de Bz em Wz [pz -Az, pz+Bz]. Um princípio para definir um valor de N é especificamente apresentado nas modalidades a seguir. Quando é determinado que pelo menos uma parte de dados em cada janela Wx [ px- Ax, px+Bx] das M janelas atende a condição predefinida Cx,, o ponto divisório potencial k é um ponto divisório de corrente de dados.
[00095] Especificamente, para um ponto divisório potencial corrente kt, as seguintes etapas são realizadas de acordo com a regra:
[00096] Etapa 401: Determinar um ponto plz e uma janela Wlz [ plzA., pz+Bz] que correspondem ao ponto plz para um ponto divisório potencial corrente ki de acordo com a regra, onde i e z são números inteiros, e 1<z<M.
Petição 870160008725, de 11/03/2016, pág. 309/698
38/200 [00097] Etapa 402: Determinar se pelo menos uma parte de dados na janela Wlz [plz- Az, piz + Bz] atende uma condição predefinida Cz;
quando a pelo menos uma parte de dados na janela Wlz [ plz - A, pz + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto plz ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que II Bz 11+ max,. (II Ax ||+||( kI - px)H), de modo a obter um novo ponto divisório potencial, e realizar a etapa 401; e quando pelo menos uma parte de dados em cada janela WIx [ px- Ax, px+Bx] de M janelas do ponto divisório potencial corrente kI atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kI como um ponto divisório de corrente de dados.
[00098] Além disso, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae=Af, Be=Bf, e Ce=Cf.
[00099] A regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
[0100] A regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[0101] Determinar se pelo menos uma parte de dados na janela WIZ [ piz- A, piz + Bz ] atende a condição predefinida Cz inclui especificamente:
determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - A, pz + Bz ] atende a condição predefinida Cz [0102] Determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz- A, pz + Bz] atende a condição predefinida Cz é especificamente: determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wz [ plz- Az, Piz + Bz ] atende a condição predefinida Cz.
[0103] Quando a pelo menos uma parte de dados na janela Wiz [ kt
Petição 870160008725, de 11/03/2016, pág. 310/698
39/200
-Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto plz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wic [pic- Ac, pic+Bc] correspondente a um ponto pic que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [ plz- A, piz + Bz ] ou um limite à esquerda de uma janela Wic [pic-Ac, pic+Bc] correspondente a um ponto pic que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [plz- A, piz + Bz ], onde o ponto pic determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[0104] Nessa modalidade da presente invenção, um ponto divisório de corrente de dados é buscado determinando se pelo menos uma parte de dados em uma janela de M janelas atende uma condição predefinida, e quando a pelo menos uma parte de dados na janela não atende a condição predefinida, um comprimento de N*U é pulado, onde N*U não é maior que || Bz II max..(|| Ax || + || (ki - pix) ||), de modo a se obter um próximo ponto divisório potencial, desse modo aumentando a eficiência na busca de um ponto divisório de corrente de dados.
[0105] Em um processo de eliminar dados duplicados, considerase assegurar um tamanho uniforme de uma fatia de dados, um tamanho de uma fatia de dados comum (também denominada uma fatia comum). Isto é, embora limites em um tamanho de uma fatia de dados mínima e um tamanho de uma fatia de dados máxima sejam atendidos, o tamanho da fatia de dados comum é determinado para assegurar um tamanho uniforme de uma fatia de dados obtida. Uma probabilidade (representada como P(n)) de encontrar um
Petição 870160008725, de 11/03/2016, pág. 311/698
40/200 ponto divisório de corrente de dados depende de dois fatores, isto é, a quantidade M dos pontos px e uma probabilidade de que pelo menos uma parte de dados na janela Wx [ px- Ax, px + Bx] que corresponde ao ponto px atenda a condição predefinida Cx, onde a primeira afeta um comprimento para pular, a última afeta uma probabilidade de pular, e as duas juntas afetam o tamanho da fatia comum. Em geral, quando o tamanho da fatia comum é fixo, à medida que a quantidade M dos pontos px aumenta, a probabilidade de que pelo menos uma parte de dados em uma janela Wx[px-Ax, px+Bx] que corresponde a um único ponto px atenda a condição predefinida Cx também aumenta. Por exemplo, a regra predefinida no servidor para desduplicação 103 é: para um ponto divisório potencial k, determinar 11 pontos px, onde x indica números naturais consecutivos de 1 a 11 separadamente, e uma probabilidade de que pelo menos uma parte de dados em uma janela Wx[px-Ax, px+Bx] que corresponde a qualquer ponto px dos 11 pontos atenda a condição predefinida Cx é de 1/2. Outro grupo de regras predefinidas no servidor para desduplicação 103 é: selecionar 24 pontos px para o ponto divisório potencial k, onde x indica números naturais consecutivos de 1 a 24 separadamente, e uma probabilidade de que pelo menos uma parte de dados em uma janela Wx [ px- Ax, px+Bx] que corresponde a qualquer ponto px dos 24 pontos atenda a condição predefinida Cx é de 3/4. Para a definição de uma probabilidade de que pelo menos uma parte de dados em uma janela específica Wx [ px- Ax, px+ Bx ] atenda a condição predefinida Cx, referência pode ser feita à descrição da parte de determinar se a pelo menos uma parte de dados na janela Wx [ px - Ax, px + Bx ] atende a condição predefinida Cx. P(n) depende dos dois fatores, isto é, da quantidade M de pontos px e da probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax px + Bx ] que corresponde ao ponto px atenda a condição predefinida Cx , e P(n) representa a probabilidade de que nenhum ponto divisório de corrente de dados seja encontrado, após n unidades mínimas para buscar um ponto divisório de corrente de dados em uma busca a
Petição 870160008725, de 11/03/2016, pág. 312/698
41/200 partir de uma a posição inicial/ponto divisório de corrente de dados anterior de uma corrente de dados. Um processo de calcular P(n) que depende dos dois fatores é na verdade uma sequência Fibonacci de n etapas, que é descrita abaixo em detalhe. Após P(n) ser obtida, 1-P(n) é uma função de distribuição de um ponto divisório de corrente de dados, e (1-P(n))-(1-P(n-1))=P(n-1)-P(n) é uma probabilidade de que um ponto divisório de corrente de dados seja encontrado em um enésimo ponto, isto é, uma função de densidade de um
12*1024 ponto divisório de corrente de dados. A integração nχ (P(n-1) -P(n)) n=4*1024 pode ser realizada de acordo com a função de densidade de um ponto divisório de corrente de dados, de modo a obter um comprimento esperado de um ponto divisório de corrente de dados, isto é, o tamanho da fatia comum, onde 4*1024 (bytes) representa um comprimento da fatia de dados mínima, e 12*1024 (bytes) representa um comprimento da fatia de dados máxima.
[0106] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 5, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx [ px - Ax, px+Bx ] (janela Wx de forma resumida) que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px Ax ’ px + Bx ] onde A1 = A2 = A3 = A4 = A5 = A6= A7 = A8 = A9 = A10 = A11=169, B1 = B2 = b3=B4=b,=B6=b,=b,= B,= B,0=B,,=0, e C,=Cz=C,=C,=C,=C6=C,=C,=C, =C10 =C11. Uma distância entre o ponto px e o ponto divisório potencial k é de dx bytes. Especificamente, uma distância entre um ponto px e o ponto divisório potencial k é de 0 byte, uma distância entre um ponto p2 e o ponto divisório potencial k 1 byte, uma distância entre um ponto p3 e o ponto divisório potencial k é de 2 bytes, uma distância entre um ponto p4e o ponto divisório potencial k é de 3 bytes, uma distância entre um ponto p5 e o ponto divisório potencial k é de 4 bytes, uma distância entre um ponto p6 e o ponto
Petição 870160008725, de 11/03/2016, pág. 313/698
42/200 divisório potencial k é de 5 bytes, uma distância entre um ponto p7 e o ponto divisório potencial k é de 6 bytes, uma distância entre um ponto p8 e o ponto divisório potencial k é de 7 bytes, uma distância entre um ponto p9 e o ponto divisório potencial k é de 8 bytes, uma distância entre um ponto p10 e o ponto divisório potencial k é de 9 bytes, uma distância entre um ponto p11 e o ponto divisório potencial k é de 10 bytes, e com relação ao ponto divisório potencial k, todos os pontos p2, p3, p4, p5, p6, p7, p8, p9, pw, e p„ estão em uma direção oposta a uma direção de buscar um ponto divisório de corrente de dados. ka é um ponto divisório de corrente de dados, e a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 5 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k,, e um ponto px é determinado para o ponto divisório potencial k,. Nessa modalidade, de acordo com uma regra predefinida no servidor para desduplicação 103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 5, 11 pontos são determinados para o ponto divisório potencial k,, e são pü, pi2, p.3, p.4, p.5, p.6, p.7, p.8, pt9, pao, e p.11 separadamente, e janelas que correspondem aos pontos p,1, pt 2, pt 3, pt 4, p,5, p,6, p,7, p,8, p,9, p^, e
p.11 são W1[ p,1-169, Pü\, W 2[ p,2-169, Pill W,3[ Pi 3-169, Pi 31, Wi 4[ p,4-169,
Pi4 L Wi5 [ p>5 -169, p,5 L W6 [ p,6 -169, p,6 L W7 [ #7 -169, #7 L Wi8 [ As -169, pl8 L Wi9 [ p,9 -169, p,91, W,1o[ p,1o-169, p.101, e W,11[ p,11-169, p.111 respectivamente. As supracitadas janelas são separadamente denominadas como W1, W-2, W,3, W-4, W-5, W-6, W-7, Wt8, Wt9, WtW, e
W-ii de forma resumida. Uma distância entre o ponto px e o ponto divisório potencial k, é de dx bytes. Especificamente, uma distância entre pn e k, é de 0 byte, uma distância entre p 2 e k é de 1 byte, uma distância entre p 3 e k é de 2 bytes, uma distância entre p 4 e k é de 3 bytes, uma distância entre p 5 e k é de 4
Petição 870160008725, de 11/03/2016, pág. 314/698
43/200 bytes, uma distância entre pi6 e ki é de 5 bytes, uma distância entre pi7 e ki é de 6 bytes, uma distância entre pi8 e kt é de 7 bytes, uma distância entre pi9 e kt é de 8 bytes, uma distância entre pi10 e kt é de 9 bytes, uma distância entre pt11 e kt é de 10 bytes, e com relação ao ponto divisório potencial kt, todos os
Pi 2’ Pi 3’ Pi 4’ Pi 5’ Pi6, Pi 7’ P*, Pi9, Pi10’ e Pi1 estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wn[ P,1-169, pü] atende uma condição predefinida , é determinado se pelo menos uma parte de dados em Wt2[ pi2-169, p.2] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em Wl3[ pi3-169, pt3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wi4[ pi4-169, p4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados na w,5[ p,5-169, p,5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados na Wi6[ pi6-169, pi6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados na W,7 [ p,7-169, pn] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em wiS[ pi8-169, pi8] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em w,9 [ Pi9 -169, pt9 ] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [ pi10-169, pi10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm[ Pm-169, Pm] atende uma condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela wn atende a condição predefinida C,, a pelo menos uma parte de dados na janela Wt2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wt4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wi5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wt6 atende a
Petição 870160008725, de 11/03/2016, pág. 315/698
44/200 condição predefinida C6, a pelo menos uma parte de dados na janela Wi7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela W8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wt9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela w10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wi11 atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, conforme mostrado na Figura 6, pelo menos uma parte de dados em Wi5[ Pi5-169, p.5] não atende a condição predefinida correspondente C5, N bytes são pulados a partir do ponto pi5 ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B5 || + maxx(II 4c II + II (k - pix) II). Em uma maneira de implantação mostrada na Figura 6, os N bytes que são pulados não são maiores que 179 bytes, e nessa modalidade, N=11, de modo a se obter um próximo ponto divisório potencial. Para diferenciação do ponto divisório potencial kt, o novo ponto divisório potencial é representado como k. no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 5, 11 pontos são determinados para o ponto divisório potencial kj , e são p. 1, p.2, pj3, p.4, p.5, p.6, p.7, p.g, p.9, pjW , e p separadamente, e janelas que correspondem ao pontos p. 1, p.pj3, p.4, p.5, p.6, p.7, p^ pjio> e p.11 são determinadas, e são .Pj1-169, Pj 1 ], W2 [ p. 2-169, p. 2] W 3[ p.,-3-169, p.3 ] W \ p. 4-169, p. 4] W. 5[ p.5-169, p.5 L W 6[ P. 6 169, .], Wp[ p.7-169, p.7], Wp[ p8-169, p.8], Wp[ p.,-169, Pj9], WjW[ -169, p ], e W.11[ p.11-169, p.11] respectivamente. Uma distância entre p.x e o ponto divisório potencial k. é de dx bytes. Especificamente, uma distância entre p.1 e k. é de 0 byte, uma distância entre p.2 e k. é de 1 byte, uma distância entre p.3 e k. é de 2 bytes, uma distância entre p.4 e k. é de 3
Petição 870160008725, de 11/03/2016, pág. 316/698
45/200 bytes, uma distância entre p.5 e k. é de 4 bytes, uma distância entre p.6 e k. é de 5 bytes, uma distância entre p.7 e k. é de 6 bytes, uma distância entre pj8 e k. é de 7 bytes, uma distância entre p e k. é de 8 bytes, uma distância entre pj10 e k. é de 9 bytes, uma distância entre p.11 e k. é de 10 bytes, e com relação ao ponto divisório potencial k., todos os p . 1, p.pfi, p.4, . pJ6, p.7, p pj9, pJ10, e p estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. Na maneira de implantação mostrada na Figura 6,quando a décima primeira janela WJ11[ pJ11-169, p.11] é determinada para o ponto divisório potencial k., para assegurar que uma faixa entre o ponto divisório potencial kt e o ponto divisório potencial k. esteja junto com as outras dentro de uma determinada faixa, nessa maneira de implantação, pode ser assegurado que um limite à esquerda da janela Wjn[p -169, p.11] coincida com um limite à direita pi5 de Wi5 [ pi5-169, p.5] ou caia dentro de uma faixa de W5[ p,5-169, p5] onde o ponto p.11 determinado para o ponto divisório potencial k. é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o ponto divisório potencial k. de acordo com a regra. Portanto, dentro desse limite, quando a pelo menos uma parte de dados em Wi5[ pi5-169, p5] não atende a condição predefinida C5, uma distância para pular a partir de pi5 ao longo da direção de buscar um ponto divisório de corrente de dados não é maior que II B5 II + maxx (|| Ax || + || (kt px) II), onde M=11, e 11*U não é maior que maxx(|| Ax || + || (kt - pIx) ||), e portanto, uma distância para pular a partir de p 5 ao longo da direção de buscar um ponto divisório de corrente de dados não é maior que 179. É determinado se pelo menos uma parte de dados em WJ1[ p.4-169, p.J atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em W.2[ p.2-169, p.2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W.3[p.3-169, p.3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W 4[ p. 4-
Petição 870160008725, de 11/03/2016, pág. 317/698
46/200
169, p}4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[pj5-169, p}5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ p} 6-169, p} 6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ p} 7-169, p} 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ p}9 169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[ pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WJ11[ p711-169, p711] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 atende a condição predefinida C1, a pelo menos uma parte de dados na janela W}2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W}4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na Janela W . atende a condição predefrnda C,, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a peto menos uma parte de dados na janela W711 atende a condição predefinida C11, o ponto divisório potencial corrente k} é um ponto divisório de corrente de dados, e os dados entre k} e ka formam 1 (uma) fatia de dados.
Petição 870160008725, de 11/03/2016, pág. 318/698
47/200
Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103, se o próximo ponto divisório potencial é ou não um ponto divisório. Quando é determinado que o ponto divisório potencial k} não é um ponto divisório de corrente de dados, 11 bytes são pulados de uma maneira igual àquela de kt para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e com o supracitado método, se o próximo ponto divisório potencial é ou não um ponto divisório. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0107] Na maneira de implantação mostrada na Figura 5, de acordo com a regra predefinida no servidor para desduplicação 103, começando a partir da determinação quanto a se a pelo menos uma parte de dados em Wn[ pi4-169, pn ] atende a condição predefinida C1, quando é determinado que a pelo menos uma parte de dados em W1[ pn-169, pti] atende a condição predefinida C1, é determinado que a pelo menos uma parte de dados em Wt2[ pt2-169, pt2] atende a condição predefinida C2, é determinado que a pelo menos uma parte de dados em W3[ pt3-169, pt3] atende a condição predefinida C 3, é determinado que a pelo menos uma parte de dados em Wi4 [ pi4-169, pi4] atende a condição predefinida C4, e é determinado que a pelo menos uma parte de dados em W-5[ p,5-169, p,5] não atende a condição predefinida C5, 10 bytes são pulados a partir do ponto pi5 ao longo da direção de buscar um ponto divisório de corrente de dados, e um novo ponto divisório potencial é obtido em uma posição de extremidade de um décimo byte, que é representado como kg no presente documento para diferenciação de outros pontos divisórios potenciais. De acordo com a regra
Petição 870160008725, de 11/03/2016, pág. 319/698
48/200 predefinida no servidor para desduplicação 103, 11 pontos pgx são determinados para o ponto divisório potencial kg, onde x indica números naturais consecutivos de 1 a 11 separadamente, e são pg1, pg2, pg3, pg4, pg5, Pg6, pg7, pg8, pg9, pgio, e pgU separadamente, e janelas que correspondem aos pontos pgi, p , pg3, pg4, pg5, pg6, pg7, pg8, pg9, pgW, e pgii são determinadas, e são Wgi[pgX-169, pgX], Wg2[pg2-169, pg2], Wg3[pg3-169, pj, Wg4Í pg4-169, pgA], Wg5[ pg5-169, p^], Wg6[ pg6-169, pg6], Wg7[ pg7-169, p^], Wg8[ pgS-169, pg8], Wg9[ pg9-169, pg9], WgW[ pgV>-W9, pgW], e WgU[ pg^-169, pg11] respectivamente. Uma distância entre pgx e o ponto divisório potencial kg é de dx bytes. Especificamente, uma distância entre pg1 e kg é de 0 byte, uma distância entre pg2 e kg é de 1 byte, uma distância entre pg3 e kg é de 2 bytes, uma distância entre pg4 e kg é de 3 bytes, uma distância entre pg5 e kg é de 4 bytes, uma distância entre pg6 e kg é de 5 bytes, uma distância entre pg7 e kg é de 6 bytes, uma distância entre pg8 e kg é de 7 bytes, uma distância entre pg9 e kg é de 8 bytes, uma distância entre pg10 e kg é de 9 bytes, uma distância entre pg11 e kg é de 10 bytes, e com relação ao ponto divisório potencial kg , todos os pg2 , pg3 , pg4 , pg5 , pg6 , pg7 , pg8 , pg9 , pg10 , e p g11 estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wg1[ pg1-169, pg1] atende a condição predefinida Cx, é determinado se pelo menos uma parte de dados em Wg2[pg2-169, pg2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wg3[pg3-169, pg3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wg 4[ pg 4169, pg 4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wg5[ pg5-169, pg5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wg6[pg6-169, pg6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wg 7 [ pg 7-169, pg7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wg8 [ pg8 -169, pg8 ] atende a condição
Petição 870160008725, de 11/03/2016, pág. 320/698
49/200 predefinida C8, é determinado se pelo menos uma parte de dados em Wg9[ pg9169, pg9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wg10 [ pg10-169, pg10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WgU[ pg„-169, pgU] atende a condição predefinida C11. Portanto, o ponto pg11 que corresponde ao ponto divisório potencial kg coincide com o ponto pi5 que corresponde ao ponto divisório potencial kt, a janela Wg11[ pg11-169, pg11] que corresponde ao ponto pg11 coincide com a janela Wi5[ pi5-169, pi5] que corresponde ao ponto pi5, e C5 =Cn; portanto, para o ponto divisório potencial ki, quando é determinado que a pelo menos uma parte de dados em Wi5[ p,5-169, Bi5] não atende a condição predefinida C5, o ponto divisório potencial kg obtido por pular 10 bytes a partir do ponto pi5 ao longo da direção de buscar um ponto divisório de corrente de dados ainda não atende uma condição de servir como um ponto divisório de corrente de dados. Portanto, se existe repetição de cálculo quando 10 bytes são pulados a partir do ponto pi5 ao longo da direção de buscar um ponto divisório de corrente de dados, então a repetição de cálculo pode ser reduzida e a eficiência é maior quando11 bytes são pulados a partir do ponto pi5 ao longo da direção de buscar um ponto divisório de corrente de dados. Portanto, uma velocidade de buscar um ponto divisório de corrente de dados é aumentada. Quando em uma especificação predefinida , a probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px + Bx ] que corresponde ao ponto px atenda a condição predefinida Cx é de 1/2, isto é, uma probabilidade de executar o pulo é de 1/2, no máximo 179 bytes podem ser pulados de cada vez.
[0108] Nessa maneira de implantação, uma regra predefinida é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx [ px - A, px+Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px- Ax, px+Bx], onde x indica números naturais consecutivos de 1 a 11 separadamente, onde uma probabilidade de que pelo
Petição 870160008725, de 11/03/2016, pág. 321/698
50/200 menos uma parte de dados na janela Wx [ px - Ax, px+Bx ], que corresponde ao ponto px atenda a condição predefinida é de 1/2, e P(n) pode ser calculada usando-se os dois fatores, isto é, a quantidade de pontos px e a probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px+Bx ], que corresponde ao ponto px atenda a condição predefinida. Além disso, 4 = A2 =
A3 = A4= A5 = A6= A7 = A8 = A9= A10 = An=169,
B1 = B2= B3 = B4= B5 = B6= B7 = B8 =
B 9= Bio= B11 =0, e
C =C = C =C = C = C = C = C = C = C = C H v 2 V3 V 4 V5 V6 V7 V9 ^10 H1 , onde uma distância entre px e o ponto divisório potencial k é de dx bytes.
Especificamente, uma distância entre p1 e o ponto divisório potencial k é de 0 byte, uma distância entre p2 e k é de 1 byte, uma distância entre p3 e k é de 2 bytes, uma distância entre p4 e k é de 3 bytes, uma distância entre p5 e k é de 4 bytes, uma distância entre p6 e k é de 5 bytes, uma distância entre p7 e k é de 6 bytes, uma distância entre p8 e k é de 7 bytes, uma distância entre p9 e k é de 8 bytes, uma distância entre p10 e k é de 9 bytes, uma distância entre p11 e k é de 10 bytes, e com relação ao ponto divisório potencial k, todos os p2, p3, p4 , p5, p, p7, p8, p9, pw, e p„ estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. Portanto, se o ponto divisório potencial k é ou não um ponto divisório de corrente de dados depende de que ocorra ou não que pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos atende a condição predefinida Cx. Após um comprimento mínimo de fatia de 4096 bytes ser pulado a partir de uma posição inicial/ponto divisório de corrente de dados anterior de uma corrente de dados, um quatro centésimo octogésimo sexto ponto é encontrado retrocedendo-se 10 bytes em uma direção oposta à direção de buscar um ponto divisório de corrente de dados, e não existe nenhum ponto divisório de corrente de dados no ponto; portanto, P(4086)=1, e P(4087)=1, ..., P(4095)=1, e assim por diante. Em um quatro centésimo nonagésimo sexto ponto, isto é, um ponto que é usado para obter a fatia mínima, com uma probabilidade de (1/2)Λ11, pelo menos uma parte de
Petição 870160008725, de 11/03/2016, pág. 322/698
51/200 dados em cada janela das janelas que correspondem aos 11 pontos atende a condição predefinida Cx. Logo, com a probabilidade de (1/2)Λ11, um ponto divisório de corrente de dados existe; com uma probabilidade de 1-(1/2)Λ11, não existe nenhum ponto divisório de corrente de dados; portanto P(11)=1(1/2)Λ11.
[0109] Em um enésimo ponto, pode haver 12 casos de obter P(n) por meio de recursividade.
P(n)
Não encontrado
1/2
Encontrado
P(n-l)
Não encontrado
1/2
Encontrado
P(n-2)
1/2
Não encontrado
Encontrado
Pelo menos uma parte de ' ' ' dados em cada janela das janelas correspondente a 11 pontos consecutivos atende uma condição predefinida [0110] Caso 1: com uma probabilidade de 1/2, pelo menos uma parte de dados em uma janela que corresponde ao enésimo ponto não atende a condição predefinida; nesse caso, com a probabilidade de P(n-1), não existem 11 pontos consecutivos entre (n-1) pontos antes do enésimo ponto, onde pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos separadamente atende uma
Petição 870160008725, de 11/03/2016, pág. 323/698
52/200 condição predefinida. Portanto, P(n) inclui 1/2*P(n-1). Um caso em que a pelo menos uma parte de dados na janela que corresponde ao enésimo ponto não atende a condição predefinida, e existem 11 pontos consecutivos entre os (n-1) pontos antes do enésimo ponto, onde pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos separadamente atende a condição predefinida, não é relacionado a P(n).
[0111] Caso 2: com uma probabilidade de 1/2, pelo menos uma parte de dados em uma janela que corresponde ao enésimo ponto atende a condição predefinida, e com a probabilidade de 1/2, pelo menos uma parte de dados em uma janela que corresponde a um enésimo menos um ponto não atende a condição predefinida; nesse caso, com uma probabilidade de P(n-2), não existem 11 pontos consecutivos entre (n-2) pontos antes do ponto (n-1), onde pelo menos uma parte de dados em cada janela de janelas que correspondem a 11 pontos consecutivos separadamente atende a condição predefinida. Portanto, P(n) inclui 1/2*1/2*P(n-2). Um caso em que a pelo menos uma parte de dados na janela que corresponde ao enésimo ponto atende a condição predefinida, a pelo menos uma parte de dados na janela que corresponde ao enésimo menos um ponto não atende a condição predefinida, e existem 11 pontos consecutivos entre os (n-2) pontos antes do enésimo menos um ponto, onde pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos separadamente atende a condição predefinida, não é relacionado a P(n).
[0112] De acordo com a descrição supracitada, caso 11: com uma probabilidade de (1/2)Λ10, pelo menos uma parte de dados na janelas corresponder do enésimo até o enésimo menos 9 pontos atende uma condição predefinida, e com uma probabilidade de 1/2, pelo menos uma parte de dados em uma janela corresponder a um enésimo menos 10 ponto não atende uma condição predefinida; nesse caso, com uma probabilidade de P(n-11), não existem 11 pontos consecutivos entre (n-11) pontos antes do ponto (n-10), onde
Petição 870160008725, de 11/03/2016, pág. 324/698
53/200 pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos separadamente atende uma condição predefinida. Portanto, P(n) inclui (1/2)A10*1/2*P(n-11). Um caso em que a pelo menos uma parte de dados nas janelas que corresponde do enésimo ao enésimo-9 pontos atende a condição predefinida, a pelo menos uma parte de dados na janela que corresponde ao enésimo menos 10 ponto não atende a condição predefinida, e existem 11 pontos consecutivos entre os (n-11) pontos antes do enésimo menos 10 ponto, onde pelo menos uma parte de dados em cada janela de janelas que correspondem aos 11 pontos consecutivos separadamente atende a condição predefinida, não é relacionado a P(n).
[0113] Caso 12: com uma probabilidade de (1/2)Λ11, pelo menos uma parte de dados em janelas que correspondem do enésimo ao enésimo menos 10 pontos atende uma condição predefinida, e esse caso não é relacionado a P(n).
[0114] Portanto, P(n)=1/2*P(n-1)+(1/2f2*P(n-2)+...+(1/2^11*P(n11). Outra regra predefinida é: para um ponto divisório potencial k, determinar 24 pontos px, uma janela Wx [ px - Ax, px+Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px - Ax, px+Bx ] onde x indica números naturais consecutivos de 1 a 24 separadamente, onde uma probabilidade de que pelo menos uma parte de dados na janela Wx [ px Ax, px+Bx ] que corresponde ao ponto px atenda a condição predefinida Cx é de 3/4, e P(n) pode ser calculada usando-se os dois fatores, isto é, a quantidade de pontos px e a probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px+Bx ] que corresponde ao ponto px atenda a condição predefinida. Além disso, A1= A2 = A3 = A4= A5 = A6 = A7 = A8 = A9= A10 = A11=169, B= b2= b3 = b4 = b5 = b6 = b2= b= b9 = b10 = Bn=0, e C1 = C2 = C3 = C4 = C5=C6=C7=C8=C9=...=C22 = C23=C24, onde uma distância entre px e o ponto divisório potencial k é de dx bytes. Especificamente, uma distância entre p1 e o ponto divisório potencial k é de 0 byte, uma distância entre p2 e k é de 1
Petição 870160008725, de 11/03/2016, pág. 325/698
54/200 byte, uma distância entre p3 e k é de 2 bytes, uma distância entre p4 e k é de 3 bytes, uma distância entre p5 e k é de 4 bytes, uma distância entre p6 e k é de 5 bytes, uma distância entre p7 e k é de 6 bytes, uma distância entre p8 e k é de 7 bytes, uma distância entre p9 e k é de 8 bytes, uma distância entre p22 e k é de 21 bytes, uma distância entre p23 e k é de 22 bytes, uma distância entre p24 e k é de 23 bytes, e com relação ao ponto divisório potencial k, todos os P2, P3, pA, P5, p6, P7, p8, P9, ..., P22, P23, e p24 estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. Portanto, se o ponto divisório potencial k é ou não um ponto divisório de corrente de dados depende de que ocorra que pelo menos uma parte de dados em cada janela de janelas que correspondem aos 24 pontos consecutivos atende a condição predefinida Cx, e o cálculo pode ser realizado usando-se as seguintes fórmulas:
P(4073)=1, P(4074)=1, ..., P(4095)=1, Ρ(4096)=1-(3/4)Λ24, e
P(n)=1/4*P(n-1)+1/4*(3/4)*P(n-2)+...+1/4*(3/4)A23*P(n-24).
[0115] Após o cálculo, P(5*1024)=0,78, P(11*1024)=0,17, e P(12*1024)=0,13. Isto é, se nenhum ponto divisório de corrente de dados é encontrado com uma probabilidade de 13% após se prosseguir com uma busca para um ponto a uma distância de 12 KB a partir de uma posição inicial/ponto divisório de corrente de dados anterior de uma corrente de dados, e é realizada uma divisão forçada. Uma função de densidade de um ponto divisório de corrente de dados é obtida usando-se essa probabilidade, e após a integração, é obtido que, em média, um ponto divisório de corrente de dados é encontrado após se prosseguir com uma busca para um ponto a uma distância de cerca de 7,6 KB a partir da posição inicial/ponto divisório de corrente de dados anterior da corrente de dados, isto é, um comprimento de fatia comum é cerca de 7,6 KB. Diferente daquela pelo menos uma parte de dados na janelas que corresponde a 11 pontos consecutivos atende uma condição predefinida com uma probabilidade de 1/2, um algoritmo CDC convencional pode alcançar um
Petição 870160008725, de 11/03/2016, pág. 326/698
55/200 efeito de um comprimento de fatia comum ser de 7,6 KB apenas quando uma janela atende uma condição com uma probabilidade de 1/2Λ12.
[0116] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 7, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx[px-Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx[px-Ax, px+Bx], onde x indica números naturais consecutivos de 1 a 11 separadamente, onde uma probabilidade de que pelo menos uma parte de dados na janela Wx[px-Ax, px +BX] que corresponde ao ponto px atenda a condição predefinida px é de
onde uma distância entre px e o ponto divisório potencial k é de dx bytes.
Especificamente, uma distância entre // e o ponto divisório potencial k é de 2 bytes, uma distância entre p2 e k é de 3 bytes, uma distância entre p3 e k é de 4 bytes, uma distância entre /?4 e k é de 5 bytes, uma distância entre p5 e k é de 6 bytes, uma distância entre p6 e k é de 7 bytes, uma distância entre ρΊ e k é de 8 bytes, uma distância entre p* e k é de 9 bytes, uma distância entre p9 e k é de 10 bytes, uma distância entre k e [fj é de 1 byte, uma distância entre pn e k é de 0 byte, e com relação ao ponto divisório potencial k, todos os ρλ, p2, p3, p4, p5, p6, ρΊ, pg, p9, e pw estão em uma direção oposta a uma direção de buscar um ponto divisório de corrente de dados. ka é um ponto divisório de corrente de dados, e a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 7 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial kt, e um ponto p^ é determinado para o ponto divisório potencial kt. Nessa
Petição 870160008725, de 11/03/2016, pág. 327/698
56/200 modalidade, de acordo com a regra predefinida no servidor para desduplicação
103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 7, de acordo com a regra predefinida, 11 pontos são determinados para o ponto divisório potencial k,, e são Pn
Pi2’ Pi 3’ Pi4, Pi 5’ Pi6 ’ Pi 7’
Pi8, Pi9, Pm, e Pin separadamente, e janelas que correspondem aos pontos pi1,
Pi2 ’ Pi 3’ Pi 4’ Pi5’ Pi6 ’ Pi7’ Pi8 ’
Pi9’ Pno” e Pm são Wn[ Pn -169, P,1 L 169, P,1 L W,2 í P,2-169, Pnl W,3[ P,3-
169, Pi3], Wt4[ P,4-169, P.4], Wi5[ Pi5-169, Pi5], Wt6[ P,6-169, Pi6], W, [ P,7-169,
Pi7]’ Wi8[ Pi8-169, PfsL Wi9[ P,9-169, Pi9 Wi10[ P,10-169, Pi10]’ e Wi11[ Pi11-169,
Pi11] respectivamente. Uma distância entre o ponto px e o ponto divisório potencial k, é de dx bytes. Especificamente, uma distância entre pn e k, é de 2 bytes, uma distância entre pi2 e k, é de 3 bytes, uma distância entre p,3 e k, é de 4 bytes, uma distância entre pi4 e k, é de 5 bytes, uma distância entre P,5 e k, é de 6 bytes, uma distância entre pi6 e k, é de 7 bytes, uma distância entre pi7 e k, é de 8 bytes, uma distância entre pi8 e k, é de 9 bytes, uma distância entre pi9 e k, é de 10 bytes, uma distância entre pi10 e k, é de 1 byte, uma distância entre ρΛ1 e k, é de 0 byte, e com relação ao ponto divisório potencial k,,, todos os pi1
2' 3 > 4 ’ 5 ’ 6 > 7 , 8 >
Pi1o estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wa [ pi1 -169, pi1 ] atende uma condição predefinida C1, é determinado se pelo menos uma parte de dados em w,2[ pi2-169, p,2] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em W,3[ Pi3169, p,3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wi4 [ pi4-169, pi4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados na WJ Pi5-169, Ρ,5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados na Wi6 [ pi6-169, pi6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados na W,7 [ p.7-169, Pi,] atende
Petição 870160008725, de 11/03/2016, pág. 328/698
57/200 uma condição predefinida C7, é determinado se pelo menos uma parte de dados em wiS[ piS-169, piS] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wi9 [ Pi9 -169, Pi9 ] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [ pi10-169, pi10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wii[ p,u-169, p,u] atende uma condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela wn atende a condição predefinida C1, a pelo menos uma parte de dados na janela w,2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wt4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wi5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wt6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wi7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wi8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela w,9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wi10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wi11 atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, conforme mostrado na Figura 8, que a pelo menos uma parte de dados em Wi3[ pt3-169, p.3] não atenda a condição predefinida C3 e que 11 bytes sejam pulados a partir do ponto p, 3 ao longo de uma direção de buscar um ponto divisório de corrente de dados é usado como um exemplo para descrição. Conforme mostrado na Figura 8, quando é determinado que W3 não atende uma condição predefinida, a partir de p3 que serve como um ponto inicial, N bytes são pulados ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes
Petição 870160008725, de 11/03/2016, pág. 329/698
58/200 não são maiores que H B3 ||+maxx(II Ax II + H (kl - plx) H). Na maneira de implantação mostrada na Figura 6, N bytes são pulados, e especificamente não são maiores que 179 bytes, e nessa modalidade, N=11. Um próximo ponto divisório potencial é obtido em uma posição de extremidade de um décimo primeiro byte. Para diferenciação do ponto divisório potencial kl, o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103, 11 pontos são determinados para o ponto divisório potencial k}, e são ρ]λ, pj2, pj3, pj4, pj5, pj6, pj7, pj8, pj9, pj10, e pj41 separadamente, e janelas que correspondem aos pontos p7i, pj 2, pj 3, pj 4, pj5, p} 6, p} 7, pjS, pj9, pjW, e p fl1 são determinadas, e são Wfl[pF-169, pj, Wj2[p}.2-169, p}.2], Wj3[p}.3-169, p}.3], Wj4[ pj4-169, pj, Wj5[ pj5-169, pj, W/6[ p^-169, p^], Wp[ pp-169, p.], Wj8 [ pj8-169, pj8]> Wj9[ pj 9-169, pj 9] Wj10[ pj10-169, pj10 L e Wj11[ pj11-169, p j11] respectivamente. Uma distância entre pjx e o ponto divisório potencial kj é de dx bytes. Especificamente, uma distância entre pj4 e kj é de 2 bytes, uma distância entre pj2 e k} é de 3 bytes, uma distância entre pj3 e kj é de 4 bytes, uma distância entre pj4 e k} é de 5 bytes, uma distância entre pj5 e kj é de 6 bytes, uma distância entre pj6 e kj é de 7 bytes, uma distância entre pj7 e kj é de 8 bytes, uma distância entre pj8 e kj é de 9 bytes, uma distância entre pj9 e k} é de 10 bytes, uma distância entre pj10 e kj é de 1 byte, uma distância entre pj41 e kj é de 0 byte, e com relação ao ponto divisório potencial kj , todos os pj1 , pj2 , pj3 , pj4 , pj5 , pj6 , pj7 , pj8 , pj9 , pjW e pestão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em j pj1-169, pj1] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj 2[ pj 2-169, pj 2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[ pj3-169, pj3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W 4[ pj 4 169, pj 4] atende a condição predefinida C4, é determinado se pelo menos uma
Petição 870160008725, de 11/03/2016, pág. 330/698
59/200 parte de dados em Wj5[pj5-169, pj5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ pj 6-169, pj 6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ Pj 7-169, Pj 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ pj9 169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em WJ10[pJ10-169, pJ10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WJ11[ p711-169, p711] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é ou não um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 kt atende a condição predefinida C, a pe^ menos uma parte de dados na janela W2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj 4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wj11 atende a condição predefinida C11, o ponto divisório potencial corrente kj é um ponto divisório de corrente de dados, e os dados entre kj e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira
Petição 870160008725, de 11/03/2016, pág. 331/698
60/200 igual àquela de ka para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando é determinado que o ponto divisório potencial não é um ponto divisório de corrente de dados, 11 bytes são pulados de uma maneira igual àquela de kt para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado. Certamente, a implantação de o método é restringida por um comprimento da fatia de dados máxima e um tamanho de um arquivo que forma a corrente de dados, que não é descrito novamente no presente documento.
[0117] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 9, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx [ px- Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px- Ax, px+Bx], onde A = A2 = A3 = A4= A5 = A6= A7 = A8 = A9= A10 = An =169, B = B 2= B3 = B 4= B5 = B 6= B 7 = B8 = B 9 = B10 = B11=0, e C1=C2 = C3 = C4=C5 = C6=C7= C8=C9=C10=C11,,. Uma distância entre px e o ponto divisório potencial k é de dx bytes. Especificamente, uma distância entre p} e o ponto divisório potencial k é de 3 bytes, uma distância entre p2 e k é de 2 bytes, uma distância entre p3 e k é de 1 byte, uma distância entre p4 e k é de 0 byte, uma distância entre p5 e k é de 1 bytes, uma distância entre p6 e k é de 2 bytes, uma distância entre p7 e k é de 3 bytes, uma distância entre p8 e k é de 4 bytes, uma distância entre p9 e k é
Petição 870160008725, de 11/03/2016, pág. 332/698
61/200 de 5 bytes, uma distância entre pw k é de 1 byte, uma distância entre e k é de 7 bytes, e todos os px, p2, p3, p4, p5, p6, p7, p8, p9, e p10 estão com relação ao ponto divisório potencial k, em uma direção oposta a uma direção de buscar um ponto divisório de corrente de dados, e todos os p1, p2, e p3 estão, com relação ao ponto divisório potencial k, na direção de buscar um ponto divisório de corrente de dados. ka é um ponto divisório de corrente de dados, e a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 9 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k., e um ponto px é determinado para o ponto divisório potencial k.. Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 9, 11 pontos são determinados para um ponto divisório potencial k., e são ΡΛ, p.2’ p.3’ p,4 ’ p.5’ p.6’ ΡίΊ, ptS, p,9, p,io, e p.11 separadamente, e janelas que correspondem aos pontos pü,
p.2’ p. 3’ p. 4’ p.5’ p.6’ p.7’ p.8’
p.9’ p.10’’ e p.11 são Wn[ p,1-169, p,1]’ 169, p,1]’ W \ p,2-169, p,2]’ W.3[ p.3- 169’ Pi 3 ]’ W. 4[ p.4-169’ W.5[ p. 5-169’ C 5 ]’ W. 6[ p.6-169’ Ρί61 W [ p.7-169’ p,7]’ W.8[ p.8-169’ p,8]’ W.9[ p.9 -169’ Ρί91 W,10Í p.10-169’ Λαοί’ e W.11[ p.11-169’ p.11] respectivamente. Uma distância entre o ponto px e o ponto divisório potencial k. é de d x bytes. Especificamente, uma distância entre pn e k. é de 3 bytes, uma distância entre pi2 e ki é de 2 bytes, uma distância entre pi3 e ki é de 1 byte, uma distância entre pi4 e ki é de 0 byte, uma distância entre pi5 e k. é de 1 byte, uma distância entre p.6 e k. é de 2 bytes, uma distância entre p.7 e k. é de 3 bytes, uma distância entre p.8 e k. é de 4 bytes, uma distância entre pi9 e ki é de 5 bytes, uma distância entre pi10 e ki é de 6 bytes, uma distância entre p.n e kt é de 7 bytes, todos os p^, pi6, ptl, p^ , p.9 , pao e p.11 estão, com relação ao ponto divisório potencial k., em uma direção oposta
Petição 870160008725, de 11/03/2016, pág. 333/698
62/200 à direção de buscar um ponto divisório de corrente de dados e todos os pn, p,2, p,3, estão, com relação ao ponto divisório potencial k,, na direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wn [ pi4 -169, pi4 ] atende uma condição predefinida C1, é determinado se pelo menos uma parte de dados em W2[ Pi2-169, P,2] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em Wi3[ p,3-169, p.3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em W,4[ pi4-169, pi4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados na Wi5[ p,5-169, p.5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados na W,6[ p,6-169, p,6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados na Wi7[ p,7-169, p.7] atende uma condição predefinida C7,é determinado se pelo menos uma parte de dados em W-8[ pl8-169, pl8] atende uma condição predefinida C8, é determinado se pelo menos uma partede dados em Wi9[ p,.9-169, p.9] atende uma condição predefinida C9,é determinado se pelo menos uma parte de dados em w,10 [ p,10-169, p,10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wi11[ p,11-169, p,11] atende uma condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C1, a pelo menos uma parte de dados na janela w,2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W 5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W 6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela W 7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wi8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wi9 atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 334/698
63/200
C9, a pelo menos uma parte de dados na janela W10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wt11 atende a condição predefinida C11, o ponto divisório potencial corrente ki é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, conforme mostrado na Figura 10, pelo menos uma parte de dados em Wi7[ pí7-169, pi7} não atende uma condição predefinida, N bytes são pulados a partir do ponto pi7 ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B4 ||+maxx(II Ax II + || (ki - pix) ||). Em uma maneira de implantação mostrada na Figura 10, N bytes que são pulados especificamente não são maiores que 179 bytes, e nessa modalidade, N=8, de modo a se obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial kt, o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 9, 11 pontos são determinados para o ponto divisório potencial k;, e são p}1, pj2, pj3, pj4, Pj5, p}6, p}7, pJg, p}9, pjW, e pjU separadamente, e janelas que correspondem aos pontos p7i, p}2, p]3, p}4, p}5, p}6, p}7, p}8, pj9, pjW , e pfll são determinadas, e são W;1[p^-169, p,.J, Wj2[p}2-169, p}2], Wj3[pj3-169, pj3l Wj4[ pj 4-169, pj 4] Wj5[ pj5-169, p \- Wj6[ p^ 6-169, p^ 6] Wj 7[ p^ 7-169, p^ 7] Wj8[pj8-169, pj8], Wj9[pj9-169, pj9], WjW[p^-169, p^], e WjU[pjU-169, pj11] respectivamente. Uma distância entre pjx e o ponto divisório potencial kj é de dx bytes. Especificamente, uma distância entre pj4 e kj é de 3 bytes, uma distância entre pj2 e kj é de 2 bytes, uma distância entre pj3 e kj é de 1 byte, uma distância entre pj4 e kj é de 0 byte, uma distância entre pj5 e kj é de 1 byte, uma distância entre pj6 e kj é de 2 bytes, uma distância entre pj7 e kj é de 3 bytes, uma distância entre pj8 e kj é de 4 bytes, uma distância entre pj9 e kj é de 5 bytes, uma distância entre pj10 e kj é de 6 bytes, uma
Petição 870160008725, de 11/03/2016, pág. 335/698
64/200 distância entre p]U e k} é de 7 bytes, todos os p}5, p}6, p}7, p^, pj9, p]W e p j11 estão com relação ao ponto divisório potencial kj, em uma direção oposta à direção de buscar um ponto divisório de corrente de dados, e todos os pj4, pj2, pj3, estão com relação ao ponto divisório potencial kj, na direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wj1[pj4-169, pj4] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj 2[ pj 2-169, pj 2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[pj3-169, pj3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wj4[ pj4-169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em
169, pj5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ pj 7-169, pj 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ pj9-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [ pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WjU[ pj41-169, pj41] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é ou não um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela W atende a condição predefinida , a pe^ menos uma parte de dados na janela W atende a condição predefinida C2 , a pe^ menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 336/698
65/200
C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C, a peo men°s uma parte de dados na Janete W atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela WjU atende a condição predefinida C11, o ponto divisório potencial corrente é um ponto divisório de corrente de dados, e os dados entre k} e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando é determinado que o ponto divisório potencial kj não é um ponto divisório de corrente de dados, 11 bytes são pulados de uma maneira igual àquela de kt para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0118] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 11, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx [ px- Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px- Ax, px+Bx], onde A = A2 = A3
Petição 870160008725, de 11/03/2016, pág. 337/698
66/200 = A. As = A6= Αί = Ag = A9= A10=169, A11 =182, B = B2 = B3 = B4= B5 = B6= B7= Bs = B9= B10 = B11=0, e C1 = C2 = C3=C4=C5=C6= C7=C8 = C9= C10á C11. Uma distância entre px e o ponto divisório potencial k é de dx bytes. Especificamente, uma distância entre p1 e o ponto divisório potencial k é de 0 byte, uma distância entre p2 e k é de 1 byte, uma distância entre p3 e k é de 2 bytes, uma distância entre p4 e k é de 3 bytes, uma distância entre p5 e k é de 45 bytes, uma distância entre p6 e k é de 5 bytes, uma distância entre p7 e k é de 6 bytes, uma distância entre p8 e k é de 7 bytes, uma distância entre p9 e k é de 8 bytes, uma distância entre p10 k é de 1 byte, uma distância entre pn e k é de 3 bytes, e todos os , p2, p3, pA, p5, ía, p7, p8, e p9 estão com relação ao ponto divisório potencial k, em uma direção oposta a uma direção de buscar um ponto divisório de corrente de dados, e tanto p10 quanto p11 estão, com relação ao ponto divisório potencial k, na direção de buscar um ponto divisório de corrente de dados. ka é um ponto divisório de corrente de dados, e a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 11 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k,, e um ponto pix é determinado para o ponto divisório potencial k,. Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 11, 11 pontos são determinados para o ponto divisório potencial k,, e são p,1 p,-2» Pi 3» p,4> Pi 5» p,6> Pi 7» p,8, p,9» p,10» e p,11 separadamente, e janelas que correspondem aos pontos pn, p,2» Pi 3» Pi 4» p,5» p,6» p,7» p,8» p,9» p,10»» e p,11 são W,1[ p,1-169» p,1]» 169, p,1]» W 2 I p,2'169» p,2 ]» W,3[ p.3- 169» Pi3 ]» Wi4[ p,4’169» p,4]» W-5Í p>5-169» p>5 ]» Wi6[ p,6-169» /A. ]» W,7 [ p,7-169» p,7]» Wsí p,8-169» p,8]» Wi 9[ p,9-169» /11' W,10[ p,10-169» p,10]» e W,11[ p,11-182» p,11] respectivamente. Uma distância entre o ponto px e o ponto divisório
Petição 870160008725, de 11/03/2016, pág. 338/698
67/200 potencial k. é de dx bytes. Especificamente, uma distância entre pn e k. é de 0 byte, uma distância entre p.2 e k. é de 1 byte, uma distância entre p.3 e k. é de 2 bytes, uma distância entre p.4 e k. é de 3 bytes, uma distância entre p.5 e k. é de 4 bytes, uma distância entre p.6 e k. é de 5 bytes, uma distância entre p.7 e k. é de 6 bytes, uma distância entre p.8 e k. é de 7 bytes, uma distância entre p.9 e k. é de 8 bytes, uma distância entre pi10 e k. é de 1 byte, uma distância entre pfll e kt é de 3 bytes, todos os pi2, p.3, p.4, p.5, p.6, p.7, pi8, e p.9 estão, com relação ao ponto divisório potencial k., em uma direção oposta à direção de buscar um ponto divisório de corrente de dados e tanto pi10 quanto pt11, estão, com relação ao ponto divisório potencial kt, na direção de buscar um ponto divisório de corrente de dados. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C1, a pelo menos uma parte de dados na janela Wt2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela W3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wt4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela W7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela W8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela W9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wi10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela W 11 atende a condição predefinida C11, o ponto divisório potencial corrente k. é um ponto divisório de corrente de dados. Quando é determinado que a pelo menos uma parte de dados na janela W 11 não atende a condição predefinida C11 , 1 byte é pulado a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial k , o novo ponto divisório potencial é
Petição 870160008725, de 11/03/2016, pág. 339/698
68/200 representado como kj no presente documento. Quando a pelo menos uma parte de dados em qualquer janela das 10 janelas Wa, Wt2, Wi3, Wt4, Wi5, Wi6, W7, Ws, W9, e Wi1o não atende a condição predefinida correspondente, por exemplo, Wi4[ p,.4-169, p.4] mostrada na Figura 12, N bytes são pulados a partir do ponto pi4 ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B4 || + maxx(II Ax I + II (k - pIx) II). Em uma maneira de implantação mostrada na Figura 12, os N bytes que são pulados são especificamente não maiores que 179, e nessa modalidade, especificamente, N=9, de modo a se obter um novo ponto divisório potencial kt, o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 11, 11 pontos são determinados para o ponto divisório potencial kj, e são pj1, pj2, Pj3, p}4, p75, p}6, pj7, p7s, p79, p7io, e p.11 separadamente, e janelas que correspondem aos pontos p7i, p}2, p73, p}4, p}5, p}6, p}7, p^, pj9, pjW , e pjU são determinadas, e são W;4[p^-169, pj, W}2[ P]2-169, P]2], Wj3[ pj3-169, pp ] Wj4[ pj 4-169, pj 4 1» Wj5[ pj5-169, pp ] Wj6[ pj 6-169, pj 6] Wj7[ pj 7-169, pj 7] Wj8[ pjs-169, pjs], Wj,[ pj,-169, pj9], pjW-169, pjW], e WjU[ ^-182, p^] respectivamente. Uma distância entre pjx e o ponto divisório potencial kj é de dx bytes. Especificamente, uma distância entre pj1 e kj é de 0 bytes, uma distância entre pj2 e kj é de 1 byte, uma distância entre pj3 e kj é de 2 bytes, uma distância entre pj4 e kj é de 3 bytes, uma distância entre pj5 e kj é de 4 bytes, uma distância entre pj6 e kj é de 5 bytes, uma distância entre pj7 e kj é de 6 bytes, uma distância entre pj8 e kj é de 7 bytes, uma distância entre pj9 e kj é de 8 bytes, uma distância entre pj10 e kj é de 1 byte, uma distância entre pj11 e kj é de 3 bytes todos os pj2, pj3, pj4, pj5, p ^ pj7, p^ , e pj9 estão, com relação ao ponto divisório potencial kj, em uma direção oposta à direção de buscar um ponto divisório de corrente de dados, e tanto pj10 quanto pj11 estão, com relação ao ponto divisório potencial kj, na direção de buscar
Petição 870160008725, de 11/03/2016, pág. 340/698
69/200 um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados na Wj1[py1-169, p}1] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados na Wj 2[ p} 2-169, p} 2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados na Wj3[ p}3-169, p ] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados na Wj4[ p} 4-169, p} 4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados na Wj5[ p}5-169, p I atende a condição predefinida C5, é determinado se pelo menos uma parte de dados na Wj6[p}6-169, p}6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados na Wj7[p}7-169, p}7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados na Wj8[ p78 169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados na Wj9[p}9-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados na WJ10 [ pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados na [ Wfl1 pj41-182, pj11) atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é ou não um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 atende a condição predefinida C1, a pelo menos uma parte de dados na janela Wj2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefinida C, a peto menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a
Petição 870160008725, de 11/03/2016, pág. 341/698
70/200 condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wj11 atende a condição predefinida C11, o ponto divisório potencial corrente é um ponto divisório de corrente de dados, e os dados entre e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando é determinado que o ponto divisório potencial k} não é um ponto divisório de corrente de dados, 11 bytes são pulados de uma maneira igual àquela de kt para se obter um próximo ponto divisório potencial, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0119] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 13, uma regra que é predefinida em um servidor para desduplicação 103 é: para um ponto divisório potencial k, determinar 11 pontos px, uma janela Wx [ px- Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px - Ax, px + Bx] onde x indica números naturais consecutivos de 1 a 11 separadamente, onde uma probabilidade de que pelo menos uma parte de dados na janela Wx[ px- Ax, px+Bx] que corresponde ao ponto px atenda uma condição predefinida é de 1/2, A = A2 = A3 = A4= A5 = A6= A7 = A8 = A9= A1O = A11=169, Bl = B 2 = B3 = B 4 = B5 = B 6= B 7 = B8 = B9 = B10 = B11=0, e C1=C2=C3=C4=C5=C6=C7= C8=C9= Cw=Cn„, onde uma
Petição 870160008725, de 11/03/2016, pág. 342/698
71/200 distância entre px e o ponto divisório potencial k é de dx bytes. Especificamente, uma distância entre p1 e o ponto divisório potencial k é de 0 byte, uma distância entre p2 e k é de 2 bytes, uma distância entre p3 e k é de 4 bytes, uma distância entre p4 e k é de 6 bytes, uma distância entre p5 e k é de 8 bytes, uma distância entre p6 e k é de 10 bytes, uma distância entre p7 e k é de 12 bytes, uma distância entre p8 e k é de 14 bytes, uma distância entre p9 e k é de 16 bytes, uma distância entre p10 e k é de 18 bytes, uma distância entre p11 e k é de 20 bytes, e com relação ao ponto divisório potencial k todos os P2, P3, p4, P5, pp, P7, p8, P9, Pw e p„ estão em uma direção oposta a uma direção de buscar um ponto divisório de corrente de dados. ka é um ponto divisório de corrente de dados, e a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 13 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k,, e um ponto pix é determinado para o ponto divisório potencial k,.
Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 13, de acordo com a regra predefinida, 11 pontos são determinados para o ponto divisório potencial k, , e são p,i, p,2, p,3, p,4, p,5, p,6, p,7, p,.8, p,9, P,10, e P,n separadamente, e janelas que correspondem aos pontos pn, p,2,
Pi3> Pi4 ,
Pi 5’ Pi6 ,
Pi7 ’ P,8 , P,9, Pi10» e P111 são W1[ P,1-169, P,1 L 169, PÍ1L
W2[ p,2169, Pi 2]
W3[ P,3-169, Pil\, W,4[ P,4-169, P,4]’ W,5[ P,5-169, P,5]’ W,6 [ P,6-169,
P,6l W,7 [ p,7-169, ΡίΊ], W,8[ P,8-169, P,8]’ W 9[ P,9-169, Pi9), W10[ P,10-169, pfl0], e Wi11[ p,11-169, pI11] respectivamente. Uma distância entre o ponto px e o ponto divisório potencial ki é de dix bytes. Especificamente, uma distância entre pi1 e ki é de 0 byte, uma distância entre pi2 e ki é de 2 bytes, uma distância entre p,3 e k, é de 4 bytes, uma distância entre p,4 e k, é de 6 bytes,
Petição 870160008725, de 11/03/2016, pág. 343/698
72/200 uma distância entre p.5 e k. é de 8 bytes, uma distância entre p.6 e k. é de 10 bytes, uma distância entre p.7 e k. é de 12 bytes, uma distância entre p8 e k. é de 14 bytes, uma distância entre p9 e k. é de 16 bytes, uma distância entre pi10 e k. é de 18 bytes, uma distância entre pi11 e k. é de 20 bytes, e com relação ao ponto divisório potencial k., todos os p.2, p.3, p.4, pi5, pi6, pi7, pi8, pl9, pi10, e pai estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em wn[ pü-169, pn] atende uma condição predefinida C1, é determinado se pelo menos uma parte de dados em W2[ p.2-169, p.2] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em Wi3[ p.3-169, p.3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em W,4[ p.4-169, p.4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados na Wi5[ p,5-169, p.5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados na W,6[ p.6-169, p,6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados na Wi7[ p,7-169, p.7] atende uma condição predefinida C7,é determinado se pelo menos uma parte de dados em WJ pl8-169, pi8] atende uma condição predefinida C8, é determinado se pelo menos uma partede dados em Wi9[ p,9-169, p.9] atende uma condição predefinida C9,é determinado se pelo menos uma parte de dados em WI10 [ p.10-169, pI10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wi41[ p.n -169, pfl1] atende uma condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C1, a pelo menos uma parte de dados na janela w.2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W5 atende a condição predefinida C5, a pelo menos uma
Petição 870160008725, de 11/03/2016, pág. 344/698
73/200 parte de dados na janela w{6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wt7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela wi8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wi9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela wi10 atende a condição predefinida Cio, e a pelo menos uma parte de dados na janela wi11 atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, conforme mostrado na Figura 14, a pelo menos uma parte de dados em W4 [ pt4-169, pt4 ] não atende a condição predefinida C4, um próximo ponto divisório potencial é selecionado. Para diferenciação do ponto divisório potencial ki , o próximo ponto divisório potencial é representado como k. no presente documento, onde k. está localizado à direita de kt, e uma distância entre k. e kt é de 1 byte. Conforme mostrado na Figura 14, de acordo com a regra predefinida no servidor para desduplicação 103, 11 pontos são determinados para o ponto divisório potencial k., e são p. 1, p .2, p p .4, . p.6, p.7, pjg, p.9, p.io, e p.11 separadamente, e janelas que correspondem ao pontos p. 1, p.2, p.3, p.4, p.5, p.6, p..7 , p..g , p.9, p.^, e p.n são determinadas, e são WF[p.i-169, p.i ], W.2[p2-169, p.J, W.3[p.3-169, p.J,
Wj4[p,-169, p.,], Wj5[p.,-169, p.5], W.6[p.ó-169, p.6], Wp[p.7-169, pj, W.
[ p.8-169, W.9[ p.9-169, W.10[ p.10-169, p.10 L e W. 11[ P .11 -169, P .11 ]
C8=C9=Cio=C11. Uma distância entre p e o ponto divisório potencial k.é de d x bytes. Especificamente, uma distância entre p.1 e k. é de 0 byte, uma distância entre p.2 e k. é de 2 bytes, uma distância entre p.3 e k. é de 4 bytes, uma distância entre p.4 e k. é de 6 bytes, uma distância entre pj5 e k. é de 8 bytes, uma distância entre pj6 e k. é de 10 bytes, uma distância entre
Petição 870160008725, de 11/03/2016, pág. 345/698
74/200 pj7 e kj é de 12 bytes, uma distância entre pj8 e kj é de 14 bytes, uma distância entre pj9 e kj é de 16 bytes, uma distância entre pj10 e kj é de 18 bytes, uma distância entre pj41 e kj é de 20 bytes, e com relação ao ponto divisório potencial kj, todos os pj2, pj3, pj4, p.5, pj6, pj7, />., e pj9 estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados na Wji[ pji-169, pfl] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados na Wj2[pj2-169, pj2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados na Wj3[pj3-169, pj3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados na Wj 4[ pj 4 169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados na Wj5[pj5-169, pj5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados na Wj6[pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados na Wj7[pj7-169, pj7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados na Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados na Wj9[ pj9-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados na Wj10[pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados na [ Wj11 pj11-182, pj41] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 atende a condição predefinida C1, a peto menos uma parte de dados na janela Wj2 atende a condição predefinida C, a peto menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C,, a pelo menos uma parte de dados na janela W atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela
Petição 870160008725, de 11/03/2016, pág. 346/698
75/200
Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela W).n atende a condição predefinida C11, o ponto divisório potencial corrente é um ponto divisório de corrente de dados, Quando é determinado que a pelo menos uma parte de dados em qualquer janela das janelas Wfl, Wj2, Wj3, Wj4, w/5, W/6, W^, W^, WJ9, W^, e W711 não atende a condição predefinida, por exemplo, conforme mostrado na Figura 15, quando a pelo menos uma parte de dados em Wj3[ p} 3-169, p} 3] não atende a condição predefinida C3, o ponto p4 está localizado à esquerda do ponto pj3 com relação à direção de buscar um ponto divisório de corrente de dados, e 21 bytes são pulados a partir do ponto p.4 ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter um próximo ponto divisório potencial. Para diferenciação dos pontos divisórios potenciais k. e k}, o próximo ponto divisório potencial é representado como kl. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 13, 11 pontos são determinados para o ponto divisório potencial , e são pn , pt2 , pt3 , pt4 , pt5 , pt6 , pt7 , pt8 , pi9 , pnQ , e pl11 separadamente, janelas que correspondem aos pontos p„, pl2, pl3, pl4, pi5’ pi 6’ pi 7’ p18> pi 9’ P ’ e «11 são Wl1[ ^1-169, «11, Wl 2[ Bl 2-169, Bl 2]’ Wl3[ pí3-169, pí3]’ Wl4[ pi 4-169, pi4]’ Wl5[ pi5-169, «sL Wl6[ pi6-169, «6 L Wl7 [ pi7-169, pi7]’ Wl8[ pi8-169, «sL Wl9[ ^9-169, «Λ Wl10 [ A10-169 e Wl11[ pi11-
169, pl11] respectivamente, onde uma distância entre plx e o ponto divisório potencial kl é de dx bytes. Especificamente, uma distância entre pl1 e o ponto divisório potencial kl é de 0 byte, uma distância entre pl2 e kl é de 2 bytes, uma distância entre pl3 e kl é de 4 bytes, uma distância entre pl4 e kl é de 6 bytes, uma distância entre pl5 e kl é de 8 bytes, uma distância entre pl6 e kl é de 10 bytes, uma distância entre pl7 e kl é de 12 bytes, uma distância entre pl8 e kl é de 14 bytes, uma distância entre pl9 e kl é de 16 bytes, uma
Petição 870160008725, de 11/03/2016, pág. 347/698
76/200 distância entre pn0 e kt é de 18 bytes, uma distância entre p;11 e kt é de 20 bytes, e com relação ao ponto divisório potencial kt, todos os pt2, pt3, pt4, Pt5, Pt6, PtΊ, Pt8, Pt9, Ptio, e pni estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em Wn [ p;1 -169, p;1 ] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wl2 [ pl 2-169, pl 2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wl3 [ pt3-169, pt3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wl4[ pl4-169, pl4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wl5[ p1 5169, pt 5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wl6[ pt6-169, pt6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em WlΊ [ ptΊ-169, ptΊ] atende a condição predefinida C11, é determinado se pelo menos uma parte de dados em Wl8 [ pl8 -169, pl8 ] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wl9[ pl9-169, pl9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wl10 [ pl10-169, pl10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wl11 [ pl11 -169, pl11 ] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wl1 atende a condição predefinida C1, a pelo menos uma parte de dados na janela Wl2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wl 3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wl4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wl 5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wl6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela WlΊ atende a condição predefinida C?, a pelo menos uma parte de dados na janela Wl8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wl9
Petição 870160008725, de 11/03/2016, pág. 348/698
77/200 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wl10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wl11 atende a condição predefinida C11, o ponto divisório potencial corrente kl é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das janelas Wl1, Wl2, Wl3, Wl4, Wl5, Wl6, Wl7, Wl8, Wl9, Wl10, e Wl11 não atende a condição predefinida, um próximo ponto divisório potencial é selecionado. Para diferenciação dos pontos divisórios potenciais kt, kj, e kl, o próximo ponto divisório potencial é representado como km, onde km está localizado à direita de kl, e uma distância entre km e kl é de 1 byte. De acordo com a regra predefinida no servidor para desduplicação 103 na modalidade mostrada na Figura 13, 11 pontos são determinados para o ponto divisório potencial km, e são pm1, pm2, pm3, pm4, Pm5 ’ Pm6 ’ Pm7’ Pm8’ Pm9 ’ Pm10 , e Pm11 e janelas que correspondem aos pontos Pm1, Pm2, Pm3 ’ Pm4’ Pm5’ Pm6’ Pm7 , Pm8’ Pm9 , Pm10 , e Pm11 são Wm1[ Pm1-169’ Pm1]’ Wm2 [ Pm2-169’ Pm2 ]’ Wm3[ Pm3-169’ Pm3]’ Wm4 [ Pm4-169’ Pm4]’ Wm5[ Pm5-169’ Pm5]’ Wm6[ Pm6-169’ Pm6 ]’ Wm7[ Pm7-169’ Pm7 ]’ Wm8[ Pm8-169’ Pm8]’ Wm9 [ Pm9-169’ Pm9 ]’ Wm10 [ Pm10-169’ Pm10 ]’ e Wm11 [ Pm11-
169, Pm11] respectivamente, onde uma distância entre e o ponto divisório potencial km é de dx bytes. Especificamente, uma distância entre pm1 e o ponto divisório potencial km é de 0 byte, uma distância entre Pm2 e km é de 2 bytes, uma distância entre pm3 e km é de 4 bytes, uma distância entre pm4 e km é de 6 bytes, uma distância entre pm5 e km é de 8 bytes, uma distância entre Pm6 e km é de 10 bytes, uma distância entre Pm7 e km é de 12 bytes, uma distância entre Pm8 e km é de 14 bytes, uma distância entre Pm9 e km é de 16 bytes, uma distância entre Pm10 e km é de 18 bytes, uma distância entre pm11 e km é de 20 bytes, e com relação ao ponto divisório potencial km, todos os Pm2’ Pm3 ’ Pm4’ Pm5’ Pm6’ Pm7’ Pm8’ Pm9’ Pm10 ’ e Pm11 estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados. É determinado se pelo menos uma parte de dados em W«1[ Pm1-169’ Pm1L atende
Petição 870160008725, de 11/03/2016, pág. 349/698
78/200 a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wm2[pm2-169, pm2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wm3[ pm3-169, pm3] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wm4 [pm4-169, pm4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wm5[ pm5-169, pm5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wm6 [ pm6-169, pm6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wm7[ pm7-169, pm7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wm8 [ pm8 -169, pm8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wm9[ pm9-169, pm9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wm10 [ pm10 -169, pm10 ] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm11 [ pm11-169, pm11] atende a condição predefinida Cn. Quando é determinado que a pelo menos uma parte de dados na janela Wm1 atende a condição predefinida Cx, a pelo menos uma parte de dados na janela Wm2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wm3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wm4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wm5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wm 6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wm7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wm8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wm9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wm10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wm11 atende a condição predefinida Cn, o ponto divisório potencial corrente km é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em
Petição 870160008725, de 11/03/2016, pág. 350/698
79/200 qualquer janela não atende a condição predefinida, o pulo é executado de acordo com a solução descrita acima, de modo a obter um próximo ponto divisório potencial, e é determinado se o próximo ponto divisório potencial é ou não um ponto divisório.
[0120] Uma modalidade da presente invenção fornece um método para determinar se pelo menos uma parte de dados em uma janela Wiz [ Pz - A , piz + Bz ] atende uma condição predefinida Cz. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz-Az, piz + Bz ] atende a condição predefinida Cz e a maneira de implantação mostrada na Figura 5 é usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, um ponto pn e uma janela Wt1[ pn-169, pi1} que corresponde ao ponto pn são determinados para um ponto divisório potencial ki, e é determinado se pelo menos uma parte de dados em WiI[ ρι4-169, ρΛ] atende uma condição predefinida C1. Conforme mostrado na Figura 16, Wii representa a janela [ pi4-169, ρΛ] e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wt1[ ρι4-169, pn ] atende a condição predefinida C1. Na Figura 16, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os 5 bytes de dados selecionados são usados repetidamente 51 vezes para se obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados por am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e, portanto, bits que correspondem aos 255 bytes podem ser representados como:
' a1,1 | a1,2 · | · a1,8 ' |
a2,1 | a2,2 · | · a2,8 |
( aF*H, 1 | aF *H ,2 · | · aF*H ,8 / |
, onde quando a =1, V ’ ~ m,n ’ am,n =1, e quando a =, V =-1, onde a ’ ~ m,n ’ am,n ’ m ,n representa qualquer um dentre am1, ..., e am8, uma matriz Va é obtida de acordo com uma relação de conversão entre amn e Vam n a partir dos bits que correspondem aos 255 bytes, e pode ser
Petição 870160008725, de 11/03/2016, pág. 351/698
80/200
v a1,1 | a1,2 | F a1,8 | |
V 21 | V | V | |
representada como: | a 2,1 | a2,2 | a 2,8 |
V V aF*H ,1 | V v aF*H ,2 | .. V v aF*H ,8 7 |
. Uma grande quantidade de números aleatórios é selecionada para formar uma matriz, e uma vez formada, a matriz formada pelos números aleatórios permanece inalterada. Por exemplo, 255*8 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição específica (a distribuição normal é usada como um
exemplo | no | presente | documento) para formar uma matriz R: |
' h1,1 | h1,2 | h Ί 1,8 | |
h21 | h | ||
2,1 | 2,2 | ... 2,8 • »5 | onde números aleatórios de uma emésima linha da |
h h \ríF*H ,1 lF*H ,2 | h flF *H ,8 7 |
matriz Va e de uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = VamA hm,1 + V . S , Sa2, e Sa255 são obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sa1, Sa2, ...e Sa255 é contada. Uma vez que a matriz R segue uma distribuição normal, Sam ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sa1, Sa2, ...,..., e
Sa255 seja maior que 0 é de 1/2, e portanto, K atende a distribuição binomial:
P(k = n) = C^)n (' ) n = CAt1)255 255 2
De acordo com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre Sa1, Sa2, ...,..., e Sa255 é um número par; uma probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em Wfí[ Pn-169, P,1}
Petição 870160008725, de 11/03/2016, pág. 352/698
81/200 atende a condição predefinida C1. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em wn [ pn -169, pn ] não atende a condição predefinida Cx. C} no presente documento significa que a quantidade
K, que é obtida de acordo com a maneira supracitada, de valores maior que 0 entre Sal, Sa2, e Sa255 é um número par. Na maneira de implantação mostrada na Figura 5, para wa [ Pn -169, Pn ], wt2 [ pl2-169, pi2], wt3 [ Pi3-169,
PiA PiA ^ÍAS’169- A5L ^6 í Pi6 -169> ΡίβΥ [/Vl69:
Ρ1Λ ^sÍAs-169’ Ρ1Λ Nl/V169, ΡΛ Wno [ Aio’169, AioL θ ^iiÍAn-169’ piU ], as janelas são de tamanho igual, isto é, todas as janelas têm um tamanho de 169 bytes, e as maneiras de se determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em wn [ pn -169, Pn ] atende a condição predefinida C3. Portanto, conforme mostrado na Figura 16, Ê&J representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela wi2 [pi2-169, pí2] atende uma condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para se obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por8 bits, que são indicados como bml,e bmg, representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e portanto, bits que correspondem
^1,2 | |
^2,1 | ^2,2 |
255,2 aos
255 bytes , onde quando podem ser representados como:
bm,„ =1, „ =1, e quando bmn =0, Vbm n =-
255,1
1, onde bmn representa qualquer um dentre Z>ml, ..., e bmg, e uma matriz vb é obtida de acordo com uma relação de conversão entre bmn e vbmn a partir dos bits que correspondem aos 255 bytes, e pode ser representada como:
Petição 870160008725, de 11/03/2016, pág. 353/698
82/200
' b1,1 | b1,2 | rb1,8 |
Vb2,t | Vb2,2 . | . Vb2,8 |
b Vb 255,1 | Vb 255,2 . | . Vb255,8 y |
. Uma maneira de determinar se pelo menos uma parte de dados em Wn [ pn -169, pt1 ] atende uma condição predefinida é igual a uma maneira de determinar se pelo menos uma parte de dados na janela W. 2 [ p.2-169, p.2] atende uma condição predefinida; portanto a matriz R é usada: ' hu h2,1 h1,2 h2,2 h
V '255,1 h
,l255,2 h
255,8 y , e números aleatórios de uma emésima linha da matriz da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como
Ç = V * h + V * h + + V * h bm v bm,1 m,1 F bm,2 m,2 v bm,8 m,8 '
Sb1, Sb2, ..., e Sb255 são obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sb1, Sb2, ..., e Sb255 é contada. Uma vez que a matriz R segue uma distribuição normal, Sbm ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sb1, Sb2, ..., e Sb255 seja maior que 0 é de
1/2, portanto, K atende
P(k = n) = C255(i)n (j = c Λ 255 2 2 255 2 . De acordo distribuição binomial: com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre
Sb1, Sb2, ..., e Sb255 é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em W2[ p,2-169, p,2] atende a condição predefinida C2. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em w.2[ p.2-169, p.2] não atende a
Petição 870160008725, de 11/03/2016, pág. 354/698
83/200 condição predefinida C2. C2 no presente documento significa que a quantidade K, que é obtida de acordo com a maneira supracitada, de valores maiores que 0 entre sbl, Sb2, e sb255 é um número par. Na maneira de implantação mostrada na Figura 3, a pelo menos uma parte de dados em [ pi2-169, A2] atende a condição predefinida C2.
[0121] Portanto, conforme mostrado na Figura 16, S representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela wi3 [ p3-169, pi3 \ atende uma condição predefinida C3, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas [ pn -169, pn ] e Wi2 [ pi2 -169, p2] atende uma condição predefinida é usado para determinar se pelo menos os dados em W/3[p3-169, pi3\ atendem uma condição predefinida C3. Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em W/3[p3-169, pi3\ atende a condição predefinida. Conforme mostrado na Figura 16, representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela Fa lP.4'169, p,4] atende uma condição predefinida C4, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas ^Ί[Α1-169, P1I], pti2[A2-169, a.2], e ^3[A3-169, A.3j atende uma condição predefinida é usado para determinar se a pelo menos uma parte de dados em wi4 [ pi4-169, pi4] atende a condição predefinida C4. Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em wi4 [ pi4-169, pi4] atende a condição predefinida C4. Conforme mostrado na Figura 16, E representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela ^[α5-169> a5]
Petição 870160008725, de 11/03/2016, pág. 355/698
84/200 atende uma condição predefinida C5, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas wn[ pn-169, pn], Wi2[ p^-169, pi2], wa[ pt3-169, pt3], e
W4 [ p.4-169, p.4] atende uma condição predefinida é usado para determinar se pelo menos uma parte de dados em W15[ p,.5-169, p.5] atende a condição predefinida C5 Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em W15[ p.5-169, p5] não atende a condição predefinida
C5.
[0122] Quando a pelo menos uma parte de dados em W.5[ p,5-169, p.5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto p. 5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um próximo ponto divisório potencial é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto p}1 e uma janela Wy1[ pj4-169, pj4] que corresponde ao ponto p}1 são determinados para o ponto divisório potencial k}. Uma maneira de determinar se pelo menos uma parte de dados na janela Wy1[ p;1-169, py1] atende a condição predefinida Cx é a mesma maneira de determinar se pelo menos uma parte de dados na janela wn [ pn -169, pn ] atende a condição predefinida Cx. Portanto, conforme mostrado na Figura 17, W representa a janela Wn[ p.1169, pi4 ] e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wy1[ py1-169, py1] atende a condição predefinida Cx. Na Figura 17, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os 5 bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados como am1',, ..., e am8', representando do primeiro bit ao oitavo bit de um
Petição 870160008725, de 11/03/2016, pág. 356/698
85/200 emésimo byte nos 255 bytes, e portanto, bits que correspondem aos 255 bytes
C a 1 u1,1 a 1 u 2,1 podem ser representados como:
=1 Vam,n '=1, e quando dentre V, ..., e am8 , a1,2 a2,2 a1,8 a2,8' , onde quando amn' a '
V4 255,1 amn ' =0, V n ' =-1, onde e uma matriz Va' é obtida de acordo com uma relação de conversão entre a m,n a ' u255,2 a
m,n a ' u255,8 J j representa qualquer um ' e Vamn' a partir dos bits que correspondem aos 255 bytes, e pode ser representada como:
C v ' v a1,1
V ’ v a2,1
V ’ a1,2
V ’ a2,2
V ’ v a1,8
V ’ v a2,8
V ’
V a255,1
V ' a255,2 maneira de determinar se pelo menos uma parte de dados na janela j Pji169, pj4] atende uma condição predefinida é igual a uma maneira de determinar
C h
1,1 h2,1 se pelo menos uma parte de dados na janela Wn[ pn-169, pn ] atende uma h i
1,8 h
'*2,8 ^1,2 h2,2 h
V z255,1 h
rl255,2
... h
255,8 J condição predefinida. Portanto, a matriz R é usada: v ’255,‘ ”255,2 ”255,8 J, e números aleatórios de uma emésima linha da matriz Va' e da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como S^ ’= V^’* hm4 + Vam2* hm2+...+ Vam; *hm8. Sa1', Sa2', ..., e Sa255' são obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sa1', Sa2', ..., e Sa 255' é contada. Uma vez que a matriz R segue uma distribuição normal, Sam' ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; a probabilidade de que cada valor entre Sa1', Sa2', ..., e Sa255' seja maior que 0 é de 1/2, e portanto, K atende a distribuição binomial:
P(k = n) = (!)”-“ = (2
De acordo com
Petição 870160008725, de 11/03/2016, pág. 357/698
86/200 um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre Sal', Sa2,e Sa255’ é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em WjAPj^-169, pjX\ atende a condição predefinida Q. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em 169, pjX\ não atende a condição predefinida Cx.
[0123] Uma maneira de determinar se pelo menos uma parte de dados em W12 [ />;2-169, pi2\ atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em ^2[/r2-169, p]2 \ atende a condição predefinida C2. Portanto, conforme mostrado na Figura 17, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj2[pj2-169, p.2] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados como bml', , θ bm8 , representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e portanto, bits que correspondem aos 255 bytes podem ser representados b ' ^1,2 b ' ^2,2 como:
( b ' ^1,1 h ' ^2,1 b ' ^255,2 , onde quando Z>m„'=1, Vbmn'=1, e quando b ' m,n h ’ \/255,l =o, VbJ=A, onde b, • 1 m,n b ' ^255,8 y representa qualquer um dentre bml', , θ bm 8 , e uma matriz Vb' é obtida de acordo com uma relação de conversão entre bt ' ’ Θ m,n bits que correspondem aos 255 bytes, e pode ser
VbJ a partir dos
Y«,2 · | ' | ||
representada como: | V y />2,1 | F>2,2 · | |
V £255,1 | V v b255,2 | v y />255,8 J |
. Maneiras de se pelo menos
Petição 870160008725, de 11/03/2016, pág. 358/698
87/200 uma parte de dados nas janelas r2[p2-169, p2\ e ^2[g2-169, g2] atende a condição predefinida são as mesmas, e, portanto, a matriz R é ainda usada: ^1,2 ^1,8
255,2
255,1
255 8 Λ Números aleatórios de uma emésima linha da matriz e da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especifícamente representado como Sbm' = Vbm^hmX+Vbm2'*hm2+...+ VbJ*hmi. Sbx', Sb2,...,e Sb255' são obtidos de acordo com o método, e uma quantidade K de valores atende uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sbx , Sb2 , e Sb255' é contada. Uma vez que a matriz R segue uma distribuição normal, Sbm' ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sbx , Sb2 , e Sb255' seja maior que 0 é de 1/2, e, portanto, K atende a distribuição binomial: P(k = ri) = C255 (-)” (-)255~” = C255 (-)255 22 2 . De acordo com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre Sbl', Sb2 , e Sb255' é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em ^2[A2-169’ PjP atende a condição predefinida C2. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em Wj2[pj2-169, p.2] não atende a condição predefinida C2. Similarmente, uma maneira de determinar se pelo menos uma parte de dados em -I69, pl3] atende a condição predefinida
C3 é a mesma maneira de determinar se pelo menos uma parte de dados em -I69, PjP atende a condição predefinida C3. Similarmente, é
Petição 870160008725, de 11/03/2016, pág. 359/698
88/200 determinado se pelo menos uma parte de dados em Wj 4[ pj 4-169, pj 4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[pj5-169, pj5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pj6-169, pj6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em WJ7[ pj 7169, pj7] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ pj 9-169, p]9] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[pj10-169, pj10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wjn[ pj11-169, pjn] atende uma condição predefinida Cn, que não são descritas novamente no presente documento.
[0124] Ainda usando a maneira de implantação mostrada na Figura 5 como um exemplo, um método para determinar se pelo menos uma parte de dados em uma janela Wiz [ piz- Az, piz + Bz ] atende uma condição predefinida Cz é fornecido. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz[ plz - A, piz + Bz ] atende a condição predefinida Cz. De acordo com uma regra predefinida em um servidor para desduplicação 103, um ponto pn e uma janela Wn[ pn-169, pn] que corresponde a pn são determinados para um ponto divisório potencial kt, e é determinado se pelo menos uma parte de dados em Wn[ pn-169, pn] atende uma condição predefinida C4. Conforme mostrado na Figura 16, Wn representa a janela Wn[ pn-169, pn] e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ pn -169, pn] atende a condição predefinida C4. Na Figura 16, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados . Em uma maneira de implantação, uma função hash é usada para calcular os 5 bytes selecionados, e valores obtidos por meio de cálculo usando a função
Petição 870160008725, de 11/03/2016, pág. 360/698
89/200 hash estão em distribuição fixa e uniforme. Se um valor obtido por meio de cálculo usando a função hash é um número par, é determinado que a pelo menos uma parte de dados em Wn [ pt1 -169, pt1 ] atende a condição predefinida Cr, isto é, C1 representa que um valor obtido por meio de cálculo usando a função hash e de acordo com a maneira supracitada é um número par. Portanto, uma probabilidade de se pelo menos uma parte de dados em Wn [ pt1 -169, pt1] atende uma condição predefinida é de 1/2. Na maneira de implantação mostrada na Figura 5, é determinado, usando-se uma função hash, se pelo menos uma parte de dados em Wt2[ pt2-169, pt2] atende uma condição predefinida C2, se pelo menos uma parte de dados em Wi3[ p,3-169, pi3] atende uma condição predefinida C3, se pelo menos uma parte de dados em Wi4[ pi4-169, pi4] atende uma condição predefinida C4, e se pelo menos uma parte de dados em Wt5[ pi5-169, pi5] atende uma condição predefinida C5. Para implantação específica, referência pode ser feita à descrição da maneira de determinar, usando-se uma função hash, se pelo menos uma parte de dados em Wn[ pi1-169, pi1] atende a condição predefinida C3 na maneira de implantação mostrada na Figura 5, que não é descrita novamente no presente documento.
[0125] Quando a pelo menos uma parte de dados em WiS[ p-5-169, pi5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto pi5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto pfl e uma janela Wy1[ py1-169, p}1] que corresponde ao ponto pfl são determinados para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wy1[ py1-169, p}1] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wy1[ pj4-169, pj4] atende a condição predefinida C3.
Petição 870160008725, de 11/03/2016, pág. 361/698
90/200
Portanto, conforme mostrado na Figura 17, representa a janela WplPp169, ρ]λ] e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em JFyl[pjX-169, pjX] atende a condição predefinida CP Na Figura 17, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados Os 5 bytes selecionados a partir da janela Wp [pjX-\69, ρ]λ] são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em {pn -169, Ρ]λ] atende a condição predefinida C3. Na Figura 17, uma maneira de determinar se pelo menos uma parte de dados em Wn [ pn-\69, pn] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em JFyl[pjX-169, pjX] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 17, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela ^2[Λ2-169’ Pj^ atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados fcssl. Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em JF72[/r2-169, pJ2] atende a condição predefinida C2. Na Figura 17, uma maneira de determinar se pelo menos uma parte de dados em W13[ /2í3-169, p13] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em ^3[^3·169’ Λτΐ atende a condição predefinida C3. Portanto, conforme mostrado na Figura 17, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj3[p]3 -169, p]3] atende a condição predefinida C3, e há 42 bytes entre dois bytes adjacentes selecionados E3. Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em 1ξ3[/Λ3-169, p]3] atende a condição predefinida C3. Na Figura 17, uma maneira de determinar se pelo menos uma parte de dados em Wl4 [ /?,4-169, pi4] atende a condição predefinida C4 e uma maneira de determinar se pelo menos uma parte de
Petição 870160008725, de 11/03/2016, pág. 362/698
91/200 dados na janela Wi4 [ #4-169, pi4\ atende a condição predefinida C4. Portanto, conforme mostrado na Figura 17, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela ^4[Λ4-169’ Pja} atende a condição predefinida C4, e há 42 bytes entre dois bytes adjacentes selecionados Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em Wj4[pj4-169, pj4] atende a condição predefinida C4. De acordo com o supracitado método, é determinado se pelo menos uma parte de dados em Wj5[pj5-169, p.5] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pJ6-169, pJ6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em WJ7[P]7l69, Pp] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em WjS[p]S-169, pJS] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em fF79[jr9-169, p]9] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em WJ10 [/x10-169, jr10] atende uma condição predefinida Cj0, e é determinado se pelo menos uma parte de dados em Wfll[pJU-1.69, pjYÍ\ atende uma condição predefinida Cn, que não são descritas novamente no presente documento.
[0126] Usando a maneira de implantação mostrada na Figura 5 como um exemplo, um método para determinar se pelo menos uma parte de dados em uma janela Wlz\plz-Az, plz+Bz] atende uma condição predefinida Cz é fornecido. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz\plz-Az, plz+Bz] atende a condição predefinida cz. De acordo com uma regra predefinida em um servidor para desduplicação 103, um ponto piX e uma janela ^JAi-169, piX ] que corresponde a pn são determinados para um ponto divisório potencial ξ., e é determinado se pelo menos uma parte de dados em ^[Λι-169, Pn] atende uma condição predefinida Cj. Conforme mostrado na Figura 16, Wn
Petição 870160008725, de 11/03/2016, pág. 363/698
92/200 representa a janela Wn[ pn-169, pn], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ pn -169, pn ] atende a condição predefinida C1. Na Figura 16, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como a 1, a2, a3, a4, e a5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer ar de a 1, a2, a3, a4, e a5 atende 0< ar <255. a 1 a4, e a5 formam uma matriz 1*5. 256*5 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição ( h ''0,1 h1,1 matriz R que é representada como:
h0,2
k.,2 binomial para formar uma h F 'l0,5 h1,5 [0127] h255,5 h255,5 h255,5 y
A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a 1 e uma coluna em que a 1 está localizado. Por exemplo, se a 1 =36, e a 1 está localizado em uma primeira coluna, um valor que corresponde a h36,1 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a2 e uma coluna em que a2 está localizado. Por exemplo, se a2 =48, e a2 está localizado em uma segunda coluna, um valor que corresponde a h48,2 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a3 e uma coluna em que a3 está localizado. Por exemplo, se a3 =26, e a3 está localizado em uma terceira coluna, um valor que corresponde a h26,3 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a4 e uma coluna em que a4 está localizado. Por exemplo, se a4 =26, e a4 está localizado em uma quarta coluna, um valor que corresponde a h26,4 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a5 e uma
Petição 870160008725, de 11/03/2016, pág. 364/698
93/200 coluna em que a5 está localizado. Por exemplo, se a5=88, e a5 está localizado em uma quinta coluna, um valor que corresponde a hss 5 é buscado. V = ^6,i+^48,2 + ^26,3+^6,4+^88.5, e uma νθζ Πυθ a matriz R segue uma distribuição binomial, também segue uma distribuição binomial. Quando é um número par, a pelo menos uma parte de dados em ^[^-169, pn] atende a condição predefinida Cpquandos; é um número ímpar, a pelo menos uma parte de dados em Wn [ pn-169, pn] não atende a condição predefinida Cj. Uma probabilidade de que seja um número par é de 1/2, e Cx representa que que é obtido por meio de cálculo de acordo com a maneira supracitada é um número par. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em Wn [ pn -169, pn ] atende a condição predefinida Cj. Conforme mostrado na Figura 16, representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados em uma janela Wi2 [ j>!2-169, pn] atende uma condição predefinida C2. Na Figura 16, bytes são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes & cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como bx, b2, b3, z>4, e b5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer br de bx, b2, b3, b3, e b5 atende 0<Z>/<255. &15 b2, b3, b3, e b5 formam uma matriz 1*5. Nessa maneira de implantação, maneiras de determinar se pelo menos uma parte de dados em Wn e JVi2 atende uma condição predefinida são as mesmas, e, portanto, a matriz R é ainda usada. A matriz R é submetida a uma busca por um valor correspondente de acordo com 0 valor de b, e uma coluna em que está localizado. Por exemplo, se b, =66, e está localizado em uma primeira coluna, um valor que corresponde a h661 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com 0 valor de b2 e uma coluna em que b2 está localizado. Por exemplo, se b2 =48, e b2 está localizado em uma segunda
Petição 870160008725, de 11/03/2016, pág. 365/698
94/200 coluna, um valor que corresponde a é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b3 e uma coluna em que b3 está localizado. Por exemplo, se b3 =99, e b3 está localizado em uma terceira coluna, um valor que corresponde a h99,3 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b4 e uma coluna em que b4 está localizado. Por exemplo, se b4 =26, e b4 está localizado em uma quarta coluna, um valor que corresponde a h26,4 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b5 e uma coluna em que b5 está localizado. Por exemplo, se b5 =90, e b5 está localizado em uma quinta coluna, um valor que corresponde a h90,5 é buscado. s2 = h661+ h48,2 + h99,3+ h26,4 + h90,5, e uma vez que a matriz R segue uma distribuição binomial, s 2 também segue uma distribuição binomial. Quando s 2 é um número par, a pelo menos uma parte de dados em W2[ p.2-169, p.2] atende a condição predefinida C2; quando s2 é um número ímpar, a pelo menos uma parte de dados em W.2 [ p.2-169, p.2] não atende a condição predefinida C2. Uma probabilidade de que s 2 seja um número par é de 1/2. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em W.2[ pi2-169, pi2] atende a condição predefinida C2. Usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wi3[ pi3-169, pi3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em W.4[ p.4-169, p.4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5[ pi5-169, pi5] atende uma condição predefinida C5,é determinado se pelo menos uma parte de dados em W.6 [ pi6-169, pi6] atende uma condição predefinida C6, é determinado se pelo menos uma partede dados em W.7[ p.7-169, p.7] atende uma condição predefinida C7,é determinado se pelo menos uma parte de dados em Wi8[ pig-169, pig] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em W.9[ p.9-169, p.9] atende uma condição predefinida C9, é
Petição 870160008725, de 11/03/2016, pág. 366/698
95/200 determinado se pelo menos uma parte de dados em Wi10 [ pi10-169, pi10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wi11[ pm-169, pm] atende uma condição predefinida C11. Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em Wi5[ pi5-169, pi5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto pi5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto pj4 e uma janela WJ1[ pji-169, pfl] que corresponde ao ponto pj4 são determinados para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wj1[p^-169, pj4] atende a condição predefinida C1 é a mesma maneira de determinar se pelo menos uma parte de dados na janela W[ pn-169, pn] atende a condição predefinida Cx. Portanto, conforme mostrado na Figura 17, representa a janela Wfl[p^-169, p]X], e é determinado se a pelo menos uma parte de dados em Wfl[p^-169, pjX), atende a condição predefinida Cx. Na Figura 17, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como aj, aj, aj , aj, e a5' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer ar' de aj, aj, a3 , aj, e a5' atende 0<as <255. aj, aj, aj, aj, e a5 formam uma matriz 1*5. A maneira de determinar se pelo menos uma parte de dados na janela Wj1[ pp169, pj4] atende a condição predefinida Cx é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn[ pn-169, pn] atende a condição predefinida Cx, e portanto, a matriz R é ainda usada, e é
Petição 870160008725, de 11/03/2016, pág. 367/698
96/200 representada como:
( h
0,1 h1,1 h0,2 ’ ” h0,5 h1,2 h1,5
[0128] A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de al e uma coluna em que al está localizado. Por exemplo, se a1' =16, e a1' está localizado em uma primeira coluna, um valor que corresponde a h16,1 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a2' e uma coluna em que a2' está localizado. Por exemplo, se a2' =98, e a2' está localizado em uma segunda coluna, um valor que corresponde a h98,2 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a3' e uma coluna em que a3' está localizado. Por exemplo, se a 3' =56, e a3' está localizado em uma terceira coluna, um valor que corresponde a h56,3 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a4' e uma coluna em que a4' está localizado. Por exemplo, se a4' =36, e a4' está localizado em uma quarta coluna, um valor que corresponde a h36,4 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a 5' e uma coluna em que a5' está localizado. Por exemplo, se a 5' =99, e a5' está localizado em uma quinta coluna, um valor que corresponde a h99,5 é buscado. s1' = h16,1+ h98,2+ h56,3+ h36,4+ h99,5, e uma vez que a matriz R segue uma distribuição binomial, s1' também segue uma distribuição binomial. Quando s1' é um número par, a pelo menos uma parte de dados em W fl[ Pj1-169, Pj1] atende a condição predefinida C1; quandos1' é um número ímpar, a pelo menos uma parte de dados em Wfl[ p]1-169, pj4] não atende a condição predefinida C1. Uma probabilidade de que s1' seja um número par é de 1/2.
[0129] Uma maneira de determinar se pelo menos uma parte de dados em Wt2[ pt2-169, pt2] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj 2[ p, 2-169,
Petição 870160008725, de 11/03/2016, pág. 368/698
97/200 pj2\ atende a condição predefinida C2. Portanto, conforme mostrado na Figura
17, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj2[pj2-\69, pj2\ atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados.
Os bytes cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como bx', b2', b3', b4', e b3' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer br' de bx', b2', b3', b4', e b5' atende Q<br' <255. bx', b2', b3', b4', e b5' formam uma matriz 1*5. A matriz R a mesma que aquela usada quando é determinado se a pelo menos uma parte de dados na janela Wi2 [ #2-169, pi2] atende a condição predefinida C2 é usada. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de 6/ e uma coluna em que b^ está localizado. Por exemplo, se 6/=210, e b^ está localizado em uma primeira coluna, um valor que corresponde a /z2101 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b2' e uma coluna em que b2’ está localizado. Por exemplo, se 6/=156, e b2’ está localizado em uma segunda coluna, um valor que corresponde a A1562 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b3' e uma coluna em que b3' está localizado. Por exemplo, se 6/=144, e b3' está localizado em uma terceira coluna, um valor que corresponde a /?l443 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b4’ e uma coluna em que b4’ está localizado. Por exemplo, se &4’=60, e b4’ está localizado em uma quarta coluna, um valor que corresponde a A604 é buscado.
A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b5' e uma coluna em que b5' está localizado. Por exemplo, se b5' =90, e b5' está localizado em uma quinta coluna, um valor que corresponde
Petição 870160008725, de 11/03/2016, pág. 369/698
98/200 a h90,5 é buscado. s2' = h210>1+ h156,2 + h144,3+ h60,4 + h90,5. A mesma condição determinante de s 2, quando s 2' é um número par, a pelo menos uma parte de dados em Wj2[p,2-169, p,2] atende a condição predefinida C2, e quando s2' é um número ímpar, a pelo menos uma parte de dados em W 2[ Pj 2-169, Pj 2] não atende a condição predefinida C2. Uma probabilidade de que s2' seja um número par é de 1/2.
[0130] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wl3[pi3-169, pl3] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em W,3[ Pj3 -169, pj3] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[pj4-169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ Pj5169, pj5 ] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj 7[ Pj 7-169, Pj 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em W,9[ p,9-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wjn[p^-169, pj41] atende a condição predefinida Cn, que não são descritas novamente no presente documento.
[0131] Usando a maneira de implantação mostrada na Figura 5 como um exemplo, um método para determinar se pelo menos uma parte de dados em uma janela Wiz [ piz- Az, piz + Bz ] atende uma condição predefinida Cz é fornecido. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz - Az, piz + Bz ] atende a condição predefinida C z. De acordo com uma regra predefinida em um servidor para desduplicação 103, um ponto pi4 e uma janela Wn[ P1-169,
Petição 870160008725, de 11/03/2016, pág. 370/698
99/200 pn] que corresponde a pn são determinados para um ponto divisório potencial kt, e é determinado se pelo menos uma parte de dados em Wn[ pn-169, pn] atende uma condição predefinida C1. Conforme mostrado na Figura 16, Wn representa a janela W1[ Pii-169, pj, e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ pt1-169, pn] atende a condição predefinida C1. Na Figura 16, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como a1, a2, a3, a4, e a5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer as de a1, a2, a3, a4, e a5 as atende 0<as ^255. a1, a2, a3, a4, e a5 formam uma matriz 1*5. 256*5 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição binomial para formar uma matriz R que é representada como:
\1 h0,2 h1,2 ^0,5 h1,5
256*5 números h255,5 h
255,5 h
,l255,5 7 aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição binomial para formar uma matriz G que é representada como:
g0,1 g0,2 ’’’ g0,5 g1,1 g1,2 ’’ ’ g1,5 (g255,5 g255,5 g255,5 / [0132] De acordo com o valor de a1 e uma coluna em que a1 está localizado, por exemplo, a1 =36, e a1 está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h361, e é efetuada uma busca na matriz G por um valor que corresponde a g361. De acordo com o valor de a2 e uma coluna em que a2 está localizado, por exemplo, a2 =48, e a2 está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h48 2, e é efetuada uma
Petição 870160008725, de 11/03/2016, pág. 371/698
100/200 busca na matriz G por um valor que corresponde a g48,2. De acordo com o valor de a3 e uma coluna em que a3 está localizado, por exemplo, a3 =26, e a3 está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h26,3, e é efetuada uma busca na matriz G por um valor que corresponde a g26,3. De acordo com o valor de a4 e uma coluna em que a4 está localizado, por exemplo, a4 =26, e a4 está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h26,4, e é efetuada uma busca na matriz G por um valor que corresponde a g26,4. De acordo com o valor de a5 e uma coluna em que a5 está localizado, por exemplo, a5 =88, e a5 está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h88 5, e é efetuada uma busca na matriz G por um valor que corresponde a g88,5. S1h = h361+ h482 + h26 3+ h264+ h885, e uma vez que a matriz R segue uma distribuição binomial, S1h também segue uma distribuição binomial. S1g=g36 1 + g48,2+g26,3+ g26, 4+gs8,5, e uma vez que a matriz G segue uma distribuição binomial, S1g também segue uma distribuição binomial. Quando um de S1h e S1g é um número par, a pelo menos uma parte de dados em Wn[ pn-\69, pn} atende a condição predefinida C1; quando tanto S1h quanto S1g são números ímpares, a pelo menos uma parte de dados em Wn [ pi1-169, pn] não atende a condição predefinida C1, e C1 indica que um de S1h e S1g obtidos de acordo com o supracitado método é um número par. Uma vez que tanto S1h quanto S1g seguem uma distribuição binomial, uma probabilidade de que S1h seja um número par é de 1/2, uma probabilidade de que S1g seja um número par é de 1/2, e uma probabilidade de que um de S1h e S1g seja um número par é de 1
1/4=3/4. Portanto, uma probabilidade de que a pelo menos uma parte de dados em Wü[ pi1-169, pi1] atenda a condição predefinida C1 é de 3/4. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em Wn [pi1-169, pn] atende a condição predefinida C1. Na maneira de implantação mostrada na Figura 5, para Wn[ pn-\69, pn] W2[pt2-169, pt2], Wfi pB-169,
Petição 870160008725, de 11/03/2016, pág. 372/698
101/200
Wi4[Pi4-169, pi4], ^5[A5-169, pi5], JVi6[ pi6-169, pi6], ^7[Λ.7-169,
Pn L as janelas são de tamanho igual, isto é, todas as janelas têm um tamanho de 169 bytes, e entretanto maneiras de determinar se pelo menos uma parte de dados em uma janela atende a condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em ^[/^-169, pn\ atende a condição predefinida Cx. Portanto, conforme mostrado na Figura 16, representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados na janela Wi2 [ pi2-169, pi2] atende uma condição predefinida C2. Na Figura 16, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170,
128, 86, 44 e 2 são convertidos em valores decimais que são representados como bx, b2, b3, b4, e b5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte
serve como um valor, e qualquer bs de bx, b2, b3, b4,e b5 atende 0</ç<255. bx, b2, b3, b4,e b5 formam uma matriz 1*5. Nessa maneira de implantação, as maneiras de determinar se pelo menos uma parte de dados em cada janela atende uma condição predefinida são as mesmas, e, portanto, as mesmas matrizes R e G são ainda usadas. De acordo com o valor de bx e uma coluna em que bx está localizado, por exemplo, ^=66, e bx está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h661, e é efetuada uma busca na matriz G por um valor que corresponde a g661. De acordo com o valor de b2 e uma coluna em que b2 está localizado, por exemplo, 62=48, e b2 está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a /z48 2, e é efetuada uma busca na matriz G por um valor que corresponde a g48 2. De acordo com o valor de b3 e uma coluna em que b3 está localizado, por exemplo, b3 =99, e b3 está localizado em uma terceira coluna, é
Petição 870160008725, de 11/03/2016, pág. 373/698
102/200 efetuada uma busca na matriz R por um valor que corresponde a h93, e é efetuada uma busca na matriz G por um valor que corresponde a g99 3. De acordo com o valor de b4 e uma coluna em que b4 está localizado, por exemplo, b4 =26, e b4 está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h>64, e é efetuada uma busca na matriz G por um valor que corresponde a g264. De acordo com o valor de b5 e uma coluna em que b5 está localizado, por exemplo, b5 =90, e b5 está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h90,5, e é efetuada uma busca na matriz G por um valor que corresponde a g90,5. S2h = h66>1+ h48,2 + h99,3 + h26,4 + h90,5, e uma vez que a matriz R segue uma distribuição binomial, S2h também segue uma distribuição binomial. S2g = g66>1+g48,2 +g99,3+g26,4+g90>5, e uma vez que a matriz G segue uma distribuição binomial, S2g também segue uma distribuição binomial. Quando um de S2h e S2g é um número par, a pelo menos uma parte de dados em W,2 [ p,2-169, p,2] atende a condição predefinida C2;quando tanto S2 h quanto S2g são números ímpares, a pelo menos uma parte de dados em W,2[ p,2-169, p,2] não atende a condição predefinida C2. Uma probabilidade de que um de S2h e S2g seja um número par é de 3/4. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em W,2 [ p,2-169, p,2] atende a condição predefinida C2. Usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em W,3[p,3-169, p,3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wt4[ p,4-169, p,4] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em W,5[ p,5-169, p,5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados em W,6[ p,6-169, p,6] atende uma condição predefinida C6,é determinado se pelo menos uma parte de dados em W,7[ p,7-169, p,7] atende uma condição predefinida C7, é determinado se pelo menos uma partede dados em W,8[ p,8-169, p,8] atende uma condição predefinida C8,é
Petição 870160008725, de 11/03/2016, pág. 374/698
103/200 determinado se pelo menos uma parte de dados em Wt9 [ pi9-169, pi9] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [ pi10-169, pi10] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm [ pi11-169, pm] atende uma condição predefinida Cn. Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em Wi5[ pi5-169, pi5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto pi5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto pjX e uma janela WjX[p^-169, pjX] que corresponde ao ponto p]X são determinados para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wj1[ pj1-169, pj4] atende a condição predefinida C4 é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn[ pi1-169, pn] atende a condição predefinida C4. Portanto, conforme mostrado na Figura 17, representa a janela Wj1[pj1-169, p]4], e é determinado se a pelo menos uma parte de dados em Wj1[ pj1-169, pfl], atende a condição predefinida C4. Na Figura 17, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como a/, a2' , a3 , a4', e a5' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer as' de a/, a2', a3 , a4', e a5' atende 0<as'<255. a/, a2', a3 , a4', e a5' formam uma matriz 1*5. As matrizes R e G as mesmas que aquelas usadas quando é determinado se a pelo menos uma parte de dados na janela a/, a2 , a3 , a4', e a5' atende a condição predefinida C4 são usadas, e são
Petição 870160008725, de 11/03/2016, pág. 375/698
104/200
Ã1 h0, 2 | ·· h» Λ | ' go,1 | g0,2 | • g),5 | ||
representadas como: | h1,1 hl,2 | h1,5 | e | g1,1 | g1,2 | • g1,5 |
^h255,5 h255,5 | h255,5 y | < g255,5 | g255,5 | g255,5 / |
respectivamente.
[0133] De acordo com o valor de αλ' e uma coluna em que αλ' está localizado, por exemplo, αλ' =16, e αλ' está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h161, e é efetuada uma busca na matriz G por um valor que corresponde a g161. De acordo com o valor de a2' e uma coluna em que a2' está localizado, por exemplo, a2' =98, e a2' está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h98 2, e é efetuada uma busca na matriz G por um valor que corresponde a g98 2. De acordo com o valor de a3' e uma coluna em que a 3' está localizado, por exemplo, a3' =56, e a3' está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h56 3, e é efetuada uma busca na matriz G por um valor que corresponde a g56 3. De acordo com o valor de a4' e uma coluna em que a4' está localizado, por exemplo, a4' =36, e a4' está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h36 4, e é efetuada uma busca na matriz G por um valor que corresponde a g36 4. De acordo com o valor de a5' e uma coluna em que a5' está localizado, por exemplo, a5' =99, e a5' está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h99 5 , e é efetuada uma busca na matriz G por um valor que corresponde a g99 5. S1h' = h16 1+ h98 2 + h56 3 + h36 4 + h99 5 , e uma vez que a matriz R segue uma distribuição binomial, S1h' também segue uma distribuição binomial. S1g ' = g16, 1 + g98 2 + g56 3+g36 4 +g99 5 , e uma vez que a matriz G segue uma distribuição binomial, S1g' também segue uma distribuição binomial. Quando um de S1h' e S1g' é um número par, a pelo menos uma parte de dados em j PjT169, Pj11 atende a condição predefinida C1; quando tanto S1h' quanto S1g' são números
Petição 870160008725, de 11/03/2016, pág. 376/698
105/200 ímpares, a pelo menos uma parte de dados em Ψ71[ρ}1-169, p.x] não atende a condição predefinida Cx. A probabilidade de que um de Slh' e Slg' seja um número par é de 3/4.
[0134] Uma maneira de determinar se pelo menos uma parte de dados em Wi2 [ #2-169, pi2] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em ^2^469, p]2\ atende a condição predefinida C2. Portanto, conforme mostrado na Figura 17, Ei representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela JF72[t?j2-169, pJ2] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Na
Figura 17, bytes selecionados são representados como números na sequência
170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como 6/, Z>2', b3 , b4', e b3 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada
serve como um valor, e qualquer bs' de bx
b4',e b5' atende byte
b4, e b5' formam uma matriz 1*5. As matrizes R e G as mesmas que aquelas usadas quando é determinado se a pelo menos uma parte de dados na janela Wi2[ pi2-\69, pi2\ atende a condição predefinida C2 são usadas. De acordo com o valor de 6/ e uma coluna em que bx está localizado, por exemplo, />/=210, e />/ está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a /z2101, e é efetuada uma busca na matriz G por um valor que corresponde a g2101. De acordo com o valor de b2 e uma coluna em que b2 está localizado, por exemplo, Z>2'=156, e b2 está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a /z1562, e é efetuada uma busca na matriz G por um valor que corresponde a g156 2. De acordo com o valor de b3 e uma coluna em que b3' está localizado, por exemplo, b3 =144, e b3 está localizado em uma terceira coluna, é efetuada uma busca na matriz
Petição 870160008725, de 11/03/2016, pág. 377/698
106/200
R por um valor que corresponde a h144,3, e é efetuada uma busca na matriz G por um valor que corresponde a g144,3. De acordo com o valor de b4' e uma coluna em que b4' está localizado, por exemplo, b4' =60, e b4' está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h60,4, e é efetuada uma busca na matriz G por um valor que corresponde a g60,4. De acordo com o valor de g60,4 e uma coluna em que g60,4 está localizado, por exemplo, g60,4 =90, e g60,4 está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h90,5, e é efetuada uma busca na matriz G por um valor que corresponde a
S2g g210,1 + g156,2 + g144,3 + g60,4 + g90,5 ·
Quando um de S2h' e S2g' é um número par, a pelo menos uma parte de dados em Wj2[ pj2-169, pj2] atende a condição predefinida C2; quando tanto S2h' quanto S2g' são números ímpares, a pelo menos uma parte de dados em Wj2 [pj2-169, pj2] não atende a condição predefinida C2. Uma probabilidade de que um de S2h' e S2g' seja um número par é de 3/4.
[0135] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wt3[ pi3-169, pi3] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj3[ Pj3 -169, pj3] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[pj4-169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ pj5169, pj5 ] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ pj 7-169, pj 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ p29-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo
Petição 870160008725, de 11/03/2016, pág. 378/698
107/200 menos uma parte de dados em Wy11[p}11-169, pj11\ atende a condição predefinida C11, que não são descritas novamente no presente documento.
[0136] Usando a maneira de implantação mostrada na Figura 5 como um exemplo, um método para determinar se pelo menos uma parte de dados em uma janela Wz [ plz- Az, piz + Bz \ atende uma condição predefinida Cz é fornecido. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - Az, plz + Bz \ atende a condição predefinida C z. De acordo com a regra predefinida em um servidor para desduplicação 103, um ponto pn e uma janela Wn[ pn-169, pn\ que corresponde a pl1 são determinados para um ponto divisório potencial kl, e é determinado se pelo menos uma parte de dados em W1[ p,1-169, pn\ atende a condição predefinida Cz. Conforme mostrado na Figura 16, Wn representa a janela W1[ pn-169, pn\, e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ pl1-169, pn \ atende a condição predefinida C z. Na Figura 16, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são considerados como 40 bits sequenciais, que são representados como a1, a2, a3, e a40 separadamente. Para qualquer at de a2, a3, a4,..., e a40, quando at = 0, Vat = 1, e quando at =1, Vat=1. De acordo com uma correspondência entre at e Vat, Va1, Va2, Va3, Va4,..., e a40 são gerados. 40 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição normal, e são representados como: h15 h2, h3, h4,..., e h40 separadamente. Sa = V/h1+ Va2* h2 + Va3*h3 + Va4* h4+...+ Va40* h. . Uma vez que Z, h3, h4,..., e h40 seguem uma distribuição normal, Sa também segue uma distribuição normal. Quando Sa é um número positivo, a pelo menos uma parte de dados em Wn [ pn-169, pn\ atende a condição predefinida C1; quandoSa é um número negativo ou 0, a pelo menos uma parte de dados em Sa não atende
Petição 870160008725, de 11/03/2016, pág. 379/698
108/200 a condição predefinida Cj. Uma probabilidade de que Sa seja um número positivo é de 1/2. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em Saatende a condição predefinida Cx. Conforme mostrado na Figura 16, representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados em uma janela pi2] atende a condição predefinida C2. Na Figura 16, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são considerados como 40 bits sequenciais, que são representados como bx, b2, b3, b4,..., e b40 separadamente. Para qualquer bt de bx, b2, b3, b4,..., e Z>40, quando bt=0, Vbt=A, e quando ξ=1, Vbt=V Vbl, Vb2, Vb3, Vb4,..., e KM0 são gerados de acordo com uma correspondência entre bt e Vbt. Uma maneira de determinar se pelo menos uma parte de dados na janela ^[ρ,-169, pj atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados na janela JPl2[ pl2-169, pi2] atende a condição predefinida C2, e portanto, os mesmos números aleatórios são usados: hx, h2, h3, h4,..., e h40. Sb = Vbl*h1+vb2*h2+vb3*h3 + Vb4*h4+...+ vb40*h40.. Uma vez que hx, h2, h3, h4,..., e h40. seguem uma distribuição normal, Sb também segue uma distribuição normal. Quando Sb é um número positivo, a pelo menos uma parte de dados em JPl2[ pl2-169, pi2] atende a condição predefinida C2; quando Sb é um número negativo ou 0, a pelo menos uma parte de dados em Wj2 [ pi2-\69, pj2] não atende a condição predefinida C2. Uma probabilidade de que Sb seja um número positivo é de 1/2. Na modalidade mostrada na Figura 5, a pelo menos uma parte de dados em W12[p12-169, p12] atende a condição predefinida C2. Usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wi3[ pi3-\69, pi3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wi4[pi4-169, pi4] atende uma condição predefinida C4, é
Petição 870160008725, de 11/03/2016, pág. 380/698
109/200 determinado se pelo menos uma parte de dados em Wi5[ p15-169, pi5] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados em Wt6[ pt6-169, pt6] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em Wt7[ pi7-169, pi7] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wi8[ pi8-169, pl8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9 [ pi9 -169, pi9 ] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [ pi10 -169, pi10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm[ pi11-169, pi11] atende uma condição predefinida C11. Na maneira de implantação mostrada na Figura 5, a pelo menos uma parte de dados em Wi5[ pi5-169, pi5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto pi5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto pj1 e uma janela Wj1[pj4-169, pj1] que corresponde ao ponto pj4 são determinados para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wj1[ pj1-169, pj4] atende a condição predefinida C1 é a mesma maneira de determinar se pelo menos uma parte de dados na janela W4[ pn-169, pn] atende a condição predefinida C1. Portanto, conforme mostrado na Figura 17, WJ1 representa a janela Wj1[p}1-169, p}1], e para determinar se pelo menos uma parte de dados em Wj1[ pj4-169, pj4], atende a condição predefinida C1, 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wj1[pj1-169, p}1], atende a condição predefinida C1. Na Figura 17, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43
Petição 870160008725, de 11/03/2016, pág. 381/698
110/200 e 1 são considerados como 40 bits sequenciais, que são representados como a/, a2, a3', a4 , e a40' separadamente. Para qualquer at' de a/, a2, a3', a4',...,e a40', quando<=0, Kflí'=-1, e quando α/=1, Kflí'=1. Κα1', Κα2', Kfl3', Va4', e Va40' são gerados de acordo com uma correspondência entre at' e Vat'. k maneira de determinar se pelo menos uma parte de dados na janela -169, ρ]λ] atende a condição predefinida C, é a mesma maneira de determinar se pelo menos uma parte de dados na janela ^[^-169, A1] atende a condição predefinida C4, e portanto, os mesmos números aleatórios são usados: h2, h3, h4,..., e Λ40. Kfl2'*/z2+Kfl3'*/z3 + Kfl4'*/z4
+...+ Κα40'*/?40. Uma vez que h4, h2, h3, h4,..., e h40 seguem uma distribuição normal, Sa' também segue uma distribuição normal. Quando Sa' é um número positivo, a pelo menos uma parte de dados em ^[^-169, ρ]λ] atende a condição predefinida C4; quando Sa' é um número negativo ou 0, a pelo menos uma parte de dados em Wj3[pjX -169, ρ]λ] não atende a condição predefinida C4. Uma probabilidade de que Sa' seja um número positivo é de 1/2.
[0137] A maneira de determinar se pelo menos uma parte de dados em Wi2 [ j>!2-169, pi2] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em ^2[^2-169, pJ2] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 17, Ei representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj2[p]2-I69, pJ2] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Na Figura 17, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são considerados como 40 bits sequenciais, que são representados como b3 , b2, b3', b4', e Z>40' separadamente. Para qualquer bt' de b3, b2, b3', Z>4', ..., e Z>40', quando/>/=0, 1/,/=-1, e quando />/=1, 1/,/=1. 1/,/, Vb2', Vb3',
Petição 870160008725, de 11/03/2016, pág. 382/698
111/200
Vbe Vb40' são gerados de acordo com uma correspondência entre bt' e Vbt'. A maneira de determinar se pelo menos uma parte de dados em Wt2 [ pt2169, pt2] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj2[pj2-169, pj2] atende a condição predefinida C2, e portanto, os mesmos números aleatórios são usados: h4, h2, h3, h4,...t e h40 . Sb ' = Vbi'* hi+ Vbd* h2+ Vb3* h3+ Vb4* h4+---+ Vb4o'* h40·· Uma vez que h1, h2, h3, h4,..., e h40. seguem uma distribuição normal, Sb' também segue uma distribuição normal. Quando Sb' é um número positivo, a pelo menos uma parte de dados em Wj2[pj2-169, pj2] atende a condição predefinida C2, quando Sb' é um número negativo ou 0, a pelo menos uma parte de dados em Wj 2[ pj 2-169, pj 2] não atende a condição predefinida C2. A probabilidade de que Sb' seja um número positivo é de 1/2.
[0138] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wt3[ pi3-169, pi3] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj 3[ pp -169, pj3] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[pj4-169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ p]5169, pj5 ] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ pj 7-169, pj 7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[p}9-169, p]9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wjn[pjU-169, pj11] atende a condição predefinida Cn, que não são descritas novamente no presente documento.
[0139] Ainda usando a maneira de implantação mostrada na
Petição 870160008725, de 11/03/2016, pág. 383/698
112/200
Figura 5 como um exemplo, um método para determinar se pelo menos uma parte de dados em uma janela Wiz [ piz - Az, plz + Bz ] atende a condição predefinida C z é fornecido. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ Piz - Az , piz + Bz ] atende a condição predefinida C z. De acordo com a regra predefinida em um servidor para desduplicação 103, um ponto pn e uma janela Wn [ pn169, pl1] que corresponde a pi1 são determinados para um ponto divisório potencial , e é determinado se pelo menos uma parte de dados em Wi1 [ pi1169, pn] atende uma condição predefinida C1. Conforme mostrado na Figura 16, Wn representa a janela W4[ ph-169, pn], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ pn-169, pn] atende a condição predefinida Cx. Na Figura 16, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 é convertido em 1 número decimal, cuja faixa é 0-(2Λ40-1). Um gerador para distribuição uniforme de número aleatório é usado para gerar 1 valor designado para cada número decimal em 0-(2Λ40-1), e uma correspondência R entre cada número decimal em 0-(2Λ40-1) e o valor designado é gravado. Uma vez designado, um valor designado que corresponde a um número decimal permanece inalterado, e o valor designado segue distribuição uniforme. Se o valor designado é um número par, a pelo menos uma parte de dados em Wn [ pn-169, pn] atende a condição predefinida Cx; se o valor designado é um número ímpar, a pelo menos uma parte de dados em Wü[ pn-169, pn] não atende a condição predefinida Cx. Cx representa que o valor designado obtido de acordo com o supracitado método é um número par. Uma vez que uma probabilidade de que um número aleatório em distribuição uniforme seja um número par é de 1/2, uma probabilidade de que a pelo menos uma parte de dados em [ pn-169, pn] atenda a condição predefinida Cx é de 1/2. Na maneira de implantação
Petição 870160008725, de 11/03/2016, pág. 384/698
113/200 mostrada na Figura 5, usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wt2 [ pt2 -169, pt2 ] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em Wt 3[ pi3169, pt3] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wt 4[ pt 4-169, pt 4] atende uma condição predefinida C4, e é determinado se pelo menos uma parte de dados em WI5[ pi5-169, pi5] atende uma condição predefinida C5, que não são descritas novamente no presente documento.
[0140] Quando a pelo menos uma parte de dados em Wi5[ p,5-169, pi5] não atende a condição predefinida C5, 11 bytes são pulados a partir de um ponto pt 5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um décimo primeiro byte. Conforme mostrado na Figura 6, de acordo com a regra predefinida no servidor para desduplicação 103, um ponto pfl e uma janela Wj1[ p]1-169, pj4] que corresponde ao ponto pfl são determinados para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela jpyl-169, pfl] atende a condição predefinida C4 é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wi1[ pi1-169, pn] atende a condição predefinida C4. Portanto, a mesma correspondência R entre cada número decimal em 0-(2Λ401) e um valor designado é usada. Conforme mostrado na Figura 17, representa a janela Wj1[p^-169, p71], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em j p-1-169, pj, atende a condição predefinida C4. Na Figura 17, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados Cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 é convertido em 1 número decimal, e R é buscado um valor designado que corresponde ao número decimal. Se o valor designado é um número par, a pelo menos uma parte de dados em Wj1[p^-169, p]X] atende a condição predefinida C4; se o
Petição 870160008725, de 11/03/2016, pág. 385/698
114/200 valor designado é um número ímpar, a pelo menos uma parte de dados em W [p]3-169, p]X] não atende a condição predefinida C1. Uma vez que a probabilidade de que um número aleatório em uma distribuição uniforme seja um número par é de 1/2, a probabilidade de que a pelo menos uma parte de dados em Wj1[ρ]λ-169, ρ]λ] atenda a condição predefinida C3 é de 1/2. Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wt2 [ p.2-169, p.2] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em W \ Pj 2-169, pj 2] atende a condição predefinida C2, e uma maneira de determinar se pelo menos uma parte de dados em Wt3[pi3-169, pi3] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj3[ pj3169, pj3] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[pj4-169, pj4] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ pj5169, pj5 ] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[pj6-169, pj6] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[pj7-169, pj7] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[pj8-169, pj8] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[p}9-169, pj9] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [pj10-169, pj10] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wj11[p]U-169, pjn] atende a condição predefinida Cn, que não são descritas novamente no presente documento.
[0141] O servidor para desduplicação 103 na modalidade da presente invenção mostrada na Figura 1 se refere a um aparelho que pode implantar uma solução técnica descrita em uma modalidade da presente invenção, e conforme mostrado na Figura 18, usualmente inclui uma unidade de processamento central, uma memória principal, e uma interface de
Petição 870160008725, de 11/03/2016, pág. 386/698
115/200 entrada/saída. A unidade de processamento central, a memória principal, e a interface de entrada/saída se comunicam entre si. A memória principal armazena uma instrução executável, e a unidade de processamento central executa a instrução executável armazenada na memória principal, de modo a realizar uma função específica, por exemplo, buscar um ponto divisório de corrente de dados descrito na Figura 4 à Figura 17 nas modalidades da presente invenção. Portanto, conforme mostrado na Figura 19, de acordo com as modalidades da presente invenção mostradas na Figura 4 à Figura 17, para o servidor para desduplicação 103, a regra é predefinida no servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx [ px - Ax, px+Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx[px-Ax, px+Bx], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros. O servidor para desduplicação 103 inclui uma unidade de determinação 1901 e uma unidade de julgamento e processamento 1902. A unidade de determinação 1901 é configurada para realizar a etapa (a): (a) determinar um ponto pIz e uma janela Wiz [ piz - A, pz + Bz] que corresponde ao ponto pz para um ponto divisório potencial corrente kt de acordo com a regra, em que i e z são números inteiros, e 1<z<M. A unidade de julgamento e processamento 1902 é configurada para: se pelo menos uma parte de dados na janela Wz [ pz - A, pz + Bz ] atende uma condição predefinida Cz;
quando a pelo menos uma parte de dados na janela WIz [ pIz - A, pz + Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto p z ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que IIBz 11+ maxx(II Ax 11+11( ki -px)||), de modo a obter um novo ponto divisório potencial, onde a unidade de determinar realiza a etapa (a) para o novo ponto divisório potencial; e quando pelo menos uma parte de dados em cada janela Wix [ pIx - Ax, pIx + Bx ] de M janelas do ponto divisório potencial
Petição 870160008725, de 11/03/2016, pág. 387/698
116/200 corrente kt atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kt, como um ponto divisório de corrente de dados.
[0142] Além disso, a regra inclui adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af, Be = Bf, e Ce = Cf. Além disso, a regra inclui adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
[0143] Além disso, a regra inclui adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
[0144] Além disso, a unidade de julgamento e processamento 1902 é especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ pz - A, plz + Bz ] atende a condição predefinida Cz. Especificamente, a unidade de julgamento e processamento 1902 é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wlz [ pa - A, pz + Bz ] atende a condição predefinida Cz. Especificamente, que a unidade de julgamento e processamento 1902 seja especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ plz - A, pz+Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wiz [ piz - Az, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F>1, cada byte é formado por 8 bits, que são indicados por am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem ' ai,1 ai,2 a2,1 a2,2 \ f*h ,1 aF*H, 2 aos F*H bytes podem ser representados como: a ) u1,8 a2,8 aF*H ,8 y onde quando a =1, V =1, e quando a =0, ~ m,n ’ am,n ’ ~ m ,n ’ vamn =-1, onde amn representa qualquer um dentre am1 e am8, uma matriz
Petição 870160008725, de 11/03/2016, pág. 388/698
117/200
V é obtida de acordo com uma relação de conversão entre a e V a a s m ,n am,n partir dos bits que correspondem aos F*H bytes, a matriz Va é representada como:
V F a1,8
V F a 2,8
F*H*8 números aleatórios são selecionados
V
V aF*H ,1
V F aF *H ,2
V v aF *H ,8 y a partir de números aleatórios seguindo-se uma distribuição normal para formar
' h1,1 | h1,2 ·· | h % 1,8 | |
uma matriz R, a matriz R é representada como: | h2,1 | h2,2 ·· | h2,8 • 5 |
h lF*H ,1 | h rlF*H ,2 | h rlF*H ,8 y | |
números aleatórios em uma emésima linha da matriz Va e | em uma | emésima |
linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam,2 * hm2 +···+ Vam,8*hm,8, Sa1, Sa2, e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSa1, Sa2, e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wiz [ Pz - A, Piz + Bz ] atende a condição predefinida Cz.
[0145] Além disso, a unidade de julgamento e processamento 1902 é configurada para: quando a pelo menos uma parte de dados na janela Wiz [ piz- A, piz+Bz] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto piz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e a unidade de determinação 1901 realiza a etapa (a) para o novo ponto divisório potencial, onde e de acordo com a regra, um limite à esquerda de uma janela Wic [ pIc - A, pic+Bc] que corresponde a um ponto pic que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela W [ plz - Az, Piz+ Bz] ou um limite à esquerda de uma janela W [ Pic - Ac, Pic+B 1, que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [ plz - Az, piz+Bz ], onde a janela W lc [ plc - Ac, pic + Bc ] determinada
Petição 870160008725, de 11/03/2016, pág. 389/698
118/200 para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
[0146] De acordo com o método para buscar um ponto divisório de corrente de dados com base em um servidor nas modalidades da presente invenção mostradas na Figura 4 à Figura 17, um ponto px e uma janela W [ Plx -Ax, Plx + B x] do ponto px são determinados para um ponto divisório potencial kt, onde x indica números naturais consecutivos de 1 a M separadamente, e M>2. Pode ser determinado em paralelo se pelo menos uma parte de dados em cada janela de M janelas atende uma condição predefinida Cx, ou pode ser determinado em sequência se pelo menos uma parte de dados nas janelas atende uma condição predefinida, ou pode ser primeiramente determinado que pelo menos uma parte de dados em uma janela Wn [ pn- a15 pn +b J atende a condição predefinida C}, então é determinado que pelo menos uma parte de dados em Wim [ pim - Am, pim + Bm ] atende a condição predefinida C2, até ser determinado que pelo menos uma parte de dados em Wim [ pim - Am, pim + Bm ] atende a condição predefinida Cm. Outras janelas nessa modalidade são determinadas da mesma maneira que acima, que não é descrita novamente.
[0147] Além disso, de acordo com as modalidades da presente invenção mostradas na Figura 4 à Figura 17, em aplicações concretas, uma regra é predefinida no servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx[px- Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx[px-Ax, px+Bx], onde x indica números naturais consecutivos de 1 a M separadamente, e M>2. Na regra predefinida, A1, A2, A3, ..., e Am podem ser não todos iguais, b15 b2, B3, ..., e Bm podem ser não todos iguais, e Cn C2, C3, ..., e CM podem também ser não todos iguais. Na
Petição 870160008725, de 11/03/2016, pág. 390/698
119/200 maneira de implantação mostrada na Figura 5, para as janelas Wn[ pn-169,
P/1], W 2[ Pi 2-169, Pi 2] Wi3[ Pi3-169, Pi 3], W<l Pi4-169, Pi4 L Wi5[ P ~169- Pü],
Wi6[ Pi6-169, Pi6], W17[ Pi7-169, pi7], WiS[ PiS-169, P18], W9 [ Pi9-169, Pi9l
-169, Pi10], e W-n[Pin-169, Pn1], as janelas são de tamanho igual, isto Wi10 [ Pi10 é, todas as janelas têm um tamanho de 169 bytes, e entretanto maneiras de determinar se pelo menos uma parte de dados em uma janela atende a condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em Wn [ pi1-169, pi1] atende a condição predefinida C1. Entretanto, na maneira de implantação mostrada na Figura 11, as janelas Wn[ Pi,-169,
Pi1] W 2[ Pi 2-169, Pi 2] Wi3 [ Pi3-169, Pi 3]» Wi4[ Pi4-169, Pi4 L Wi5[ Pi5-169, Pi5]
W6[ Pi6-169, PiJ, W-7[ Pí7-169, Pi7], ^8[ Pi8-169, p.8], Wi9[ p.9-169, p.9],
WU Pi1o-169, Pi!o], e W.n[ Pni-182, Pül] podem ser diferentes em tamanho, e entretanto as maneiras de determinar se pelo menos uma parte de dados em uma janela atende a condição predefinida podem também ser diferentes. Em todas as modalidades, de acordo com a regra predefinida no servidor para desduplicação 103, uma maneira de determinar se pelo menos uma parte de dados na janela Wi1 atende a condição predefinida C1 é certamente a mesma maneira de determinar se pelo menos uma parte de dados em uma janela Wj1 atende a condição predefinida C1, uma maneira de determinar se pelo menos uma parte de dados em W 2 atende a condição predefinida C2 é certamente a mesma maneira de determinar se pelo menos uma parte de dados em Wj2 atende a condição predefinida C2, ..., e uma maneira de determinar se pelo menos uma parte de dados em uma janela WiM atende a condição predefinida CM é certamente a mesma maneira de determinar se pelo menos uma parte de dados em uma janela WjM atende a condição predefinida WjM, que não são descritas novamente no presente documento. Entretanto, de acordo com as modalidades da presente invenção mostradas na Figura 4 à Figura 17, embora M=11 seja usado como um exemplo, o valor de M não é limitado a 11 de
Petição 870160008725, de 11/03/2016, pág. 391/698
120/200 acordo com uma exigência concreta, e uma pessoa especialista na técnica determines o valor de M de acordo com a descrição nas modalidades da presente invenção.
[0148] De acordo com as modalidades da presente invenção mostradas na Figura 4 à Figura 17, a regra é predefinida no servidor para desduplicação 103, ka, kt, k7, kt, e km são pontos divisórios potenciais obtidos ao se buscar um ponto divisório ao longo de uma direção de buscar um ponto divisório de corrente de dados, e ka, kt, k7, kt, e km todos seguem a regra. A janela Wx [ px - Ax, px + Bx] nessa modalidade da presente invenção representa uma faixa específica, e dados são selecionados na faixa específica para determinar se os dados atendem a condição predefinida Cx. Especificamente, na faixa específica, uma parte de dados pode ser selecionada ou todos os dados podem ser selecionados para determinar se os dados atendem a condição predefinida Cx. Referência pode ser feita à janela Wx[ px - Ax, px + Bx ] quanto ao conceito de uma janela especificamente usada nessa modalidade da presente invenção, que não é descrita novamente no presente documento.
[0149] De acordo com as modalidades da presente invenção mostradas na Figura 4 à Figura 17, na janela Wx [ px - Ax. , px + Bx ] ( p. - Ax ) e (px + Bx) representam dois limites da janela Wx [ p - A , px + Bx ], onde ( p Ax) representa um limite, que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados com relação ao ponto px , da janela Wx [ px - A , px + Bx ] e ( px + Bx ) representa um limite, que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto px , da janela Wx [ px - A , px + Bx ]. Especificamente, na modalidade da presente invenção, a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 3 à Figura 15 é da esquerda para a direita; portanto, (px Ax) representa um limite (isto é, um limite à esquerda), que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados
Petição 870160008725, de 11/03/2016, pág. 392/698
121/200 com relação ao ponto px, da janela W [ Px-Αχ, Px + BX], e ( Px + Bx) representa um limite (isto é, um limite à direita), que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto px, da janela Wx [ Px - Ax, px + Bx]. Se a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 3 à Figura 15 é da direita para a esquerda, ( px - Ax) representa um limite (isto é, um limite à direita), que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados com relação ao ponto px , da janela Wx [ px - Ax px + Bx], e ( px + Bx) representa um limite (isto é, um limite à esquerda), que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto px , da janela Wx [ px - A , px + Bx ].
[0150] Uma pessoa de habilidade comum na técnica pode estar ciente de que, em conjunto com várias unidades exemplificativas e etapas de algoritmo descritas nas modalidades da presente invenção, uma característica chave nas modalidades da presente invenção pode ser combinada com outras tecnologias e apresentada em uma forma mais complexa; entretanto, a característica chave da presente invenção é ainda incluída. Um ponto divisório alternativo pode ser usado em um ambiente concreto. Por exemplo, em uma maneira de implantação, de acordo com uma regra predefinida em um servidor para desduplicação 103, 11 pontos px são determinados para um ponto divisório potencial kt, onde x indica números naturais consecutivos de 1 a 11, e uma janela Wx [ px- Ax, px+Bx] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px- Ax, px+Bx] são determinados. Quando pelo menos uma parte de dados em cada janela Wx [ px - Ax, px + Bx] de 11 janelas atende a condição predefinida Cx, o ponto divisório potencial kt é um ponto divisório de corrente de dados. Quando nenhum ponto divisório é encontrado quando uma fatia de dados máxima definida é excedida, uma regra predefinida para o ponto alternativo pode ser usada nesse caso. A regra predefinida para o ponto alternativo é similar à regra
Petição 870160008725, de 11/03/2016, pág. 393/698
122/200 predefinida no servidor para desduplicação 103, e a regra predefinida para o ponto alternativo é: por exemplo, para um ponto divisório potencial kt, 10 pontos px são determinados, onde x indica números naturais consecutivos de 1 a 10, e uma janela Wx [ px - Ax, px + Bx] que corresponde a px e uma condição predefinida Cx que corresponde à janela Wx [ px - Ax, px + Bx ] são determinados. Quando pelo menos uma parte de dados em cada janela Wx [ px - Ax, px + Bx] de 10 janelas atende a condição predefinida Cx, o ponto divisório potencial kt é um ponto divisório de corrente de dados; quando nenhum ponto divisório de corrente de dados é encontrado quando a fatia de dados máxima definida é excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0151] Uma regra é predefinida no servidor para desduplicação 103, e na regra, M pontos são determinados para um ponto divisório potencial k. Não é necessariamente exigido que haja um ponto divisório potencial k antecipadamente, e o ponto divisório potencial k pode ser determinado usandose os M pontos determinados.
[0152] Uma modalidade da presente invenção fornece um método para buscar um ponto divisório de corrente de dados com base em um servidor para duplicação, que, conforme mostrado na Figura 20, inclui:
[0153] Uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar M janelas Wx [ k- Ax, k + Bx] e uma condição predefinida Cx que corresponde à janela Wx [ k- Ax, k+ Bx], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros. Na maneira de implantação mostrada na Figura 3, sobre um valor de M, em uma maneira de implantação, um valor de M*U não é maior que uma distância máxima predefinida entre dois pontos divisórios de corrente de dados adjacentes, isto é, um comprimento máximo predefinido de uma fatia de dados. É determinado se pelo menos uma parte de dados em uma janela Wz [ k- Az, k + Bz ] atende uma
Petição 870160008725, de 11/03/2016, pág. 394/698
123/200 condição predefinida Cz, onde, z é um número inteiro, 1<z<M, e (k- Az) e (k+ Bz) separadamente representam dois limites da janela Wz. Quando é determinado que pelo menos uma parte de dados em qualquer uma janela Wz [ k- Az, k + Bz ] não atende a condição predefinida Cz, N bytes são pulados a partir do ponto divisório potencial k ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N<ll Bz || + maxx(|| Ax ||). || Bz || representa um valor absoluto de Bz em Wz [ k- Az, k+ Bz ], maxx (|| Ax II) representa um valor máximo entre o valor absoluto de Ax nas M janelas, e um princípio de determinar um valor de N é especificamente apresentado nas modalidades a seguir. Quando é determinado que pelo menos uma parte de dados em cada janela Wx [ k- Ax, k + Bx ] das M janelas atende a condição predefinida Cx, o ponto divisório potencial k é um ponto divisório de corrente de dados.
[0154] Especificamente, para um ponto divisório potencial corrente kl, as seguintes etapas são realizadas de acordo com a regra:
[0155] Etapa 2001: Determinar uma janela correspondente Wlz [kt Az, kt + Bz ] para o ponto divisório potencial corrente kl de acordo com a regra, onde i e z são números inteiros, e 1<z<M.
[0156] Etapa 2002: Determinar se pelo menos uma parte de dados na janela Wz [kl - Az, kl + Bz ] atende a condição predefinida Cz;
quando a pelo menos uma parte de dados na janela Wz [kl - Az, kl+ Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente ki ao longo da direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz II +maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa 2001; e quando pelo menos uma parte de dados em cada janela Wix [kl - Ax, kl+Bx ] de M janelas do ponto divisório potencial corrente kt atende a condição predefinida Cx , selecionar o ponto divisório potencial corrente ki como um
Petição 870160008725, de 11/03/2016, pág. 395/698
124/200 ponto divisório de corrente de dados.
[0157] Além disso, a regra inclui adicionalmente que pelo menos duas janelas Wie [ kt - Ae, kt + Be ] e WIf [ kI - Af, kt + Bf ] atendem as condições | Ae+Be |=| Af+Bf |, e Ce = Cf. Além disso, a regra inclui adicionalmente que Ae e Af são números inteiros positivos. Mais ainda, a regra inclui adicionalmente que Ae-1 = Af e Be +1=Bf. | Ae + Be | representa um tamanho da janela We, e | Af+Bf| representa um tamanho da janela W.
[0158] Além disso, determinar se pelo menos uma parte de dados na janela Wz [ kt - Az, kt + Bz ] atende a condição predefinida Cz inclui especificamente: determinar, usando uma função aleatória, se a pelo menos uma parte de dados na janela Wz [kt - Az, kt + Bz ] atende a condição predefinida Cz. Mais ainda, determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [k -A, k + Bz ] atende a condição predefinida Cz é especificamente: determinar, usando a função hash, se a pelo menos uma parte de dados na janela W.z [k -A, k+Bz ] atende a condição predefinida Cz.
[0159] Quando a pelo menos uma parte de dados na janela Wiz [ kI - Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial. De acordo com a regra, um limite à esquerda de uma janela WIc [kI Ac, kI + Bc] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wz [kt - Az, kt + Bz ] ou um limite à esquerda de uma janela WIc [kI - Ac, kI + Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wz [ kt - Az, kt + Bz ], onde a janela WIc [kI - Ac, kI + Bc ] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, de M janelas que são
Petição 870160008725, de 11/03/2016, pág. 396/698
125/200 determinadas para o novo ponto divisório potencial de acordo com a regra.
[0160] Nessa modalidade da presente invenção, um ponto divisório de corrente de dados é buscado ao se determinar se pelo menos uma parte de dados em uma janela de M janelas atende uma condição predefinida, e quando a pelo menos uma parte de dados na janela não atende a condição predefinida, um comprimento de N*U é pulado, onde N*U não é maior que || Bz ll+maxx(|| Ax ||), de modo a se obter um próximo ponto divisório potencial, desse modo aumentando a eficiência na busca de um ponto divisório de corrente de dados.
[0161] Em um processo de eliminar dados duplicados, para assegurar um tamanho uniforme de uma fatia de dados, um tamanho de uma fatia de dados comum (também denominada uma fatia comum) é considerado. Isto é, embora limites em um tamanho de uma fatia de dados mínima e um tamanho de uma fatia de dados máxima sejam atendidos, o tamanho das fatias de dados comuns é determinado para assegurar um tamanho uniforme de uma fatia de dados obtida. Uma probabilidade (representada como P(n)) de encontrar um ponto divisório de corrente de dados depende de dois fatores, isto é, a quantidade M das janelas Wx [ k- Ax, k + Bx ] e uma probabilidade de que pelo menos uma parte de dados na janela Wx [ k- Ax, k + Bx ] atenda uma condição predefinida, onde a primeira afeta um comprimento para pular, a última afeta uma probabilidade de pular, e as duas juntas afetam o tamanho da fatia comum. Em geral, quando o tamanho da fatia comum é fixo, à medida que o montante de Wx [ k- Ax, k+Bx ] aumenta, a probabilidade de que pelo menos uma parte de dados em uma só janela Wx [ k- Ax, k + Bx ] atenda uma condição predefinida também aumenta. Por exemplo, uma regra é predefinida no servidor para desduplicação 103, e a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [ k- Ax, k + Bx ], onde x indica números naturais consecutivos de 1 a 11 separadamente, e a probabilidade de que pelo menos uma parte de dados em qualquer janela Wx [ k- Ax, k + Bx ] das 11 janelas
Petição 870160008725, de 11/03/2016, pág. 397/698
126/200 atenda uma condição predefinida é de 1/2. Outro grupo de regras predefinidas no servidor para desduplicação 103 é: determinar 24 janelas Wx [ k- Αχ, k+ Βχ ] para o ponto divisório potencial k, onde x indica números naturais consecutivos de 1 a 24 separadamente, e uma probabilidade de que pelo menos uma parte de dados em qualquer janela Wx [ k- Ax, k+Bx ] das 24 janelas atende a condição predefinida Cx é de 3/4. Para a definição de uma probabilidade de que pelo menos uma parte de dados em uma janela específica Wx [ k - Ax, k+ Bx ] atende uma condição predefinida, referência pode ser feita à descrição da parte de determinar se pelo menos uma parte de dados na janela Wx [ k- Ax, k +Bx ] atende uma condição predefinida. P(n) depende dos dois fatores, isto é, a quantidade M de janelas Wx [ k- Ax, k+ Bx ] e a probabilidade de que pelo menos uma parte de dados na janela Wx [ k- Ax, k + Bx ] atenda uma condição predefinida, e P(n) representa: uma probabilidade de que nenhum ponto divisório de corrente de dados seja encontrado após n unidades mínimas para buscar um ponto divisório de corrente de dados em uma busca a partir de uma posição inicial ou um ponto divisório de corrente de dados anterior de uma corrente de dados. Um processo de calcular P(n) que depende dos dois fatores é na verdade uma sequência Fibonacci de n etapas, que é descrita abaixo em detalhe. Após P(n) ser obtido, 1-P(n) é uma função de distribuição de um ponto divisório de corrente de dados, e (1-P(n))-(1-P(n-1))=P(n-1)-P(n) é uma probabilidade de que um ponto divisório de corrente de dados seja encontrado a uma distância de n unidades mínimas para buscar um ponto divisório de corrente de dados, isto é, uma função de densidade de um ponto divisório de
12*1024 corrente de dados. A integração nx (P(n-1)-P(n)) pode ser realizada de n 4*1024 acordo com a função de densidade de um ponto divisório de corrente de dados, de modo se a obter um comprimento esperado de um ponto divisório de corrente de dados, isto é, o tamanho da fatia comum, onde 4*1024 (bytes) representa um comprimento da fatia de dados mínima, e 12*1024 (bytes)
Petição 870160008725, de 11/03/2016, pág. 398/698
127/200 representa um comprimento da fatia de dados máxima.
[0162] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 21, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [ k- Ax, k+Bx ] e uma condição predefinida Cx que corresponde à janela Wx [ k -Ax, k + Bx], onde x indica números naturais consecutivos de 1 a 11, e Ax e Bx são números inteiros. 4=169, B}=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A2=175, B7=-6; A8=176, B8=-7; A9 =177, B9=-8; Ajo=178, Bw=-9; A„=179, B„=-10. Ç = C2 = C3 = C4 = C5 = C6 = C7 = C8 =C9=C10=C11. Portanto, as 11 janelas são WJk-169, k], W2[k-170, k-1], W3[k171, k-2], W4[k-172, k-3], W5[k-173, k-4], W6[k-174, k-5], W7[k-175, k-6], W8 [k176, k-7], W9[k-177, k-8], W10[k-178, k-9], e Wn [k-179, k-10]. ka é um ponto divisório de corrente de dados, e uma direção de buscar um ponto divisório de corrente de dados mostrada na Figura 21 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k,. De acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wx [ k, Ax, k, + Bx ] é determinada para o ponto divisório potencial k,, e nessa modalidade, x indica números naturais consecutivos de 1 a 11 separadamente.
Na maneira de implantação mostrada na Figura 21, 11 janelas são determinadas para o ponto divisório potencial ki , e são Wn[ k,-169, k, ], W2[ k,
170, kt-1], W/3[ k,-171, k, -2], Wi4[ k,-172, k, -3], W5[ k,-173, k, -4], Wi6[ k,-174, k, 5], W 7[ k-175, k, -6], W.[ k,-176, k, -7], Wi9[ k,-177, k, -8], W/w [ k,-178, k, -9], e
W-n [ k,-179, k,-10] separadamente. É determinado se pelo menos uma parte de dados em W{1[ k, -169, k, ] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em W2[k,-170, k,-1] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W 3[k
Petição 870160008725, de 11/03/2016, pág. 399/698
128/200
171, k, -2] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W,4[k, -172, k, -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em W,5[ k,-173, k, -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em W6[ k,-174, k, -5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em W7 [k,-175, k, -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em W,[ k,-176, k, -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em W,9[ k,-177, k, -8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em W,10 [k, -178, k, -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em W-u [k, -179, k,-10] atende a condição predefinida Cu . Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida Cj, a pelo menos uma parte de dados na janela w,2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela W3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela W7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela W,8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wi9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela W,10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wt11 atende a condição predefinida C11, o ponto divisório potencial corrente k, é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, W,5 [k, -173, k, -4] mostrada na Figura 22, N bytes são pulados a partir do ponto divisório potencial k, ao longo da direção de buscar um ponto divisório de
Petição 870160008725, de 11/03/2016, pág. 400/698
129/200 corrente de dados, onde os N bytes não são maiores que || B5 || + maxx (|| Ax ||). Em uma maneira de implantação mostrada na Figura 22, os N bytes que são pulados não são maiores que 183 bytes, e nessa modalidade, N=7, de modo a obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial , o novo ponto divisório potencial no presente documento é representado como k, no presente documento. De acordo com a maneira de implantação mostrada na Figura 21, uma regra é predefinida no servidor para desduplicação 103, onde a regra é: determinar uma janela W [ k - A, k + B, ] para o ponto divisório potencial k,, onde nessa modalidade, x indica números naturais consecutivos de 1 a 11 separadamente. Onze (11 )janelas são determinadas para o ponto divisório potencial k j , e são ,k,-169, k, ], WJ2 [ k,-170, k,-1], WJ3[ k,-171, k, -2], W]4[ kj-172, k, -3], W,A k,-173, k,-4], W,6 [k,-174, k, -5], W 7[k,-175, k, -6], W Jk,-176, k,-7], Wy9[ k,-177, k,-8], W^ [ k,-178, k, -9], e Wy11[ k,-179, k,-10] separadamente. Conforme mostrado na Figura 22,quando a décima primeira janela W,Ί1[k,.-179, k,-10] é determinada para o ponto divisório potencial, para assegurar que uma faixa entre o ponto divisório potencial kt e o ponto divisório potencial k, cai completamente dentro de uma faixa de determinação, nessa maneira de implantação, pode ser assegurado que um limite à esquerda da janela Wy11[k,-179, k,-10] coincide com um limite à direita (kt -4) da janela Wi5 [kt -173, kt -4], ou cai dentro de uma faixa da janela Wi5[ kt -173, kt -4], onde a janela W,Ί1[ k,-179, k,-10] é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com uma direção de busca de corrente de dados, das M janelas que são determinadas para o ponto divisório potencial k, de acordo com a regra. Portanto, dentro desse limite, quando pelo menos uma parte de dados na janela Wt5[kt-173, kt -4] não atende a condição predefinida C5, uma distância para pular a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados não é maior que || B5 || + maxx (|| Ax ||). É determinado se pelo menos uma parte de dados em W,4[ k,-169, k, ]
Petição 870160008725, de 11/03/2016, pág. 401/698
130/200 atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj2[ kj-170, kj-1] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[ kj-171, kj -2] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wj 4[ kJ 172, kj -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5 [ kj-173, kj -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ kj-174, kj-5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj 7[ kj-175, kj -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj-176, kj -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj 9[ kj 177, kj-8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[ kj-178, kj -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WjU[ kj-179, kj-10] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela atende a condição predefinida C, a peto menos uma parte de dados na janela W}2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefiruda C., a pelo menos uma parte de dados na janela W„ atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janeta j atende a coação predefrnda Clo , e a peto menos uma parte de dados na janela Wjn atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados, e dados entre kj e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho
Petição 870160008725, de 11/03/2016, pág. 402/698
131/200 mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e de acordo com a regra predefinida no servidor para desduplicação 103, é determinado se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando é determinado que o ponto divisório potencial kj não é um ponto divisório de corrente de dados, um próximo ponto divisório potencial é obtido de uma maneira igual àquela de ki, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é um ponto divisório. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0163] Na maneira de implantação mostrada na Figura 21, de acordo com a regra predefinida no servidor para desduplicação 103, começando por determinar se a pelo menos uma parte de dados em wü[ ki 169, ki ] atende a condição predefinida C1, quando é determinada a pelo menos uma parte de dados na pelo menos uma parte de dados em W,[ ki-169, ki ], a pelo menos uma parte de dados em Wi2 [ki-170, ki-1], a pelo menos uma parte de dados em Wi3 [ kt -171, ki -2], e a pelo menos uma parte de dados em W 4[ ki 172, kt -3] atendem as condições predefinidas C1, C2, C3, e C4 respectivamente, e é determinado que a pelo menos uma parte de dados em Wt5[ ki -173, ki -4] não atende a condição predefinida C5, 6 bytes são pulados a partir do ponto divisório potencial ki ao longo da direção de buscar um ponto divisório de corrente de dados, e um novo ponto divisório potencial é obtido em uma posição de extremidade de um sexto byte. Para diferenciação de outros pontos divisórios potenciais, o novo ponto divisório potencial é representado como kg no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103, 11 janelas são determinadas para o ponto divisório potencial kg, e são Wgl[kg-169, kg], Wg2[kg-170, kg-1], W.;|kg-171,
Petição 870160008725, de 11/03/2016, pág. 403/698
132/200 kg -2], Wg4[ kg-172, kg -3], Wg5[ kg-173, kg -4], Wg6[ kg-174, kg -5], Wg7[ kg-175, kg -6], Wg8[ kg-176, kg -7], W ,| kg-177, kg -8], Wg10[ kg-178, kg -9], e Wgll[ kg 179, kg-10] separadamente. É determinado se pelo menos uma parte de dados em Wg1[ kg-169, kg ] atende a condição predefinida , é determinado se pelo menos uma parte de dados em Wg2[kg-170, kg-1] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wg si kg 171, kg -2] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wg 4[ kg-172, kg -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wg5[ kg-173, kg -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wg6[ kg-174, kg-5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em Wg7[kg-175, kg-6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wg8[kg 176, kg -7] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wg9[kg-177, kg -8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wg3o[ kg-178, kg -9] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wg11[ kg-179, kg-10] atende uma condição predefinida Cn. A janela Wg11[kg-179, kg-10] coincide com a janela Wi5[kt-173, kt-4], e C5 = C11;
portanto, quando é determinado que a pelo menos uma parte de dados em Wi5 [kt -173, kt -4] não atende a condição predefinida C5, um ponto divisório potencial kg obtido por pular T bytes a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados ainda não atende a condição para servir como um ponto divisório de corrente de dados. Portanto, se existe cálculo repetido quando 6 bytes são pulados a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados, então o cálculo repetido pode ser reduzido e a eficiência é maior quando 7 bytes são pulados a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados. Portanto,
Petição 870160008725, de 11/03/2016, pág. 404/698
133/200 uma velocidade de buscar um ponto divisório de corrente de dados é aumentada. Quando em uma especificação predefinida, uma probabilidade de que pelo menos uma parte de dados na janela Wx [k- Ax, k+ Bx ] atenda a condição predefinida Cx é de 1/2, isto é, uma probabilidade de executar o pulo é de 1/2, no máximo || Bn || + || An || =189 bytes podem ser pulados de cada vez.
[0164] Nessa maneira de implantação, uma regra predefinida é que: 11 janelas Wx [k- Ax, k+ Bx] são determinadas para um ponto divisório potencial k e pelo menos uma parte de dados na janela Wx [k- Ax, k+ Bx ] atende uma condição predefinida Cx, onde uma probabilidade de que pelo menos uma parte de dados em Wx [k- Ax, k+ Bx ] atenda a condição predefinida Cx é de 1/2, onde x indica números naturais consecutivos de 1 a 11 separadamente, e Ax e Bx são números inteiros4=169, B,=ü; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6=-5; A7=175, B7 =6; A8=176, B8=-7; A9=177, B9 =-8; A1o=178, Bw=-9; A„=179, B„=-10. Ç = C2 = C3=C4=C5=C6=C7=C8=C9=C10= C11. Isto é, 11 janelas são selecionadas para o ponto divisório potencial k, e as 11 janelas são consecutivas; P(n) pode ser calculada usando os dois fatores, isto é, a quantidade de janelas e a probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px + Bx ] atenda a condição predefinida Cx. Uma maneira de selecionar as 11 janelas e determinar que pelo menos uma parte de dados em cada janela das 11 janelas atende a condição predefinida Cx segue a regra predefinida no servidor para desduplicação 103, e portanto, se o ponto divisório potencial k é ou não um ponto divisório de corrente de dados depende de que ocorra que pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atenda a condição predefinida Cx . Um vão entre dois bytes é denominado um ponto. P(n) representa uma probabilidade de que 11 janelas consecutivas que atendem uma condição não existam entre n janelas consecutivas, isto é, uma probabilidade de que não exista nenhum ponto divisório de corrente de dados.
Petição 870160008725, de 11/03/2016, pág. 405/698
134/200
Após um tamanho mínimo de fatia de 4 KB ser pulado a partir de um cabeçalho de arquivo/ ponto divisório prévio, um quatro centésimo octogésimo sexto ponto é encontrado retrocedendo-se 10 bytes em uma direção oposta à direção de buscar um ponto divisório de corrente de dados, e não existe nenhum ponto divisório de corrente de dados no ponto; portanto, P(4086)=1, e P(4087)=1, ..., P(4095)=1, e assim por diante. Em um quatro centésimo nonagésimo sexto ponto, isto é, um ponto que é usado para obter a fatia mínima, com uma probabilidade de (1/2)Λ11, pelo menos uma parte de dados em cada janela das 11 janelas atende a condição predefinida Cx. Logo, com uma probabilidade de (1/2)Λ11, um ponto divisório de corrente de dados existe; com uma probabilidade de 1-(1/2)Λ11, não existe nenhum ponto divisório de corrente de dados; portanto Ρ(4096)=1-(1/2)Λ11.
[0165] Em uma enésima janela, pode haver 12 casos de obter P(n) por meio de recursividade.
[0166] Caso 1: com a probabilidade de 1/2, pelo menos uma parte de dados na enésima janela não atende uma condição predefinida; nesse caso, com uma probabilidade de P(n-1), 11 janelas consecutivas não existem entre (n-1) janelas antes da enésima janela, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende uma condição predefinida. Portanto, P(n) inclui 1/2*P(n-1). Um caso em que a pelo menos uma parte de
Petição 870160008725, de 11/03/2016, pág. 406/698
135/200 dados na enésima janela não atende a condição predefinida, e 11 janelas consecutivas existem entre as (n-1) janelas antes do enésimo ponto, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende a condição predefinida, não é relacionado a P(n).
[0167] Caso 2: com a probabilidade de 1/2, pelo menos uma parte de dados na enésima janela atende a condição predefinida, e com a probabilidade de 1/2, pelo menos uma parte de dados em uma enésima 1(uma) janela não atende a condição predefinida; nesse caso, com a probabilidade de P(n-2), 11 janelas consecutivas não existem entre (n-2) janelas antes da enésima-1 (uma) janela, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende a condição predefinida. Portanto, P(n) inclui 1/2*1/2*P(n-2). Um caso em que a pelo menos uma parte de dados na enésima janela atende a condição predefinida, a pelo menos uma parte de dados na janela do enésimo menos um ponto não atende a condição predefinida, e 11 janelas consecutivas existem entre as (n-2) janelas antes da enésima-1 (uma) janela, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende a condição predefinida, não é relacionado a P(n).
[0168] De acordo com a descrição supracitada, caso 11: com uma probabilidade de (1/2)Λ10, pelo menos uma parte de dados na enésima à enésima-9 janelas atende uma condição predefinida, e com uma probabilidade de 1/2, pelo menos uma parte de dados em uma enésimo menos 10 janela não atende uma condição predefinida; nesse caso, com a probabilidade de P(n-11), 11 janelas consecutivas não existem entre (n-11) janelas antes da enésimo menos 10 janela, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende a condição predefinida. Portanto, P(n) inclui (1/2^10*1/2*P(n-11). Um caso em que a pelo menos uma parte de dados em na enésima à enésima-9 janelas atende a condição predefinida, a pelo menos uma parte de dados na enésima menos 10 janela não atende a condição
Petição 870160008725, de 11/03/2016, pág. 407/698
136/200 predefinida, e 11 janelas consecutivas existem entre as (n-11) janelas antes da enésimo menos 10 janela, onde pelo menos uma parte de dados em cada janela das 11 janelas consecutivas atende a condição predefinida, não é relacionado a P(n).
[0169] Caso 12: com uma probabilidade de (1/2)Λ11, pelo menos uma parte de dados em enésima a (n-10) janelas atende uma condição predefinida é, e esse caso não é relacionado a P(n).
[0170] Portanto, P(n)=1/2*P(n-1)+(1/2f2*P(n-2)+...+(1/2^11*P(n11). Outra regra predefinida é: para um ponto divisório potencial k, 24 janelas Wx [ k- Ax, k + Bx] e uma condição predefinida Cx que corresponde à janela Wx [ k- Ax, k + Bx ] são determinadas, onde x indica números naturais consecutivos de 1 a 11, 4=169, 4=0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5 =173, B5=-4; A6=174, B6=-5; A7=175, B7=-6; A8=176, Bs=-7; A9=177, B9 =-8; A10=178, B10=-9; A„=179, B„=-10, ..., e Au =192, B24 =-23. A24=192, B24-23. C1=C2 =C3=C4=C5=C6=C7=C8=C9=...=C24. Uma probabilidade de que pelo menos uma parte de dados na janela Wx [ k- Ax, k + Bx] atenda a condição predefinida Cx é de 3/4, e P(n) pode ser calculada usando os dois fatores, isto é, a quantidade de janelas e a probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px + Bx ] atenda a condição predefinida Cx.
[0171] Portanto, se o ponto divisório potencial k é um ponto divisório de corrente de dados depende de que ocorra que pelo menos uma parte de dados em cada janela das 24 janelas consecutivas atende a condição predefinida Cx, um cálculo pode ser realizado usando-se as seguintes fórmulas:
P(1)=1, P(2), ..., P(23)=1, P(24)=1-(3/4^24, e
P(n)=1/4*P(n-1)+1/4*(3/4)*P(n-2)+...+1/4*(3/4^23*P(n-24).
[0172] Após o cálculo, P(5*1024)=0,78, P(11*1024)=0,17, e P(12*1024)=0,13. Isto é, nenhum ponto divisório de corrente de dados é encontrado com uma probabilidade de 13% após se prosseguir com uma busca
Petição 870160008725, de 11/03/2016, pág. 408/698
137/200 para um ponto a uma distância de 12 KB a partir de uma posição inicial/ponto divisório de corrente de dados anterior de uma corrente de dados, e é realizada uma divisão forçada. Uma função de densidade de um ponto divisório de corrente de dados é obtida usando essa probabilidade, e após a integração, é obtido que em média, um ponto divisório de corrente de dados é encontrado após se prosseguir com uma busca para um ponto a uma distância de cerca de 7,6 KB a partir da posição inicial/ponto divisório de corrente de dados anterior da corrente de dados, isto é, uma comprimento de fatia comum é de cerca de 7,6 KB. Diferente de que pelo menos uma parte de dados em 11 janelas consecutivas atende uma condição predefinida com uma probabilidade de 1/2, um algoritmo CDC convencional pode alcançar um efeito de um comprimento de fatia comum ser de 7,6 KB apenas quando uma janela atende uma condição com uma probabilidade de 1/2Λ12.
[0173] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 23, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [ k- Ax, k+Bx ] e uma condição predefinida Cx que corresponde à janela Wx [ k -Ax, k + Bx], onde x indica números naturais consecutivos de 1 a 11, e Ax e Bx são números inteiros. Uma probabilidade de que pelo menos uma parte de dados na janela Wx [ k- Ax, k + Bx] atenda a condição predefinida Cx é de 1/2 A =171, Bj=-2; A2=172, B2=-3; A3=173, B3=-4; A4=174, B4=-5; A5=175, B5=-6; A6 =176, B6=-7; A7=177, B7 =-8; As=178, B8=-9; A9=179, B9=-10; 40=17Ü, Bw=-1; A11=169, B11=0. C1=C2 = C3=C4=C5 = C6=C7=C8=C9= C10= C11. ka é um ponto divisório de corrente de dados, e uma direção de buscar um ponto divisório de corrente de dados mostrada na Figura 23 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial kt. De acordo com a
Petição 870160008725, de 11/03/2016, pág. 409/698
138/200 regra predefinida no servidor para desduplicação 103, para o ponto divisório potencial k . Wx [k - Ax, k + Bx] e a condição predefinida Cx que corresponde à janela Wx [ k- Ax, k + Bx] são determinadas, onde x indica números naturais consecutivos de 1 a 11. Onze (11) janelas determinadas são Wn[ k,-171, k, -2],
Wi2[ k,-172, k, -3],
Wi3[ k,-173, k, -4], Wi4[ k,-174, k, -5], Wi5[ k, -175, k, -6], Wi6[ k,
-176, ki -7], W/7[ ki -177, ki -8], W,s[ ki-178, ξ. -9], Wig [ kt-179, kt-10], Wno[ kt-170, kt-1], e W-u [kt-169, k, ] separadamente. É determinado se pelo menos uma parte de dados em W{1[ kt-171, kt -2] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em W· 2 [ k,-172, k, -3] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wt3[k, -173, k, -4] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W,4 [k,-174, k, -5] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Ws [ k,-175, k, -6] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wi6[ k,-176, k, -7] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em W,7[k,-177, k, -8] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em WJ k, 178, k, -9] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wi9[k,-179, k,-10] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [k, -170, k, -1] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em W-ní k,-169, k, ] atende a condição predefinida Cu. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C,, a pelo menos uma parte de dados na janela Wt2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W· 4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wi5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wi6 atende a condição predefinida C6, a pelo menos uma
Petição 870160008725, de 11/03/2016, pág. 410/698
139/200 parte de dados na janela w.7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wi8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wt 9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela wi10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wni atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, conforme mostrado na Figura 24, o fato de que a pelo menos uma parte de dados em Wi3[ p13-169, pi3] não atende a condição predefinida C3, 11 bytes são pulados a partir de um ponto pi3 ao longo de uma direção de buscar um ponto divisório de corrente de dados é usado como um exemplo para descrição. Conforme mostrado na Figura 24, quando é determinado que W3 não atende a condição predefinida C3, a partir de kt que serve como um ponto inicial, N bytes são pulados ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B3 || + maxx (|| Ax ||). Nessa modalidade, N=7, e um próximo ponto divisório potencial é obtido em uma posição de extremidade de um sétimo byte. Para diferenciação do ponto divisório potencial ki , o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103, para o ponto divisório potencial kj, 11 janelas Wjx [ kj - Ax, kj + Bx] são determinadas, e são Wj1[ kj-171, kj -2], Wj2[ kj-172, kj -3], Wj3[ kj-173, kj -4], WJ4[ kj-174, kj -5], Wj5[ kj-175, kj-6], Wj6[ kj-176, kj 7], Wj 7[ kj-177, kj -8], Wj8[ kj-178, kj -9], Wj9[ kj-179, kj-10], Wfl0[ kj-170, kj 1], e Wj11[ kj-169, kj ] separadamente. É determinado se pelo menos uma parte de dados em Wj1[kj-171, kj -2] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj2[ kj-172, kj -3] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[ kj -173, kj -4] atende a condição predefinida C3, é determinado se pelo
Petição 870160008725, de 11/03/2016, pág. 411/698
140/200 menos uma parte de dados em Wj4[-174, kj-5] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em W I kj 175, kj -6] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[kj-176, kj -7] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[kj-177, kj-8] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj -178, kj -9] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[kj-179, kj-10] atende a condição predefinida C10, é determinado se pelo menos uma parte de dados em Wjto[ kj -170, kj-1] atende a condição predefinida C10 e é determinado se pelo menos uma parte de dados em Wj11[kj-169, kj ] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 atende a condição predefinida Cx, a pelo menos uma parte de dados na janela W} 2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela W atende a condição predefrnda C,, a pelo menos uma parte de dados na janela W4 atende a condução predefirida C, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wj11 atende a condição predefinida C11, o ponto divisório potencial corrente k} é um ponto divisório de corrente de dados, e os dados
Petição 870160008725, de 11/03/2016, pág. 412/698
141/200 entre k} e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e de acordo com a regra predefinida no servidor para desduplicação 103, é determinado se o próximo ponto divisório potencial é ou não um ponto divisório de corrente de dados. Quando é determinado que o ponto divisório potencial k} não é um ponto divisório de corrente de dados, um próximo ponto divisório potencial é obtido de uma maneira igual àquela de kt, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o método supracitado, se o próximo ponto divisório potencial é um ponto divisório de corrente de dados. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado. Certamente, a implantação do método é restringida por um comprimento da fatia de dados máxima e um tamanho de um arquivo que forma a corrente de dados, o que não é descrito novamente no presente documento.
[0174] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 25, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [ k- Ax, k + Bx ] e uma condição predefinida Cx que corresponde à janela Wx [ kAx, k+Bx ], onde x indica números naturais consecutivos de 1 a 11. . 4=166, B. =3; A2=167, B2 =2; A3=168, B3=1; A4=169, B4=0; A5=170, B5=-1; A6=171, B6 =2; A7=172, B7=-3; A8=173, B8=-4; A9=174, B9-5; 4,0=175, Bw=-6; A„=176, Bjj=-7. C1=C2= C3=C4 = C5=C6 = C7= C8 = C9= C10= C11 e as 11 janelas são W\ [k166, k+3], W2 [k-167, k+2], W3 [k-168, k+1], W4 [k-169, k], W5 [k-170, k-1], W6 [k-171, k-2], W7 [k-172, k-3], W8 [k-173, k-4], W9 [k-174, k-5], W10 [k-175, k-6], e Wn [k-176, k-7] separadamente. ka é um ponto divisório de corrente de dados, e uma direção de buscar um ponto divisório de corrente de dados
Petição 870160008725, de 11/03/2016, pág. 413/698
142/200 mostrado na Figura 25 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k,. Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, para o ponto divisório potencial k,, 11 janelas Wx [k- Ax, k+ Bx ] e a condição predefinida Cx que corresponde à janela Wix [k- Ax, k+ Bx ] são determinadas, onde x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 25, para o ponto divisório potencial k,, as 11 janelas que são determinadas Wn[k,-166, k, +3], W-2[k,-167, k, +2], Wi3[k,-168, kt +1], W14[ k, -169, k, ], WI5[ k,-170, kt-1], Wi6 [ kt-171, kt -2], W„ [ kt-172, kt -3],
W8Í k, -173, k, -4], Wi9[ k, -174, k, -5], WU k,-175, k, -6], e Wni[ k,-176, k, -7] separadamente. É determinado se pelo menos uma parte de dados em W 1[k
166, k, +3] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wi2[k,-167, k, +2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W,3[ k,-168, k, +1] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em
W4[ k,-169, k, ] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em W5[k-170, k, -1]atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em W6[ k,-171, k, -2] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wi7 Wi7[k,-172, k,-3] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em W,8[k,-173, k, -4] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em
W9 [k,-174, k, -5] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em W,10[ k,-175, k, -6] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WÜ1 [k, -176, k, -7] atende a condição predefinida Cu. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 414/698
143/200
C1, a pelo menos uma parte de dados na janela Wi2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wt4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wi7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela W8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela W9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela WI10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wt11 atende a condição predefinida C11, o ponto divisório potencial corrente kt é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, W 7 [ k-172, k -3] mostrada na Figura 26, N bytes são pulados a partir do ponto divisório potencial kt ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B7 || + maxx (|| Ax ||). Em uma maneira de implantação mostrada na Figura 26, os N bytes que são pulados não são maiores que 185 bytes, e nessa modalidade, N=5, de modo a se obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial kt, o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 25, para o ponto divisório potencial kj, 11 janelas são determinadas, e são Wj1[ kj-166, kj +3], Wj2[ kj-167, kj +2], Wj3[ kj-168, k} +1], Wj4[ kj-169, kj ], Wj5[ k}-170, k} 1], Wj6[ kj-171, kj -2], Wj7[ kj-172, kj -3], Wj.[ kj-173, kj -4], Wft kj-174, kj-5], Wj10[kj-175, kj -6], e Wj11[kj-176, kj -7] separadamente. É determinado se pelo menos uma parte de dados em Wj1[ kj-166, kj +3] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj2[ k2
Petição 870160008725, de 11/03/2016, pág. 415/698
144/200
167, kj +2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[ kj-168, kj +1] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wj 4[ kj-169, kj ] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[kj-170, kj-1] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[kj-171, kj-2] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ kj 172, kj -3] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[kj-173, kj-4] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ kj-174, kj-5] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[ kj-175, kj -6] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wj11[ kj-176, kj -7] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wfl atende a condição predefinida C, a pe^ menos uma parte de dados na janela Wj2 atende a condição predefinida C2 , a pe^ menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wj6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma
Petição 870160008725, de 11/03/2016, pág. 416/698
145/200 parte de dados na janela WjU atende a condição predefinida C„, o ponto divisório potencial corrente é um ponto divisório de corrente de dados, e os dados entre k} e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e de acordo com a regra predefinida no servidor para desduplicação 103, é determinado se o próximo ponto divisório potencial é um ponto divisório. Quando é determinado que o ponto divisório potencial kj não é um ponto divisório de corrente de dados, um próximo ponto divisório potencial é obtido de uma maneira igual àquela de kt, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é um ponto divisório. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0175] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 27, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [k- Ax, k+ Bx ] e uma condição predefinida Cx que corresponde à janela Wx [kA, k+ Bx ], onde x indica números naturais consecutivos de 1 a 11. 4=169, B. =0; A2=170, B2=-1; A3=171, B3=-2; A4=172, B4=-3; A5=173, B5=-4; A6=174, B6 =-5; A7=175, B7 =-6; A8=176, Bs=-7; A9=177, B9 =-8; A,o=168, Bw=1; A„=179, B11=3. C1=C2 =C3=C4 = C5=C6 = C7= C8 = C9= C10áC11, e 11 janelas são are W\ [k169, k], W2[k-170, k-1], W3[k-171, k-2], W4[k-172, k-3], W5[k-173, k-4], W6[k-174, k-5], W7[k-175, k-6], W8[k-176, k-7], W9[k-177, k-8], W10[k-168, k+1], e Wn [k179, k+3] separadamente. ka é um ponto divisório de corrente de dados, e uma direção de buscar um ponto divisório de corrente de dados mostrado na Figura 27 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser
Petição 870160008725, de 11/03/2016, pág. 417/698
146/200 pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial kt. Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, para o ponto divisório potencial ki, uma janela Wix [kt - Ax, ki + Bx ] é determinada, onde x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 27, para o ponto divisório potencial ki, 11 janelas que são determinadas são Wn[ kt-169, kt ], Wt 2[ kt-170, kt-1], Wi3[ kt-171, kt -2], Wi4[ ki
172, kt -3], WAki-173, kt -4], Wi6 [ kt-174, kt -5], Wt7(kt-175, kt -6], ^8[ kt-176, kt 7], Wi9[ ki-177, ki -8], Wi10 [ kt-168, kt +1], e Win[ kt-179, kt +3] separadamente. É determinado se pelo menos uma parte de dados em Wi.1[ki-169, ki ] atende a condição predefinida Cx, é determinado se pelo menos uma parte de dados em W2[kt-170, kt-1] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wi3 [ ki -171, ki -2] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wi4[ ki-172, ki -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5[ ki-173, ki -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wi6[ ki-174, ki -5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em W7[ ki 175, ki -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wi8[ kt-176, ki -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wi9 [ki-177, ki -8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [kt-168, kt +1] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em W-níki-179, ki +3] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida Cx, a pelo menos uma parte de dados na janela Wt2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela W 3 atende a condição predefinida C3, a pelo menos
Petição 870160008725, de 11/03/2016, pág. 418/698
147/200 uma parte de dados na janela Wi4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wi5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wi6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wi7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wi8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wi9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wi10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela WÜ1 atende a condição predefinida C11, o ponto divisório potencial corrente ki é um ponto divisório de corrente de dados. Quando é determinado que a pelo menos uma parte de dados na janela WÜ1 não atende a condição predefinida Cu, 1 byte é pulado a partir do ponto divisório potencial k, ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial ki, o novo ponto divisório potencial é representado como kj no presente documento. Quando a pelo menos uma parte de dados em qualquer janela das 10 janelas Wa, Wt2, WI3, Wt4,
W,9, e Wao não atende a condição predefinida correspondente, por exemplo, W-4Í k,-172, k, -3] mostrada na Figura 28, N bytes são pulados a partir do ponto kt ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B4 || + maxx(|| Ax ||). Em uma maneira de implantação mostrada na Figura 28, os N bytes que são pulados não são maiores que 182 bytes, e nessa modalidade, N=6, de modo a obter um novo ponto divisório potencial. Para diferenciação do ponto divisório potencial ki o novo ponto divisório potencial é representado como kj no presente documento. De acordo com a regra predefinida no servidor para desduplicação 103 na maneira de implantação mostrada na Figura 27, janelas determinado para o ponto divisório potencial kj são WJ3[ kj-169, kj ], Wj2[ kj-170, kj-1], Wj3[ kj-171, kj -2], W]4[ kj -172, kj -3], Wj5[ kj-173, kj -4], WJ6[ kj-174, kj -5], Wy7[ kj-175, kj-6], kj Petição 870160008725, de 11/03/2016, pág. 419/698
148/200
176, kj -7], WJ9[ kj-177, kj -8], WJ1O[ k}-168, k} +1], e Wjn[ kj-179, kj +3] separadamente. É determinado se pelo menos uma parte de dados em j kj -169, kj ] atende a condição predefinida Cx, é determinado se pelo menos uma parte de dados em Wj2[kj-170, kj-1] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wj3[ kj-171, kj -2] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wj 4[ kj-172, kj -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[kj-173, kj-4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em j kj 174, kj-5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[ kj-175, kj -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj-176, kj -7]] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ kj-177, kj -8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[kj-168, kj +1] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WjU [kj-179, kj +3] atende a condição predefinida C11. Certamente, nessa modalidade da presente invenção, a regra também é seguida quando é determinado se o ponto divisório potencial ka é um ponto divisório de corrente de dados, a implantação específica não é descrita novamente, e referência pode ser feita à descrição de determinação do ponto divisório potencial kt. Quando é determinado que a pelo menos uma parte de dados na janela Wj1 atende a condição predefinida Cx, a pelo menos uma parte de dados na janela Wj2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wj4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela W,s atende a concisão predefinida C , a pelo menos uma parte de dados na Janela atentte a condão preteMda C, a peto menos uma parte de dados na janela Wj7 atende a condição predefinida C7, a
Petição 870160008725, de 11/03/2016, pág. 420/698
149/200 pelo menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela W atende a condição predefinida C11, o ponto divisório potencial corrente é um ponto divisório de corrente de dados, e os dados entre k} e ka formam 1 (uma) fatia de dados. Entretanto, um tamanho mínimo de fatia de 4 KB é pulado de uma maneira igual àquela de ka para se obter um próximo ponto divisório potencial, e de acordo com a regra predefinida no servidor para desduplicação 103, é determinado se o próximo ponto divisório potencial é ou não um ponto divisório. Quando é determinado que o ponto divisório potencial kj não é um ponto divisório de corrente de dados, um próximo ponto divisório potencial é obtido de uma maneira igual àquela de kt, e é determinado, de acordo com a regra predefinida no servidor para desduplicação 103 e o supracitado método, se o próximo ponto divisório potencial é ou não um ponto divisório. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0176] Com base na busca de um ponto divisório de corrente de dados mostrado na Figura 3, em uma maneira de implantação mostrada na Figura 29, uma regra é predefinida em um servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar 11 janelas Wx [ Px - Ac, Px+Bx ] e uma condição predefinida Cx que corresponde à janela Wx [ Px --A-, px+Bx], onde x indica números naturais consecutivos de 1 a 11 separadamente, onde uma probabilidade de que pelo menos uma parte de dados na janela Wx [ px - Ax, px+Bx ] atenda uma condição predefinida é de 1/2.
A=169, B,=0; A2=171, B2 =-2; A3=173, B3=-4; A4=175, B4=-6; A5=177, B5=-8;
A6=179, B6=-10; A7=181, B7=-12; A8=183, B8=-14; A9=185, B9-16; Aw=187,
B10=-18; A11=189, B11=-20. Cx=C2 = C3=C4=C5=C6 = C7= C8 = C9= C10= Cn, e as 11
Petição 870160008725, de 11/03/2016, pág. 421/698
150/200 janelas são WJk-169, k], W2[k-171, k-2], W3[k-173, k-4], W4[k-175, k-6], W5 [k177, k-8], W6[k-179, k-10], W7[k-181, k-12], W8[k-183, k-14], W9[k-185, k-16], W10 [k-187, k-18], e w11[k-189, k-20] separadamente. ka é um ponto divisório de corrente de dados, e uma direção de buscar um ponto divisório de corrente de dados mostrada na Figura 29 é da esquerda para a direita. Após uma fatia de dados mínima de 4 KB ser pulada a partir do ponto divisório de corrente de dados ka, uma posição de extremidade da fatia de dados mínima de 4 KB serve como um próximo ponto divisório potencial k., e um ponto pix é determinado para o ponto divisório potencial k.. Nessa modalidade, de acordo com a regra predefinida no servidor para desduplicação 103, x indica números naturais consecutivos de 1 a 11 separadamente. Na maneira de implantação mostrada na Figura 29, de acordo com a regra predefinida, 11 janelas determinadas para o ponto divisório potencial k. são Wn[ k.-169, k. ], W 2[ ki
171, ki -2], W/3[ ki-173, k. -4], Wi4[ kt-175, kt -6], W5[ kt-177, kt -8], Wi6 [ kt-179, kt 10], W7[ki-181, kt-12], Wi3[ki-183, k-14], Wi9 [kt-185, kt-16], Wii0[ki-187, k
18], e W-n[ki -189, kt -20] separadamente. É determinado se pelo menos uma parte de dados em Wi1[kt-169, kt ] atende a condição predefinida C, é determinado se pelo menos uma parte de dados em W2 [k.-171, k. -2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W.3[k. -173, k. -4] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W.4 [k.-175, k. -6]atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Ws [ ki-177, ki -8] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em W.6 [kt-179, kt-10] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wi7 [k.-181, k.-12] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em WJ k. 183, kt-14] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9 [k.-185, k.-16] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [k. -187, k.-18] atende
Petição 870160008725, de 11/03/2016, pág. 422/698
151/200 a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wni[ kt-189, kt -20] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C}, a pelo menos uma parte de dados na janela Wt2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wi3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wi5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wi7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela W8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela W9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wno atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wt11 atende a condição predefinida Cu, o ponto divisório potencial corrente k, é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das 11 janelas não atende a condição predefinida correspondente, por exemplo, conforme mostrado na Figura 30, a pelo menos uma parte de dados em W4[k-175, kt -6] não atende a condição predefinida C4, um próximo ponto divisório potencial é selecionado. Para diferenciação do ponto divisório potencial k , o próximo ponto divisório potencial é representado como kj no presente documento, onde kj está localizado à direita de kt, e uma distância entre kj e kt é de 1 byte. Conforme mostrado na Figura 30, de acordo com a regra predefinida para o servidor para desduplicação 103, para o ponto divisório potencial kj, 11 janelas são determinadas, e são Wj1[ kj-169, kj ], Wj2[ kj-171, kj -2], Wj3[ kj-173, kj -4], kj-175, kj -6], Wy5[ kj-177, kj 8], Wj6[kj-179, kj-10], Wj7[kj-181, kj-12], Wy8[kj-183, kj-14], Wy9[kj-185, kj 16], Wj10[kj-187, kj-18], e Wj11[kj-kj 189, kj-20] separadamente, onde C}=C2 =C3=C4= C5=C6=C7=C8=C9= C10= Cjj. É determinado se pelo menos uma parte
Petição 870160008725, de 11/03/2016, pág. 423/698
152/200 de dados em Wjl[kj-169, kj ] atende a condição predefinida C1, é determinado se pelo menos uma parte de dados em Wj2[kj-171, kj-2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W73[ kj 173, kj -4 atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wj4[kj-175, kj-6] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ kj-177, kj-8] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ kj-179, kj-10] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[kj-181, kj-12]atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj 183, kj-14] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ kj-185, kj-16] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj1o[ kj -187, kj-18] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wj11[ kj-189, kj -20] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela W]X atende a condição predefinida Cx, a pelo menos uma parte de dados na janela Wj2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wj3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela W}4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wj5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela W atende a concisão predefinida C, a pelo menos uma parte de dados na Janela W atentte a condão predeMda f,, a peto menos uma parte de dados na janela Wj8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wj9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wj10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela WjU atende a condição predefinida C11, o ponto divisório potencial corrente kj é um ponto divisório de corrente de dados, e os dados entre kj e ka formam 1 (uma) fatia
Petição 870160008725, de 11/03/2016, pág. 424/698
153/200 de dados. Quando é determinado que a pelo menos uma parte de dados em qualquer janela das janelas W}1, W}2, Wj3, W}4, Wj5, Wj6, WP, Wj8, Wj9, WJ10, e WjU não atende uma condição predefinida, por exemplo, conforme mostrado na Figura 31, quando a pelo menos uma parte de dados em WJ3[ kj-173, kj -4] não atende a condição predefinida C3, kj está localizado à direita de kt e N bytes são pulados a partir de kt ao longo da direção de buscar um ponto divisório de corrente de dados, onde os N bytes não são maiores que || B4 || + maxx(|| Ax ||). Na maneira de implantação mostrada na Figura 28, os N bytes não são maiores que 195 bytes, e nessa modalidade, N=15, de modo a obter um próximo ponto divisório potencial. Para diferenciação dos pontos divisórios potenciais kt e kj, o próximo ponto divisório potencial é representado como kt.
De acordo com a regra predefinida para o servidor para desduplicação 103 na maneira de implantação na Figura 29, para o ponto divisório potencial kt, 11 janelas são determinadas, e são Wn[ k,-169, k, ], W, 2[ k,-171, k, -2], Wn[ k,-173, kl -4], Wl4[ k,-175, k, -6], Wl5[ kt-177, kt -8], Wl6[ kt-179, kt-10], Wl7[ kt-181, kt
12], Wl8[k,-183, k,-14], Ww[k,-185, k,-16], Wno[k,-187, k,-18], e Wm[kt-189, k,
-20] separadamente. É determinado se pelo menos uma parte de dados em Wn[kt-169, kt] atende a condição predefinida Cx, é determinado se pelo menos uma parte de dados em Wt2 [kt-171, k, -2]atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em W,3[ kt-173, kt -4] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em W,4[k,-175, k,-6]atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wl5[kt-177, kt-8] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em W, 6[ k, 179, kt-10] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em W,7 [ ki-181, ki-12] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em W,8 [ki-183, ki-14] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9 [ki-185, ki-16] atende a condição predefinida C9, é determinado se pelo
Petição 870160008725, de 11/03/2016, pág. 425/698
154/200 menos uma parte de dados em Wl10[kl-187, kl-18] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em [ kl-189, kl -20] atende a condição predefinida C11. Quando é determinado que a pelo menos uma parte de dados na janela Wn atende a condição predefinida C1, a pelo menos uma parte de dados na janela Wl2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wl3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wl4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wl 5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wl6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wl7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wl8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wl9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wl10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wl11 atende a condição predefinida C11, o ponto divisório potencial corrente kl é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela das janelas W„, Wl2, Wl3, Wl4, Wl5, Wl6, Wl7, WK, Wl9, Wlw, e Wln não atende uma condição predefinida, um próximo ponto divisório potencial é selecionado. Para diferenciação dos pontos divisórios potenciais kt, k}, e kl, o próximo ponto divisório potencial é representado como km, onde km está localizado à direita de kl, e uma distância entre km e kl é de 1 byte. De acordo com a regra predefinida para o servidor para desduplicação 103 na modalidade mostrada na Figura 29, 11 janelas determinadas para o ponto divisório potencial km são Wm1[ km -169, km ], [ km-171, km -2], W^ km-173, km -4], ' km-175, km -6],
Wm5[ km -177, km -8], W km -179, km-10], W \ km-181, km-12], W,s[ km-183, km -14], W | km-185, km-16], WwW[ km-187, km-18], 6 W„11[ km-189, km -20] separadamente. É determinado se pelo menos uma parte de dados em Wm1 [km -169, km ] atende a condição predefinida C1, é determinado se pelo menos
Petição 870160008725, de 11/03/2016, pág. 426/698
155/200 uma parte de dados em Wm2 [km -171, km -2] atende a condição predefinida C2, é determinado se pelo menos uma parte de dados em Wm3[ km -173, km -4] atende a condição predefinida C3, é determinado se pelo menos uma parte de dados em Wm4 [km -175, km -6] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wm5[ km-177, km -8] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wm6[ km 179, km -10] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wm7 [ km -181, km -12] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wm8[ km -183, km-14] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wm9 [km-185, km-16]atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wm,o[ km -187, km -18] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm11[ km -189, km -20] atende a condição predefinida Cn. Quando é determinado que a pelo menos uma parte de dados na janela Wm1 atende a condição predefinida Cx, a pelo menos uma parte de dados na janela Wm2 atende a condição predefinida C2, a pelo menos uma parte de dados na janela Wm3 atende a condição predefinida C3, a pelo menos uma parte de dados na janela Wm4 atende a condição predefinida C4, a pelo menos uma parte de dados na janela Wm5 atende a condição predefinida C5, a pelo menos uma parte de dados na janela Wm 6 atende a condição predefinida C6, a pelo menos uma parte de dados na janela Wm7 atende a condição predefinida C7, a pelo menos uma parte de dados na janela Wm8 atende a condição predefinida C8, a pelo menos uma parte de dados na janela Wm9 atende a condição predefinida C9, a pelo menos uma parte de dados na janela Wm10 atende a condição predefinida C10, e a pelo menos uma parte de dados na janela Wm11 atende a condição predefinida Cxx, o ponto divisório potencial corrente km é um ponto divisório de corrente de dados. Quando a pelo menos uma parte de dados em qualquer janela não atende a condição predefinida, o pulo é executado de
Petição 870160008725, de 11/03/2016, pág. 427/698
156/200 acordo com a solução descrita acima para se obter um próximo ponto divisório potencial, e é determinado se o próximo ponto divisório potencial é ou não um ponto divisório.
[0177] Uma modalidade da presente invenção fornece um método para determinar se pelo menos uma parte de dados em uma janela Wlz [ kt - A, k + Bz ] atende uma condição predefinida Cz. Nessa modalidade, é determinado, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [ kl - Az, kl + Bz ] atende a condição predefinida Cz, e a maneira de implantação mostrada na Figura 21 é usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, uma janela Wn [kt -169, kt ] é determinada para um ponto divisório potencial kt, e é determinado se pelo menos uma parte de dados em Wi1 [ kt-169, kt ] atende uma condição predefinida C1. Conforme mostrado na Figura 32, Wn representa a janela Wn [kt-169, kt ], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [kt -169, kt ] atende a condição predefinida C1. Na Figura 32, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os 5 bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados por am1, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e, portanto, bits que correspondem aos 255 bytes podem '1,8 a2,8 ser representados como:
' a11 a2,1 a1,2 a2,2
a.
, onde quando amn =1, Vamn ’ ’ ’ a255,8 y representa qualquer um dentre am1, ..., e am8, e uma matriz Va é obtida de acordo com uma relação de conversão a255,2 a255,1 =1, e quando a =, V =-1, onde a ’ ~ m,n ’ am,n ’ m ,n entre a e V m ,n am,n a partir dos bits que correspondem aos 255 bytes, e pode ser
Petição 870160008725, de 11/03/2016, pág. 428/698
157/200 (
representada como: | F a1,1 Va 2,1 | a1,2 V 22 · a2,2 | v a1,8 V v a 2,8 |
V V a 255,1 | V a255,2 | .. V v a 255,8 J |
Uma grande quantidade de números aleatórios é selecionada para formar uma matriz. Uma vez formada, a matriz formada pelos números aleatórios permanece inalterada. Por exemplo, 255*8 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição específica (a distribuição normal é usada como um exemplo no presente documento) para formar uma matriz R:
h1,2 | h18 Ί | |
h2,1 | h2,2 | h ri2,8 |
h h
V 255,1 255,2 h
255,8 J onde números aleatórios de uma emésima linha da matriz Va e de uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam - Vam,i* hm,1 + Vam,2* hm,2+-'+ Vam ,8* hm ,8' S a1 ’ Sa 2’ e S 255 são a 255 obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sa1, Sa2, ...,..., e Sa255 é contada. Uma vez que a matriz R segue uma distribuição normal, Sam ainda segue uma distribuição normal assim como a matriz R. De acordo com uma teoria da probabilidade, uma probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sa1, Sa2, ...,..., e Sa255 seja maior que 0 é de 1/2, e portanto, K atende a distribuição binomial:
P(k = n) = C^C1)n (1) = c (1) 255 2 2 255 2
De acordo com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre Sa1, Sa2, ...,..., e Sa255 é um número par; uma probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em ^1[ ki-169,
Petição 870160008725, de 11/03/2016, pág. 429/698
158/200
Ã/Jatende a condição predefinida A. Quando Ké um número ímpar, isso indica que a pelo menos uma parte de dados em YJ^-169, A/Jnão atende a condição predefinida Q. Ç no presente documento significa que a quantidade K, que é obtida de acordo com a maneira supracitada, de valores maiores que 0 entre Sal, Sa2, e Sa255 é um número par. Na maneira de implantação mostrada na Figura 21, para [ξ-169, ξ], Wi2 [ξ-170, ξ-l], W^A-171, A2], YJY172, k,-3], ^AA-173, k,-4], W16 [£,-174, kt-5], Wi7 [£,-175, kt-6], WiS [ξ-176, kt-7], Wt9[kt-177, kt-8], WtW[kt-178, kt-9], e ^[£,-179, £,-10], as janelas são de tamanho igual, isto é, todas as janelas têm um tamanho de 169 bytes, e entretanto, maneiras de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em ^[£,-169, £,] atende a condição predefinida CA Portanto, conforme mostrado na Figura 32, representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela Wj2 [//,-170, £,-l] atende uma condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por8 bits, que são indicados como bml,e bmg, representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e portanto, bits que correspondem
Ã,2 | |
k2,l | ^2,2 |
255,2 aos
255 bytes %
, onde quando podem ser representados como:
bm,n =1, Am,n =1, θ quando =0, Vbm,n =-
255,1
1, onde bmn representa qualquer um dentre bml, e bm8, e uma matriz JA é obtida de acordo com uma relação de conversão entre bmn e Vbmn a partir dos bits que correspondem aos 255 bytes, e pode ser representada como:
Petição 870160008725, de 11/03/2016, pág. 430/698
159/200 %
rb1,1 | b1,2 | rb1,8 |
Vb21 | Vb2,2 . | . Vb2,8 |
b Vb 255,1 | Vb 255,2 . | . Vb255,8 |
. Uma maneira de determinar se pelo menos uma parte de dados em Wn [kt-169, kt ] atende uma condição predefinida é igual a uma maneira de determinar se pelo menos uma parte de dados na janela Wt 2 [kt -170, kt -1] atende uma condição predefinida; portanto a matriz R é usada: ' hu h2,1 h1,2 h2,2 h
V 255,1 h
255,2 h
255,8 / , e números aleatórios de uma emésima linha da matriz da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como
S = V * h + V * h + + V * h bm y bm,1 m,1 y bm,2 m,2 y bm,8 m,8 '
Sb1, Sb2, ..., e Sb255 são obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sb1, Sb2, ..., e Sb255 é contada. Uma vez que a matriz R segue uma distribuição normal, Sbm ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sb1, Sb2, ..., e Sb255 seja maior que 0 é de
1/2, portanto, K atende
P(k = n) = C.. (')n (J = c Λ 255 2 2 255 2 . De acordo distribuição binomial: com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre
Sb1, Sb2, ..., e Sb255 é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em W 2[ kt-170, kt-1] atende a condição predefinida C2. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em Wt2[ kt-170, kt-1] não atende a
Petição 870160008725, de 11/03/2016, pág. 431/698
160/200 condição predefinida C2. C2 no presente documento significa que a quantidade K, que é obtida de acordo com a maneira supracitada, de valores maiores que 0 entre sbl, Sb2, e sb255 é um número par. Na maneira de implantação mostrada na Figura 3, a pelo menos uma parte de dados em £,-i] atende a condição predefinida C2.
[0178] Portanto, conforme mostrado na Figura 32, representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela Wi3 [kt -171, £,-2]atende uma condição predefinida C3, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas Wn [£,-169, £,] e Wi2 [£,-170, £,-l] atende uma condição predefinida é usado para determinar se pelo menos dados em Wi3 [£,-171, kt-2\ atendem a condição predefinida C3. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em Wi3 \krVA, kt-2\ atende a condição predefinida. Conforme mostrado na Figura 32, representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela Wi4 [£,-172, kt-3] atende uma condição predefinida C4, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas ^[ξ-169, ξ], Wi2 [£,-170, £,-l], e Wj3 [£,-171, £,-2] atende uma condição predefinida é usado para determinar se a pelo menos uma parte de dados em ^4[£,-172, £,-3] atende a condição predefinida C4. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em ^.4[£,.-172, £,-3] atende a condição predefinida C4. Conforme mostrado na Figura 32, EBI representa 1 byte selecionado quando é determinado se pelo menos uma parte de dados na janela Wi5[£,-173, £,-4] atende uma condição predefinida C5, e há 42 bytes
Petição 870160008725, de 11/03/2016, pág. 432/698
161/200 entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Então, o método para determinar se pelo menos uma parte de dados nas janelas Wn[ ki-169, ki ], Wi 2[ ki-170, ki-1], Wt3[ kt -171, kt -2], e Wt4 [ kt-172, ki -3] atende uma condição predefinida é usado para determinar se pelo menos uma parte de dados em Wi5[ ki-173, ki -4] atende a condição predefinida C5. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em Wi5[ ki-173, ki -4] não atende a condição predefinida C5.
[0179] Quando a pelo menos uma parte de dados em Wi5[ ki-173, ki -4] não atende a condição predefinida C5, 7 bytes são pulados a partir de um ponto Pi 5 ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um próximo ponto divisório potencial kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wj1[ kj-169, kj ] é determinada para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela WJ1[ kj 169, kj ] atende a condição predefinida C, é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wj1[ kj-169, kj ] atende a condição predefinida C}. Portanto, conforme mostrado na Figura 33, WJ1 representa uma janela, e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados na janela atende a condição predefinida Cx. Na Figura 33, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os 5 bytes de dados selecionados são usados repetidamente 51 vezes para obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados como am1', ..., e am8', representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e, portanto, bits que correspondem aos 255 bytes
Petição 870160008725, de 11/03/2016, pág. 433/698
162/200 podem ser representados como:
C a 1 u1,1 a 1 u 2,1 a1,2' a2,2 a1,8 a2,8' , onde quando amn' =1 V '=1, e quando dentre V, ..., e amf , a '
V4 255,1 amn' =0, Vam,n' =-1, onde e uma matriz Va' é obtida de acordo com uma relação a ' u255,2 a
m,n a ' u255,8 J ' representa qualquer um de conversão entre a m,n ' e Vamn' a partir dos bits que correspondem aos 255 bytes, e pode ser representada como:
C v ' v a1,1
V ’ v a2,1
V ’ a1,2
V ’ a2,2
V ’ v a1,8
V ’ a2,8
V ’
V a255,1
V ' a255,2 maneira de determinar se pelo menos uma parte de dados na janela atende h, i h
2,8 uma condição predefinida é igual a uma maneira de determinar se pelo menos uma parte de dados na janela w„[ k,-169, hu h2,1 k, ] atende uma condição h1,2 h2,2 h
V Z255,1 h
255,2 h
rí255,8 J , e números predefinida. Portanto, a matriz R é usada:
aleatórios de uma emésima linha da matriz Va' e da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam ’ = Vam,1' * hm,1 + Vam,2' * hm,2+-+ Krnf * hm.8. Sa1', Sa2',e Sa255' são obtidos de acordo com o método, e uma quantidade K de valores que atendem uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sa1', Sa2', ..., e Sa255' é contada. Uma vez que a matriz R segue uma distribuição normal, Sam' ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre
Sa1', Sa2', ..., e Sa255' seja maior que 0 é de 1/2, e portanto, K atende a distribuição binomial:
P(k_n)_(2)
255-n _ cn ( 1 )255 _ C255 (2) . De acordo com um resultado de contagem, é determinado se a quantidade K de valores maiores
Petição 870160008725, de 11/03/2016, pág. 434/698
163/200 que 0 entre 5α1', Sa2,e Sa255' é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em
169, kj] atende a condição predefinida Cx. Quando Ké um número ímpar, isso indica que a pelo menos uma parte de dados em JF71[^7-169, não atende a condição predefinida Cx.
[0180] Uma maneira de determinar se pelo menos uma parte de dados em Wi2 [ξ -170, ξ -1] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em W'170, kr
1] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 33, ül representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela W]2[kj-170, £;-1] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Cinco (5) bytes de dados selecionados são usados repetidamente 51 vezes para se obter 255 bytes no total, de modo a aumentar a aleatoriedade. Cada um desses bytes é formado por 8 bits, que são indicados como bmX e bm8 , representando do primeiro bit ao oitavo bit de um emésimo byte nos 255 bytes, e, portanto, bits que correspondem aos 255 bytes podem ser representados h 1 ^1,2 h ' ^2,2 como:
( b ' ^1,1 h ' ^2,1 h ’ \m255,1 =0, ^„'=-1, h ' ^255,2 onde b.
> 1 m,n matriz Vb' é obtida de , onde quando Z>m„'=1, Am„'=1, e quando li ' 255,8 y representa qualquer um dentre bmX e bmS', e acordo com uma relação de conversão entre bt b 1 m,n uma ' ' e m,n bits que correspondem aos 255 bytes, e pode ser a partir dos
' Au | Ai,2 · | • Al,8 ' | |
representada como: | V v &2,1 | A2,2 · | • A2,8 |
^A255,l | A255,2 | A255,8y |
. Maneiras de se pelo menos
Petição 870160008725, de 11/03/2016, pág. 435/698
164/200 uma parte de dados nas janelas W2 [ p2-169, p2 ] e W2 [ q2-169, q2 ] atende a condição predefinida são as mesmas, e, portanto, a matriz R é ainda usada:
' A, h2,1 h1,2 h2,2 *1.8 Ί h
2,8 h
V '255,1 h
255,2 h
255,8 7 . Números aleatórios de uma emésima linha da matriz da emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como S' = Vbm,*hm, + V.'*h . +...+ Vbm8*h 8. Sbi', Sb2' e Sb255' são obtidos de acordo com o método, e uma quantidade K de valores atende uma condição específica (ser maior que 0 é usado como um exemplo no presente documento) entre Sb1', Sb2',..., e Sb255' é contada. Uma vez que a matriz R segue uma distribuição normal, Sbm' ainda segue uma distribuição normal assim como a matriz R. De acordo com a teoria da probabilidade, a probabilidade de que um número aleatório em distribuição normal seja maior que 0 é de 1/2; uma probabilidade de que cada valor entre Sb1', Sb2',..., e Sb255' seja maior que 0 é de 1/2, e, portanto, K atende a distribuição binomial:
P(k = n) = ( 1)(|)2SS- = C,’„(|)2SS
De acordo com um resultado de contagem, é determinado se a quantidade K de valores maiores que 0 entre
Sb1', Sb2' ,..., e Sb255' é um número par; a probabilidade de que um número aleatório em distribuição binomial seja um número par é de 1/2, e, portanto, K atende uma condição com uma probabilidade de 1/2. Quando K é um número par, isso indica que a pelo menos uma parte de dados em atende a condição predefinida C2. Quando K é um número ímpar, isso indica que a pelo menos uma parte de dados em WJ2[kJ-170, kJ-1]não atende a condição predefinida C2. Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wi3 [kt -171, kt -2] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em WJ3 [ kj-171, kj -
2] atende a condição predefinida C3. Similarmente, é determinado se pelo
Petição 870160008725, de 11/03/2016, pág. 436/698
165/200 menos uma parte de dados em Wj4[kj-172, kj -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em W [ kj 173, kj -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6 [kj-174, kj -5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj7[kj-175, kj -6] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8 [kj-176, kj -7] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj 9 [ kj-177, kj -8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10 [kj -178, kj -9] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wjii [ kj-179, kj 10]atende uma condição predefinida C11, que não são descritas novamente no presente documento.
[0181] Nessa modalidade, é determinado, usando-se uma função aleatória, se pelo menos uma parte de dados em uma janela Wiz [kt - Az, kt + Bz ] atende uma condição predefinida C z. A maneira de implantação mostrada na Figura 21 é ainda usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, uma janela W1[ k-169, k- ] é determinada para um ponto divisório potencial kt, e é determinado se pelo menos uma parte de dados em Wn [kt -169, kt ] atende a condição predefinida Cj. Conforme mostrado na Figura 32, Wn representa a janela Wn[ k-169, kt ], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em W-i [kt-169, kt ] atende a condição predefinida C1. Na Figura 32, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados . Em uma maneira de implantação, uma função hash é usada para calcular os cinco (5) bytes selecionados, e valores obtidos por meio de cálculo usando a função hash estão em distribuição fixa e uniforme. Se um valor obtido por meio de cálculo usando a função hash é um número par, é determinado que a pelo menos uma parte de dados em Wn [kt-169, kt ] atende
Petição 870160008725, de 11/03/2016, pág. 437/698
166/200 a condição predefinida Q. Isto é, Q representa que um valor obtido de acordo com a maneira supracitada e por meio de cálculo usando a função hash é um número par. Portanto, uma probabilidade de se pelo menos uma parte de dados em Wn[kt-169, kt ] atende uma condição predefinida é de 1/2. Na maneira de implantação mostrada na Figura 21, é determinado, usando uma função hash, se pelo menos uma parte de dados em Wt2 [kt-170, kt-1] atende uma condição predefinida C2, se pelo menos uma parte de dados em W3[ kt 171, kt -2] atende uma condição predefinida C3, se pelo menos uma parte de dados em Wi4 [kt-172, kt -3] atende uma condição predefinida C4, e se pelo menos uma parte de dados em Wi5[kt -173, kt -4] atende uma condição predefinida C5. Para implantação específica, referência pode ser feita à descrição da maneira de determinar, usando uma função hash, se pelo menos uma parte de dados em Wn[ kt-169, kt ] atende a condição predefinida Q na maneira de implantação mostrada na Figura 21, que não é descrita novamente no presente documento.
[0182] Quando a pelo menos uma parte de dados em Wsí kt-173, kt -4] não atende a condição predefinida C5, 7 bytes são pulados a partir do ponto divisório potencial kt ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wj1[ kj-169, kj ] é determinada para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wj1[kj-169, kj ] atende a condição predefinida Cx é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn[ kt 169, kt ] atende a condição predefinida C1. Portanto, conforme mostrado na Figura 33, W1 representa a janela Wj1[ kj-169, kj ] e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wj1[ kj-169, kj ] atende a condição predefinida C1. Na Figura 33, representa 1 byte
Petição 870160008725, de 11/03/2016, pág. 438/698
167/200 selecionado, e há 42 bytes entre dois bytes adjacentes selecionados Os 5 bytes selecionados a partir da janela Wfl[£,-169, k}] são calculados usandose uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em JF71[£,-169, k}] atende a condição predefinida CP Na Figura 33, uma maneira de determinar se pelo menos uma parte de dados em Wj2 [£, -170, £,-l] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em JF,2[£,-170, £,-1] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 33, ü representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela JF,2[£,-170, £,-1] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados ü. Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em JF72[£7-170, £,-1] atende a condição predefinida C2. Na Figura 33, uma maneira de determinar se pelo menos uma parte de dados em JF).3 [£,.-171, £,-2] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em JF,3[£,-171, £,.-2] atende a condição predefinida C3. Portanto, conforme mostrado na Figura 33, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela JF73[£7-171, kj-2] atende a condição predefinida C3, e há 42 bytes entre dois bytes adjacentes selecionados S. Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em JF,3[£,-171, £,.-2] atende a condição predefinida C3. Na Figura 33, uma maneira de determinar se pelo menos uma parte de dados em Wp[kj-112, kj-3] atende a condição predefinida C4 e uma maneira de determinar se pelo menos uma parte de dados na janela wi4 [£,-172, £,-3]] atende a condição predefinida C4. Portanto, conforme mostrado na Figura 33, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela ^4[£y-172, £,-3] atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 439/698
168/200
C4, e há 42 bytes entre dois bytes adjacentes selecionados Cinco (5) bytes selecionados são calculados usando-se uma função hash. Se um valor obtido é um número par, a pelo menos uma parte de dados em -1’2. k,3]atende a condição predefinida C4. De acordo com o supracitado método, é determinado se pelo menos uma parte de dados em Wj5\kj-Y13, £y-4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[kj-WÁ, kj-5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em JF77[^7-175, £7-6]atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em wAkr 176, kj-Ί] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9\kj-vn, £y-8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em JF71O[^-178, kr9\ atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wjn [ £,-179, £,-10] atende uma condição predefinida Cn, que não são descritas novamente no presente documento.
[0183] Nessa modalidade, é determinado, usando-se uma função aleatória, se pelo menos uma parte de dados em uma janela Wlz\krAz, k, + Bz} atende uma condição predefinida Cz. A maneira de implantação mostrada na Figura 21 é usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, uma janela ^.-169, kt] é determinada para um ponto divisório potencial ξ, e é determinado se pelo menos uma parte de dados em in Wn [ξ-169, kt] atende a condição predefinida C;. Conforme mostrado na Figura 32, Wn representa a janela em ^[ξ-169, £;], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ξ -169, ξ ] atende a condição predefinida Q. Na Figura 32, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como αγ, a2,
Petição 870160008725, de 11/03/2016, pág. 440/698
169/200 a 3, a 4, e a 5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer a5 de aλ, a2, a3, a4, e a5 atende 0<ar<255. a 1, a2, a3, a4, e a5 formam uma matriz 1*5. 256*5 números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição binomial para formar uma matriz R que é representada como h0,1 h0,2 ” ’ h0,5 : h1,1 h1,2 ” ’ h1,5 h h ·· · h
V 255,5 255,5 255,5 J [0184] A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a 1 e uma coluna em que a 1 está localizado. Por exemplo, se a1 =36, e a 1 está localizado em uma primeira coluna, um valor que corresponde a h361 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a 2 e uma coluna em que a 2 está localizado. Por exemplo, se a 2 =48, e a 2 está localizado em uma segunda coluna, um valor que corresponde a h482 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a 3 e uma coluna em que a 4 está localizado. Por exemplo, se a 4 =26, e a 4 está localizado em uma terceira coluna, um valor que corresponde a h264 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a5 e uma coluna em que onde a5 está localizado. Por exemplo, se a5 =88, e a5 está localizado em uma quinta coluna, um valor que corresponde a h885 é buscado. S1 = h361 + h482 + h26 3 + h26 4 + h88 5, e uma vez que a matriz R segue uma distribuição binomial, S1 também segue uma distribuição binomial. Quando S1 é um número par, a pelo menos uma parte de dados em Wn [kt -169, kt ] atende a condição predefinida C1; quando S1 é um número ímpar, a pelo menos uma parte de dados em Wn [kt -169, kt ] não atende a condição predefinida C1. Uma probabilidade de que S1 seja um número par é de 1/2, e C1 representa que S1 que é obtido por meio de cálculo de acordo com a maneira supracitada é um número par. Na modalidade mostrada na Figura
Petição 870160008725, de 11/03/2016, pág. 441/698
170/200
21, a pelo menos uma parte de dados em Wn [kt -169, Ã/Jatende a condição predefinida Q. Conforme mostrado na Figura 32, Ei representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados na janela Wi2 [Ãy-170, Ay -1] atende uma condição predefinida C2. Na Figura 32, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como b2, b3, b4, e b5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte Ei serve como um valor, e qualquer br de bx, b2, b3, b4, e b5 atende 0< br <255. bx, b2, b3, b4, e b5 formam uma matriz 1*5. Nessa maneira de implantação, as maneiras de determinar se pelo menos uma parte de dados em Wn e JVi2 atendem uma condição predefinida são as mesmas, e, portanto, a matriz R é ainda usada. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de bx e uma coluna em que bx está localizado. Por exemplo, se ^=66, e bx está localizado em uma primeira coluna, um valor que corresponde a h661 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b2 e uma coluna em que b2 está localizado. Por exemplo, se ô2=48, e b2 está localizado em uma segunda coluna, um valor que corresponde a h482 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b3 e uma coluna em que b3 está localizado. Por exemplo, se b3 =99, e b3 está localizado em uma terceira coluna, um valor que corresponde a h993 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b4 e uma coluna em que b4 está localizado. Por exemplo, se ô4=26, e b4 está localizado em uma quarta coluna, um valor que corresponde a h264 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b5 e uma coluna em que b5 está localizado. Por exemplo, se 65=90, e b5 está localizado em uma quinta
Petição 870160008725, de 11/03/2016, pág. 442/698
171/200 coluna, um valor que corresponde a h9o, é buscado. S 2 = h66>1 + h48,2 + h993 + h26,4 + h90 5, e uma vez que a matriz R segue uma distribuição binomial, S2 também segue uma distribuição binomial. Quando S2 é um número par, a pelo menos uma parte de dados em W,2 [k,-170, k, -1] atende a condição predefinida C2; quando S2 é um número ímpar, a pelo menos uma parte de dados em W2 [kt 170, k,-1] não atende a condição predefinida C2. Uma probabilidade de que S 2 seja um número par é de 1/2. Na modalidade mostrada na Figura 21, a pelo menos uma parte de dados em Wt2 [k,-170, k, -1] atende a condição predefinida C2. Usando-se a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wi3 [k,-171, k, -2] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em W 4 [ kt 172, kt -3] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5 [kt -173, k, -4] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados em W,6 [k,-174, k, -5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em W,7 [k, -175, kt -6] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wi8 [k, -176, k, -7] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9 [k, -177, kt -8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [k,-178, k, -9] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em W-u [k-179, k, -10] atende uma condição predefinida Cu. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em W5 [k -173, kt -4] não atende a condição predefinida C5, 7 bytes são pulados a partir do ponto divisório potencial k, ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wj1 [kj-169, kj ] é determinada
Petição 870160008725, de 11/03/2016, pág. 443/698
172/200 para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela WJX [ kj-Ί69, k ] atende a condição predefirnda C1 é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn [kt -169, kt ] atende a condição predefinida C1. Portanto, conforme mostrado na Figura 33, Wj1 representa a janela Wjj [ kj-169, kj ], e é determinado se a pelo menos uma parte de dados em Wj1 [ kj-169, kj ], atende a condição predefinida C1. Na Figura 33, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como aj, a2', a3', a4 , e a5' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer ar' de aj, a2', a3', a4', e a5' atende 0< ar'<255. aj, a2', a3', a4', e a5' formam uma matriz 1*5. A maneira de determinar se pelo menos uma parte de dados na janela Wj1 [kj-169, kj ] atende a condição predefinida C1 é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wj1 [ kj-169, kj ] atende a condição predefinida C1. Portanto, a matriz R é ainda usada, e é representada como:
' hu h1,1 ho,5 Λ h1,5 h
V 255,5 h0,2 hl,2 [0185] A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a1' e uma coluna em que a1' está localizado. Por exemplo, se a1' =16, e a1' está localizado em uma primeira coluna, um valor que corresponde a hj61 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a2' e uma coluna em que a2' está localizado. Por exemplo, se a2' =98, e a2' está localizado em uma segunda coluna, um valor que corresponde a h982 é buscado. A matriz R é submetida a uma busca por um valor correspondente de
Petição 870160008725, de 11/03/2016, pág. 444/698
173/200 acordo com o valor de a3 e uma coluna em que a3 está localizado. Por exemplo, se a3'=56, e a3 está localizado em uma terceira coluna, um valor que corresponde a h56 3 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a4' e uma coluna em que a4 está localizado. Por exemplo, se a4'=36, e a4' está localizado em uma quarta coluna, um valor que corresponde a h364 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de a5' e uma coluna em que a5' está localizado. Por exemplo, se a5'=99, e a5' está localizado em uma quinta coluna, um valor que corresponde a Λ99 5 é buscado. s/ = hg82+ h56 3 + h364+ hgg5, e uma vez que a matriz R segue uma distribuição binomial, s; também segue uma distribuição binomial. Quando s; é um número par, a pelo menos uma parte de dados em W^A-169, kj atende a condição predefinida Cj; quandos; é um número ímpar, a pelo menos uma parte de dados em JF71[^7-169, £y] não atende a condição predefinida Cf Uma probabilidade de que s/ seja um número paré de 1/2.
[0186] Uma maneira de determinar se pelo menos uma parte de dados em Wi2 [ £,-170, ξ -l] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj2[kr17(), kr 1] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 33 El· representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj2[kj-Y70, £7-l] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados.
Os bytes cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como bf b2', b3 , b4', e b3 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer br' de bx', b2', b3 , b4', e b5' atende Q<br' <255. bf b2', b3 , b4', e b5' formam uma matriz 1*5. A matriz R a mesma que
Petição 870160008725, de 11/03/2016, pág. 445/698
174/200 aquela usada quando é determinado se a pelo menos uma parte de dados na janela Wt2 [kt-170, kt-1] atende a condição predefinida C2 é usada. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de bi e uma coluna em que b1' está localizado. Por exemplo, se b1' =210, e b1' está localizado em uma primeira coluna, um valor que corresponde a h210>1 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b2' e uma coluna em que b2' está localizado. Por exemplo, se b2'=156, e b2' está localizado em uma segunda coluna, um valor que corresponde a h1562 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b3' e uma coluna em que b3' está localizado. Por exemplo, se b3' =144, e b3' está localizado em uma terceira coluna, um valor que corresponde a h144,3 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b4' e uma coluna em que b4' está localizado. Por exemplo, se b4' =60, e b4' está localizado em uma quarta coluna, um valor que corresponde a h60,4 é buscado. A matriz R é submetida a uma busca por um valor correspondente de acordo com o valor de b5' e uma coluna em que b5' está localizado. Por exemplo, se b5' =90, e b5' está localizado em uma quinta coluna, um valor que corresponde a h90,5 é buscado. s2' = h210>1+ h156,2+ h144,3 + h60,4 + h90,5. A mesma condição determinante de s2, quando s2' é um número par, a pelo menos uma parte de dados em Wj2[kj-170, kj-1]atende a condição predefinida C2, e quando s2' é um número ímpar, a pelo menos uma parte de dados em Wj 2[ kj-170, kj-1]não atende a condição predefinida C2. Uma probabilidade de que s2' seja um número par é de 1/2.
[0187] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wi3 [kt-171, kt -2] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj 3[ kj 171, kj -2] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[kj-172, kj-3] atende a condição
Petição 870160008725, de 11/03/2016, pág. 446/698
175/200 predefinida C4, é determinado se pelo menos uma parte de dados em WA k 173, kj -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[ kj-174, kj -5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj 7[ kj-175, kj -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj -176, kj -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ kj-177, kj-8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wfl0[kj 178, kj -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wj11 [ kj-179, kj-10] atende a condição predefinida Cu, que não são descritas novamente no presente documento.
[0188] Nessa modalidade, é determinado, usando-se uma função aleatória, se pelo menos uma parte de dados em uma janela Wiz [ kt - Az, kt + Bz ] atende uma condição predefinida C z. A maneira de implantação mostrada na Figura 21 é usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, uma janela Wn [ ki-169, ki ] é determinada para um ponto divisório potencial ki, e é determinado se pelo menos uma parte de dados em Wn [ki -169, ki ] atende uma condição predefinida C1. Conforme mostrado na Figura 32, W-i representa a janela Wn [kt-169, kt ], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [kt-169, ki ] atende a condição predefinida C1. Na Figura 32, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como a1, a2, a3, a4, e a5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer as de a1, a2, a3, a4, e a5 atende 0<as <255. a1, a2, a3, a4, e a5 formam uma matriz 1*5. 256*5 números aleatórios são selecionados a partir de números aleatórios que seguem uma
Petição 870160008725, de 11/03/2016, pág. 447/698
176/200 distribuição h0,1 h0,2 h1,1 h1,2 binomial para formar uma matriz R que é representada como:
h0,5 h1,5
256*5 números aleatórios são selecionados a partir de
números aleatórios que seguem uma distribuição binomial para formar uma
C matriz G que é representada como:
g0,1 | g0,2 ” | g0,5 |
g1,1 | g1,2 | ’· g1,5 |
g255,5 | g255,5 ’ ” | g255,5 |
[0189] De acordo com o valor de a1 e uma coluna em que a1 está localizado, por exemplo, a1 =36, e a1 está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h361, e é efetuada uma busca na matriz G por um valor que corresponde a g361. De acordo com o valor de a2 e uma coluna em que a2 está localizado, por exemplo, a2 =48, e a2 está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h48 2, e é efetuada uma busca na matriz G por um valor que corresponde a g48 2. De acordo com o valor de a3 e uma coluna em que a3 está localizado, por exemplo, a3 =26, e a3 está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h26 3, e é efetuada uma busca na matriz G por um valor que corresponde a g26 3. De acordo com o valor de a4 e uma coluna em que a4 está localizado, por exemplo, a4 =26, e a4 está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h264, e é efetuada uma busca na matriz G por um valor que corresponde a g26 4. De acordo com o valor de a5 e uma coluna em que a5 está localizado, por exemplo, a5 =88, e a5 está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h88 5, e é efetuada uma busca na matriz G por um valor que corresponde a g88 5. S1h = h36 1 + h48 2 + h26 3 + h26 4 + h88 5, e uma vez que a matriz R segue uma distribuição binomial, S1h também segue uma distribuição binomial. S1g = g36, 1 +
Petição 870160008725, de 11/03/2016, pág. 448/698
177/200 <?4s,2+ <?26,3+ <§26,4+ <§88,5 > θ uma νθζ que a matriz G segue uma distribuição binomial, Slg também segue uma distribuição binomial. Quando um de Slh e Slg é um número par, a pelo menos uma parte de dados em ^[^-169, kl atende a condição predefinida Cj quando tanto Slh quanto Slg são números ímpares, a pelo menos uma parte de dados em Wn [ξ -169, ξ ] não atende a condição predefinida Q, e indica que um de Slh e Slg obtidos de acordo com o supracitado método é um número par. Uma vez que tanto Slh quanto seguem uma distribuição binomial, uma probabilidade de que seja um número par é de 1/2, uma probabilidade de que Slg seja um número par é de 1/2, e uma probabilidade de que um de Slh e Slg seja um número par é de 11/4=3/4. Portanto, uma probabilidade de que a pelo menos uma parte de dados em Wn [k -169, ξ] atenda a condição predefinida é de 3/4. Na modalidade mostrada na Figura 21, a pelo menos uma parte de dados em ^[ξ-169, k\ atende a condição predefinida CP Na maneira de implantação mostrada na Figura 21, para ^[ξ-169, ξ], ^2[ξ-170, ξ-1], ^3[ξ-171, ξ-2], Wi4[ktm, k-3], W15[kA73, k-4], ^6[^-174, ^-5], Wi7 [Ãg-175, k-Q], ^[^-176, k-U ^ÍM77· V8l. ^loíM78· θ ^iit^-179, ξ-10], as janelas são de tamanho igual, isto é, todas as janelas têm um tamanho de 169 bytes, e, entretanto maneiras de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em Wn [ξ -169, ξ] atende a condição predefinida Cj. Portanto, conforme mostrado na Figura 32, representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados na janela Wn [^-170, ^-1] atende uma condição predefinida C2. Na Figura 32, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como h}, Z>2,
Petição 870160008725, de 11/03/2016, pág. 449/698
178/200 b3, b4, e b5 respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer bs de bx, b2, b3, b4, e b5 atende 0< A <255. bx, b2, b3, b4, e b5 formam uma matriz 1*5. Nessa maneira de implantação, maneiras de determinar se pelo menos uma parte de dados em cada janela atende uma condição predefinida são as mesmas, e, portanto, as mesmas matrizes R e G são ainda usadas. De acordo com o valor de bx e uma coluna em que bx está localizado, por exemplo, bx =66, e bx está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a Zz661, e é efetuada uma busca na matriz G por um valor que corresponde a g661. De acordo com o valor de b2 e uma coluna em que b2 está localizado, por exemplo, b2 =48, e b2 está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h48 2, e é efetuada uma busca na matriz G por um valor que corresponde a g48 2. De acordo com o valor de b3 e uma coluna em que b3 está localizado, por exemplo, 63=99, e b3 está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a Zz993, e é efetuada uma busca na matriz G por um valor que corresponde a g99 3. De acordo com o valor de b4 e uma coluna em que b4 está localizado, por exemplo, b4 =26, e b4 está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h264, e é efetuada uma busca na matriz G por um valor que corresponde a g264. De acordo com o valor de b5 e uma coluna em que b5 está localizado, por exemplo, 65=90, e b5 está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h90 5, e é efetuada uma busca na matriz G por um valor que corresponde a g90 5 S2h= ^66,1+ ^48,2 + /?99 3 + ^26,4 + ^90,5- θ Um3 νθΖ Πυθ 3 ΠΊθίΓΙΖ R SeÇUe URia distribuição binomial, S2h também segue uma distribuição binomial. 52g=g661 + <§48,2+ <§99,3+ <§26,4+ <§90,5 > θ uma νθζ Π11® 3 rnatriz G segue uma distribuição binomial, S2g também segue uma distribuição binomial. Quando um de S2h e S2g é um número par, a pelo menos uma parte de dados em ^2 [^-170, ^-1]
Petição 870160008725, de 11/03/2016, pág. 450/698
179/200 atende a condição predefinida C2; quando tanto S2h quanto S2g são números ímpares, a pelo menos uma parte de dados em Wt2 [ kt-170, kt -1] não atende a condição predefinida C2. Uma probabilidade de que um de S2h e S2g seja um número par é de 3/4. Na modalidade mostrada na Figura 21, a pelo menos uma parte de dados em Wt2 [kt-170, kt -1] atende a condição predefinida C2. Usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wt3 [kt -171, kt -2] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wi4 [kt-172, kt -3] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5 [kt -173, kt -4] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados em Wi6 [kt-174, kt -5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em Wt7 [kt -175, kt -6] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wi8 [kt -176, kt -7] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9 [kt -177, kt -8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [kt-178, kt -9] atende uma condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wm [kt-179, kt -10] atende uma condição predefinida C11. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em Wt5 [kt -173, kt -4] não atende a condição predefinida C5, 7 bytes são pulados a partir do ponto divisório potencial kt ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wj1 [kj-169, kj ] é determinada para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wji [kj-169, kj] atende a condição predefinida C1 é a mesma maneira de determinar se pelo menos uma parte de dados na
Petição 870160008725, de 11/03/2016, pág. 451/698
180/200 janela Wn [kt -169, kt ] atende a condição predefinida C1. Portanto, conforme mostrado na Figura 33, representa a janela [ kJ-169, kJ ] e é determinado se a pelo menos uma parte de dados em Wj3 [ kj-169, kj ] atende a condição predefinida C1. Na Figura 33, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são convertidos em valores decimais que são representados como ax', a2', a3', a4', e a5' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte serve como um valor, e qualquer as' de ax, a2', a3', a4', e a5' atende 0<as'<255. ax, a2', a3', a4', e a5' formam uma matriz 1*5. As matrizes R e G as mesmas que aquelas usadas quando é determinado se a pelo menos uma parte de dados na janela wn [ ki 169, kt ] atende a condição predefinida C1 são usadas, e são representadas como:
h0,1 h0, 2 | ·· h 0,5 | ' go,1 | g0,2 | g0,5 | ||
h1,1 h1,2 | h1,5 | e | g1,1 | g1,2 | • g1,5 | respectivamente |
h255,5 h255,5 | h255,5 J | < g255,5 | g255,5 | g255,5 y |
[0190]
De acordo valor de com o ax e uma coluna em que ax está localizado, por exemplo, a1' =16, e a1' está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h16 1, e é efetuada uma busca na matriz G por um valor que corresponde a g161. De acordo com o valor de a2' e uma coluna em que a2' está localizado, por exemplo, a2' =98, e a2' está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h8 2, e é efetuada uma busca na matriz G por um valor que corresponde a g98 2. De acordo com o valor de a3' e uma coluna em que a 3' está localizado, por exemplo, a3' =56, e a3' está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h56 3, e é efetuada uma busca na matriz G por um valor que corresponde a g56 3. De acordo com o valor de a4' e uma coluna em que a4' está localizado, por exemplo, a4' =36, e a4' está localizado em uma
Petição 870160008725, de 11/03/2016, pág. 452/698
181/200 quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a /z364, e é efetuada uma busca na matriz G por um valor que corresponde a g36 4. De acordo com o valor de a5' e uma coluna em que a5' está localizado, por exemplo, a5'=99, e a5' está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a /?99 5, e é efetuada uma busca na matriz G por um valor que corresponde a <§99,5· ^1/,^^6,1+^98,2 + ^56.3+^36,4+^99.5, θ uma vez ciue a matriz R segue uma distribuição binomial, S1A' também segue uma distribuição binomial. 5lg'=g161 + <§98,2+^56,3+<§36,4+<§99,5, θ uma vez ciue a matriz G segue uma distribuição binomial, Slg' também segue uma distribuição binomial. Quando um de S1A' e Slg' é um número par, a pelo menos uma parte de dados em WJ1[kJ-169, kj] atende a condição predefinida Cj quando tanto S1A' quanto Slg' são números ímpares, a pelo menos uma parte de dados em Wj3 [£,-169, k}] não atende a condição predefinida C}. Uma probabilidade de que um de S1A' e Slg' seja um número par é de 3/4.
[0191] Uma maneira de determinar se pelo menos uma parte de dados em ^.2[£;-170, £,-1] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em ^.2[£y-170, kr 1] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 33, representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela JF,2[£,-170, £,-1] atende a condição predefinida C2, e há 42 bytes entre dois bytes adjacentes selecionados. Na Figura 33, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes Ei cujos números na sequência são 170, 128, 86, 44 e 2 são convertidos em valores decimais que são representados como 6/, b2', b3', b4', e b5' respectivamente. Uma vez que 1 byte é formado por 8 bits, cada byte Ei serve como um valor, e qualquer bs' de 6/, Z>2', b3', b4', e b5' atende 0<6/<255. 6/, b2', b3', b4', e b5' formam uma matriz 1*5. As matrizes R e G as
Petição 870160008725, de 11/03/2016, pág. 453/698
182/200 mesmas que aquelas usadas quando é determinado se a pelo menos uma
W k k parte de dados na janela j2[ 1 -170, 1 -1] atende a condição predefinida C2 são usadas. De acordo com o valor de b e uma coluna em que b/ está localizado, por exemplo, b/ =210, e b/ está localizado em uma primeira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h210,1, e é efetuada uma busca na matriz G por um valor que corresponde a g210>1. De acordo com o valor de b2' e uma coluna em que b2' está localizado, por exemplo, b2'=156, e b2' está localizado em uma segunda coluna, é efetuada uma busca na matriz R por um valor que corresponde a h156,2, e é efetuada uma busca na matriz G por um valor que corresponde a g156,2. De acordo com o valor de b3' e uma coluna em que b3' está localizado, por exemplo, b3' =144, e b3' está localizado em uma terceira coluna, é efetuada uma busca na matriz R por um valor que corresponde a h144,3, e é efetuada uma busca na matriz G por um valor que corresponde a g144,3. De acordo com o valor de b4' e uma coluna em que b4' está localizado, por exemplo, b4' =60, e b4' está localizado em uma quarta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h60,4, e é efetuada uma busca na matriz G por um valor que corresponde a g60,4. De acordo com o valor de b5' e uma coluna em que b5' está localizado, por exemplo, b5' =90, e b5' está localizado em uma quinta coluna, é efetuada uma busca na matriz R por um valor que corresponde a h90,5, e é efetuada uma busca na matriz G por um valor que corresponde a g90,5 · S2h h210,1+ h156,2 + h144,3 + h60,4 + h90,5, e S2g S210,1+ g156,2+ g144,3 + g60,4 + g90,5 ·
Quando um de S2h' e S2g' é um número par, a pelo menos uma parte de dados em Wj2[kj-170, kj-1] atende a condição predefinida C2; quando tanto S2h' quanto S2g' são números ímpares, a pelo menos uma parte de dados em Wj2 [ kj-170, kj -1] não atende a condição predefinida C2. Uma probabilidade de que um de S2h' e S2g' seja um número par é de 3/4.
[0192] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wt3[kt-171, kt -2] atende a condição predefinida C3 é a
Petição 870160008725, de 11/03/2016, pág. 454/698
183/200 mesma maneira de determinar se pelo menos uma parte de dados em W,si kj 171, k, -2] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj4[k,-172, k,-3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em WjA k, 173, k, -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj6[k,-174, k,-5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em W, 7[ k,-175, k, -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em W,8[ k, -176, k, -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em W,9[ k,-177, k,-8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em W,1o[ k, 178, k, -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wy11 [ k,-179, k,-10] atende a condição predefinida C11, que não são descritas novamente no presente documento.
[0193] Nessa modalidade, é determinado, usando-se uma função aleatória, se pelo menos uma parte de dados na janela Wz [k - Az, k +BZ ] atende a condição predefinida Cz. A maneira de implantação mostrada na Figura 21 é usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, uma janela Wn[ ki-169, ki ] é determinada para um ponto divisório potencial ki, e é determinado se pelo menos uma parte de dados em Wn[ ki-169, ki ] atende uma condição predefinida Cx. Conforme mostrado na Figura 32, Wn representa a janela Wn [kt -169, kt ], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [ki-169, ki ] atende a condição predefinida Cx. Na Figura 32, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são considerados como 40 bits sequenciais, que são representados como «1 , «2 , a3, a4, e a40 separadamente. Para qualquer at de ax, a2, a3, a4,..., e
Petição 870160008725, de 11/03/2016, pág. 455/698
184/200 α40, quandoat=0, Καί=-1, e quando at=l, Καί=1. De acordo com uma correspondência entre at e Vat, VaX, Va2, Va3, Va4,..., e Kfl40 são gerados. Quarenta (40) números aleatórios são selecionados a partir de números aleatórios que seguem uma distribuição normal, e são representados como: 4, h2, h3, h4,..., e /?40 separadamente. Sa=VaX*hx+Va2*h2+Va3*h3+Va4*h4+...+ Va40*h40. Uma vez que 4, h2, h3, h4, e h40 seguem uma distribuição normal, h40 também segue uma distribuição normal. QuandoSa é um número positivo, a pelo menos uma parte de dados em [4-169, kt] atende a condição predefinida C/ quandoSa é um número negativo ou 0, a pelo menos uma parte de dados em Wn [4-169, 4] não atende a condição predefinida CP Uma probabilidade de que Sa seja um número positivo é de 1/2. Na modalidade mostrada na Figura 21, a pelo menos uma parte de dados em Wn [4-169, 4] atende a condição predefinida Q. Conforme mostrado na Figura 32, ® representa 1 byte separadamente selecionado quando é determinado se pelo menos uma parte de dados em uma janela ^[4-170, 4-1] atende uma condição predefinida C2. Na Figura 32, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 170, 128, 86, 44 e 2 são considerados como 40 bits sequenciais, que são representados como 4, 4, b3, b4,..., e b40 separadamente. Para qualquer bt de 4, b2, b3, b4,..., e Z>40, quando 4=0> Vbt=A, θ quando 4=1, Pbt=l.. De acordo com uma correspondência entre 4 e Vbt, Vbx, Vb2, Vb3, Vb4,e Vb40 são gerados. Uma maneira de determinar se pelo menos uma parte de dados na janela ^[4169, 4] atende a condição predefinida Q éa mesma maneira de determinar se pelo menos uma parte de dados na janela Wi2 [4-170, 4-1] atende a condição predefinida C2. Portanto, os mesmos números aleatórios são usados: 4, 4, 4> h4, e h40, e Sb=Vbx* hx + Vb2* h2+Vb3* h3 + Vb4* h4+...+ Vb40 *h40. Uma vez que 4, h2, h3, h4,e 40 seguem uma distribuição normal, Sb também segue
Petição 870160008725, de 11/03/2016, pág. 456/698
185/200 uma distribuição normal. Quando Sb é um número positivo, a pelo menos uma parte de dados em Wt2 [kt-170, kt-1] atende a condição predefinida C2; quando Sb é um número negativo ou 0, a pelo menos uma parte de dados em W 2[ ki 170, kt -1] não atende a condição predefinida C2. Uma probabilidade de que Sb seja um número positivo é de 1/2. Na modalidade mostrada na Figura 21, a pelo menos uma parte de dados em Wt2[kt-170, kt-1] atende a condição predefinida C2. Usando a mesma regra, separadamente é determinado se pelo menos uma parte de dados em Wt3[kt -171, kt -2] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em W 4Í kt 172, kt -3] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5[ kt-173, kt -4] atende uma condição predefinida C5, é determinado se pelo menos uma parte de dados em Wt6 [kt-174, kt -5] atende uma condição predefinida C6, é determinado se pelo menos uma parte de dados em Wt7[kt-175, kt -6] atende uma condição predefinida C7, é determinado se pelo menos uma parte de dados em Wi8[ kt-176, kt -7] atende uma condição predefinida C8, é determinado se pelo menos uma parte de dados em Wt9[kt-177, kt -8] atende uma condição predefinida C9, é determinado se pelo menos uma parte de dados em Wi10 [kt -178, kt -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em W-iiíkt-179, kt-10] atende uma condição predefinida C11. Na maneira de implantação mostrada na Figura 21, a pelo menos uma parte de dados em Wi5 [kt -173, kt -4] não atende a condição predefinida C5, 7 bytes são pulados a partir do ponto divisório potencial kt ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wy1[ kj-169, kj ] é determinada para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wy1[ kj-169, kj ] atende a condição predefinida C1 é a mesma
Petição 870160008725, de 11/03/2016, pág. 457/698
186/200 maneira de determinar se pelo menos uma parte de dados na janela
169, ξ] atende a condição predefinida ci. Portanto, conforme mostrado na Figura 33, representa a janela WjX[kj-169, e 5 bytes são selecionados para determinar se pelo menos uma parte de dados em Wfl[kj-169, k}] atende a condição predefinida Q. Na Figura 33, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 na Figura 33 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 169, 127, 85, 43 e 1 são considerados como 40 bits sequenciais, que são representados como ax , a2, a3', a4 , e a A separadamente. Para qualquer at' de ax , a2, a3 , a4, e a40', quando at'=0, Uflí'=-1, e quando a/=1, Kflí'=1. De acordo com uma correspondência entre at' e Vat', Val', Va2\ Va3', Va4', e Va40' são gerados. A maneira de determinar se pelo menos uma parte de dados na janela W^kj-169, k^ atende a condição predefinida Q é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn [ξ -169, ξ] atende a condição predefinida Q. Portanto, os mesmos números aleatórios são usados: hx, h2, k3, h4, θ Áo · ^'-νΛ^Ι + ναΑΚ + να3*^ + ναΑΚ+-+νΜ'*Κ· Uma vez que hx, h2, h3, h4, ..., e /?40. seguem uma distribuição normal, Sa' também segue uma distribuição normal. Quando Sa' é um número positivo, a pelo menos uma parte de dados em JÇJ^-169, kj] atende a condição predefinida Cj quando Sa' é um número negativo ou 0, a pelo menos uma parte de dados em Wj^kj-169, kj] não atende a condição predefinida CP A probabilidade de que Sa' seja um número positivo é de 1/2.
[0194] A maneira de determinar se pelo menos uma parte de dados em Wi2 [£,-170, ξ -l] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj2[kj-170, kj1] atende a condição predefinida C2. Portanto, conforme mostrado na Figura 33, & representa 1 byte selecionado quando é determinado se a pelo menos uma parte de dados na janela Wj2[kj-170, kj-1} atende a condição predefinida
Petição 870160008725, de 11/03/2016, pág. 458/698
187/200
C2, e há 42 bytes entre dois bytes adjacentes selecionados. Na Figura 33, bytes selecionados são representados como números na sequência 170, 128, 86, 44 e 2 separadamente, e há 42 bytes entre dois bytes adjacentes selecionados. Os bytes cujos números na sequência são 170, 128, 86, 44 e 2 são considerados como 40 bits sequenciais, que são representados como
A, b2 , b3 , b4', ..., e b40' separadamente. Para qualquer b' de b/, b2 , b3 , b4 , e b^',quando b/=0, 4,/=-1, e quando b/=1, Vbt' =1. De acordo com uma correspondência entre b/ e 4/, 4/, Vb2', Vb3\ 4,/, ..., e 440' são gerados. A maneira de determinar se pelo menos uma parte de dados em Wi2 [4-170, 4-1] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em J4J4-174 4-1] atende a condição predefinida C2. Portanto, os mesmos números aleatórios são usados:
Uma vez que 4, b2, h3, h4, ..., e b40 segue uma distribuição normal, Sb' também segue uma distribuição normal. Quando Sb' é um número positivo, a pelo menos uma parte de dados em ^[4-17^ 4-1J atende a condição predefinida C2;quando Sb' é um número negativo ou 0, a pelo menos uma parte de dados em ^[4-17^ 4-1J não atende a condição predefinida C2. Uma probabilidade de que Sb' seja um número positivo é de 1/2.
[0195] Similarmente, uma maneira de determinar se pelo menos uma parte de dados em /4 [4-171, 4-2] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em 1444171, kj-2] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em J44[4_172’ 4-3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[kr 173, 4-4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em J4J4-174, 4-5l atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em ÍF/vt4-175, 4-6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados
Petição 870160008725, de 11/03/2016, pág. 459/698
188/200 em Wj8[ kj -176, kj -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj9[ kj-177, kj-8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wjio[ kj 178, kj -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em Wj11 [ kj-179, kj-10] atende a condição predefinida C11, que não são descritas novamente no presente documento.
[0196] Nessa modalidade, é determinado, usando-se uma função aleatória, se pelo menos uma parte de dados em uma janela Wiz [ kt - Az, kt + Bz ] atende uma condição predefinida C z. A maneira de implantação mostrada na Figura 21 é ainda usada como um exemplo. De acordo com uma regra predefinida em um servidor para desduplicação 103, para o ponto divisório potencial kt, uma janela Wn[ kt-169, kt ] é determinada para um ponto divisório potencial kt, e é determinado se pelo menos uma parte de dados em Wn[ kt 169, kt ] atende uma condição predefinida C1. Conforme mostrado na Figura 32, Wn representa a janela Wn[ kt-169, kt ], e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em Wn [kt-169, kt ], atende a condição predefinida C1. Na Figura 32, cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados. Cada um dos bytes cujos números na sequência são 169, 127, 85, 43 e 1 é convertido em 1 número decimal, cuja faixa é 0-(2Λ40-1). Um gerador para distribuição uniforme de número aleatório é usado para gerar 1 valor designado para cada número decimal em 0-(2Λ40-1), e uma correspondência R entre cada número decimal em 0-(2Λ40-1) e o valor designado é gravada. Uma vez designado, um valor designado que corresponde a um número decimal permanece inalterado, e o valor designado segue distribuição uniforme. Se o valor designado é um número par, a pelo menos uma parte de dados em Wn [kt -169, kt ] atende a condição predefinida C1; se o valor designado é um número ímpar, a pelo menos uma parte de dados em Wn[ kt-169, kt ] não atende a condição
Petição 870160008725, de 11/03/2016, pág. 460/698
189/200 predefinida C1. C1 representa que o valor designado obtido de acordo com o supracitado método é um número par. Uma vez que uma probabilidade de que um número aleatório em distribuição uniforme seja um número par é de 1/2, uma probabilidade de que a pelo menos uma parte de dados em W[ k-169, kt ] atende a condição predefinida C1 é de 1/2. Na maneira de implantação mostrada na Figura 21, usando a mesma regra, separadamente, é determinado se pelo menos uma parte de dados em Wt2 [kt-170, kt-1] atende uma condição predefinida C2, é determinado se pelo menos uma parte de dados em W[ kt 171, kt -2] atende uma condição predefinida C3, é determinado se pelo menos uma parte de dados em Wt 4 [ kt-172, kt -3] atende uma condição predefinida C4, é determinado se pelo menos uma parte de dados em Wi5[kt-173, kt -4] atende uma condição predefinida C5, que não são descritas novamente no presente documento.
[0197] Quando a pelo menos uma parte de dados em W[ kt-173, kt -4] não atende a condição predefinida C5, 7 bytes são pulados a partir do ponto divisório potencial ki ao longo de uma direção de buscar um ponto divisório de corrente de dados, e um ponto divisório potencial corrente kj é obtido em uma posição de extremidade de um sétimo byte. Conforme mostrado na Figura 22, de acordo com a regra predefinida para o servidor para desduplicação 103, uma janela Wj1[ k}-169, kj ] é determinada para o ponto divisório potencial kj. Uma maneira de determinar se pelo menos uma parte de dados na janela Wj1[k}-169, kj ] atende a condição predefinida C} é a mesma maneira de determinar se pelo menos uma parte de dados na janela Wn[ kt 169, kt ] atende a condição predefinida C}. Portanto, a mesma correspondência R entre cada número decimal em 0-(2Λ40-1) e um valor designado é usada. Conforme mostrado na Figura 33, representa a janela, e 5 bytes são selecionados para determinar se a pelo menos uma parte de dados em W1[ kj -169, kj ] atende a condição predefinida C1. Na Figura 33, representa 1 byte selecionado, e há 42 bytes entre dois bytes adjacentes selecionados .
Petição 870160008725, de 11/03/2016, pág. 461/698
190/200
Cada um dos bytes cujos números na sequência 169, 127, 85, 43 e 1 é convertido em 1 número decimal, e é efetuada uma busca em R por um valor designado que corresponde ao número decimal. Se o valor designado é um número par, a pelo menos uma parte de dados em Wfl[kj-169, kj] atende a condição predefinida C1; se o valor designado é um número ímpar, a pelo menos uma parte de dados em Wfl[ kj-169, kj ] não atende a condição predefinida C1. Uma vez que uma probabilidade de que um número aleatório em distribuição uniforme seja um número par é de 1/2, uma probabilidade de que a pelo menos uma parte de dados em WjX[kj-169, kj] atenda a condição predefinida C1 é de 1/2. Similarmente, uma maneira de determinar se pelo menos uma parte de dados em Wt2 [kt-170, kt -1] atende a condição predefinida C2 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj2[kj-170, kj-1] atende a condição predefinida C2, e uma maneira de determinar se pelo menos uma parte de dados em Wt3[kt-171, kt -2] atende a condição predefinida C3 é a mesma maneira de determinar se pelo menos uma parte de dados em Wj3[kj-171, kj-2] atende a condição predefinida C3. Similarmente, é determinado se pelo menos uma parte de dados em Wj 4Í kJ 172, kj -3] atende a condição predefinida C4, é determinado se pelo menos uma parte de dados em Wj5[ kj-173, kj -4] atende a condição predefinida C5, é determinado se pelo menos uma parte de dados em Wj 6[ kj-174, kj-5] atende a condição predefinida C6, é determinado se pelo menos uma parte de dados em Wj 7[ kj-175, kj -6] atende a condição predefinida C7, é determinado se pelo menos uma parte de dados em Wj8[ kj-176, kj -7] atende a condição predefinida C8, é determinado se pelo menos uma parte de dados em Wj 9[ kj 177, kj-8] atende a condição predefinida C9, é determinado se pelo menos uma parte de dados em Wj10[ kj-178, kj -9] atende a condição predefinida C10, e é determinado se pelo menos uma parte de dados em WjU[kj-179, kj-10] atende a condição predefinida C11 , que não são descritas novamente no presente documento.
Petição 870160008725, de 11/03/2016, pág. 462/698
191/200 [0198] O servidor para desduplicação 103 na modalidade da presente invenção mostrada na Figura 1 significa um aparelho que pode implantar uma solução técnica descrita em uma modalidade da presente invenção, e conforme mostrado na Figura 18, usualmente inclui uma unidade de processamento central, uma memória principal, e uma interface de entrada/saída. A unidade de processamento central, a memória principal, e a interface de entrada/saída se comunicam entre si. A memória principal armazena uma instrução executável, e a unidade de processamento central executa a instrução executável armazenada na memória principal para realizar uma função específica, de modo que o servidor para desduplicação 103 tem a função específica, por exemplo, buscar um ponto divisório de corrente de dados descrita na Figura 20 à Figura 33 nas modalidades da presente invenção. Portanto, conforme mostrado na Figura 19, de acordo com as modalidades da presente invenção mostradas na Figura 20 a Figura 33, para o servidor para desduplicação 103, uma regra é predefinida no servidor para desduplicação 103, onde a regra é: para um ponto divisório potencial k, determinar M janelas Wx [ k- Ax, k + Bx] e uma condição predefinida Cx que corresponde à janela Wx [ k- Ax, k + Bx ], onde x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros.
[0199] O servidor para desduplicação 103 inclui uma unidade de determinação 1901 e uma unidade de julgamento e processamento 1902. A unidade de determinação 1901 é configurada para realizar a etapa (a):
(a) determinar uma janela correspondente Wz [ k -A, k + Bz ] para um ponto divisório potencial corrente kl de acordo com a regra, onde i e z são números inteiros, e 1<z<M.
[0200] A unidade de julgamento e processamento 1902 é configurada para: determinar se pelo menos uma parte de dados na janela Wz [kt - Az, kt + Bz ] atende uma condição predefinida Cz quando a pelo menos uma parte de dados na janela Wiz [ kt - Az, kt +
Petição 870160008725, de 11/03/2016, pág. 463/698
192/200
Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente kt ao longo de uma direção de buscar um ponto divisório de corrente de dados, onde N*U não é maior que || Bz || + maxx(|| Ax ||), de modo a obter um novo ponto divisório potencial, onde unidade de determinação 1901 realiza a etapa (a) para o novo ponto divisório potencial; e quando pelo menos uma parte de dados em cada janela Wix [k - Ax, kt+Bx ] de M janelas do ponto divisório potencial corrente kt atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente kt como um ponto divisório de corrente de dados.
[0201] Além disso, a regra inclui adicionalmente que pelo menos duas janelas Wie [ kt - Ae, kt + Be ] e WIf [ kt - Af, kt + Bf ] atendem as condições | Ae+Be |=| Af+Bf | e Ce=Cf. Além disso, a regra inclui adicionalmente que Ae e Af números inteiros positivos. Além disso, a regra inclui adicionalmente Ae-1= Af e Be +1=Bf.
[0202] Além disso, a unidade de julgamento e processamento 1902 é especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ k - Az, k + Bz ] atende a condição predefinida Cz. Mais ainda, a unidade de julgamento e processamento 1902 determina especificamente, usando uma função hash, se a pelo menos uma parte de dados na janela Wz [ k - Az, k + Bz ] atende a condição predefinida Cz.
[0203] Além disso, a unidade de julgamento e processamento 1902 é configurada para: quando a pelo menos uma parte de dados na janela Wiz [k - Az, k + Bz ] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente k ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e a unidade de determinação 1901 realiza a etapa (a) para o novo
Petição 870160008725, de 11/03/2016, pág. 464/698
193/200 ponto divisório potencial, onde de acordo com a regra, um limite à esquerda de uma janela Wlc [kl - Ac, kl + Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [ kt - Az, ki + Bz ] ou um limite à esquerda de uma janela Wlc [kl - Ac, kl + Bc] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [kt Az, kt + Bz ], onde a janela Wic [kl - Ac, kl + Bc] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com a direção de busca de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
[0204] Além disso, o fato de que a unidade de julgamento e processamento 1902 determina, usando uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [kt - Az, kt + Bz ] atende a condição predefinida Cz inclui especificamente:
selecionar F bytes na janela Wlz [kt - Az, kt + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, onde F >1, cada byte é formado por 8 bits, que são indicados como am1,..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem ai,1 a2,1 ai,2 a2,2 aos F*H bytes podem ser representados como: a ) u1,8 a2,8 onde quando a =1, V =1, e quando a =0, ~ m,n ’ am,n ’ ~ m,n ’ aF*ff,1 aF*H,2 ··· aF*H,8 y
Vamn =-1, onde amn representa qualquer um dentre am>1,..., e am8, uma matriz Va é obtida de acordo com uma relação de conversão entre amn e Vamn a partir dos bits que correspondem aos F*H bytes, a matriz Va é representada
' Vat1 Va 2,1 | h.1,2 · V 2 2 a 2,2 | - V»1,8 Va 2,8 | |
como: | k VaF*H ,1 | VaF*H ,2 | VaF *H ,8 y |
*H*8 números aleatórios são
Petição 870160008725, de 11/03/2016, pág. 465/698
194/200 selecionados a partir de números aleatórios seguindo-se uma distribuição normal ' h1,1 h2,1 para h1,2 h2,2 formar uma matriz h1,8 h2,8 números
R, a matriz R é representada como: aleatórios em uma emésima linha da h
,lF*H ,8 y matriz Va e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm,1 + Vam,2 * hm,2 +--+ Vm 8 * hm,8
S
Sa1, Sa2e aF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1,
Sa2,..., e aF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wzz [k - Az, kt + Bz ] atende a condição predefinida Cz.
[0205] De acordo com o método para buscar um ponto divisório de corrente de dados com base em um servidor nas modalidades da presente invenção mostradas na Figura 20 à Figura 33, uma janela W1X [ k - A, k + B ]é determinada para um ponto divisório potencial k,, onde, x indica números naturais consecutivos de 1 a M separadamente, e M>2. Pode ser determinado em paralelo se pelo menos uma parte de dados em cada janela de M janelas atende uma condição predefinida Cx, ou pode ser determinado em sequência se pelo menos uma parte de dados nas janelas atende uma condição predefinida, ou pode ser primeiramente determinado que pelo menos uma parte de dados em uma janela Wü [ pn- a15 pn +b 1] atende uma condição predefinida C1, então é determinado que pelo menos uma parte de dados em W2[ Pt2- a2, p,2+ b2] atende uma condição predefinida C2, até ser determinado que pelo menos uma parte de dados em Wim [ pim - Am, pim + Bm ] atende uma condição predefinida Cm. Outras janelas nessa modalidade são determinadas da mesma maneira que acima, que não é descrita novamente.
[0206] Além disso, de acordo com as modalidades da presente invenção mostradas na Figura 20 à Figura 33, uma regra é predefinida no
Petição 870160008725, de 11/03/2016, pág. 466/698
195/200 servidor para desduplicação 103, onde a regra é: determinar M janelas Wx [kAx, k+ Bx] para um ponto divisório potencial k e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k+ Bx], onde x indica números naturais consecutivos de 1 a M separadamente, e M>2. Na regra predefinida, A1, A2,
A3, ..., e Am podem não ser todos iguais, podem não ser todos iguais, e B1, B2,
B3, ..., e Bm podem também não ser todos iguais. Na maneira de implantação mostrada na Figura 21, para Wn[ k.-169, k. ], W 2[ k-170, k.-1], W.3[ k.-171, k.
2], W4Í kt-172, k. -3], Wi5[ k. -173, k. -4], W.6[k. -174, k. -5], W„[k.-175, k. -6], W18 [ k. -176, k. -7], W9[ k.-177, k. -8], W^ [ k-178, ξ. -9], e Wni[ k.-179, k.-10], as janelas são de tamanho igual, isto é, todas as janelas têm um tamanho de 169 bytes, e entretanto maneiras de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida são também as mesmas. Quanto a detalhes, fazer referência à descrição supracitada de determinar se a pelo menos uma parte de dados em Wi.1[k. -169, k. ] atende a condição predefinida C}. Entretanto, na maneira de implantação mostrada na Figura 11, as janelas Wn[k.-169, k.], w.2[k.-170, k.-1], wyk.-171, k.-2], wyk.-172, k.3], W5[k.-173, k. -4], W.6[ k. -174, k. -5], W.7[k. -175, k. -6], Wy k.-176, k. -7], W.9 [ k. -177, k. -8], w.10[ k.-168, k. +1], e
W11[ k.-179, k. +3] pode ser diferentes em tamanho, e entretanto as maneiras de determinar se pelo menos uma parte de dados em uma janela atende uma condição predefinida podem também ser diferentes. Em todas as modalidades, de acordo com a regra predefinida para o servidor para desduplicação 103, uma maneira de determinar se pelo menos uma parte de dados na janela Wi atende a condição predefinida C} é certamente a mesma maneira de determinar se pelo menos uma parte de dados em uma janela Wp atende a condição predefinida C1, uma maneira de determinar se pelo menos uma parte de dados em W.2 atende a condição predefinida C2 é certamente a mesma maneira de determinar se pelo menos uma parte de dados em Wj2 atende a condição predefinida C2, ..., e uma maneira de determinar se pelo menos uma parte de dados em uma janela
Petição 870160008725, de 11/03/2016, pág. 467/698
196/200 atende uma condição predefinida CM é certamente a mesma maneira de determinar se pelo menos uma parte de dados em uma janela WjM atende a condição predefinida CM, que não são descritas novamente no presente documento.
[0207] De acordo com as modalidades da presente invenção mostradas na Figura 20 à Figura 33, a regra é predefinida no servidor para desduplicação 103, ka, kt, k, kt, e km são pontos divisórios potenciais obtidos ao se buscar um ponto divisório ao longo de uma direção de buscar um ponto divisório de corrente de dados, e ka, kt, k}, kt, e km todos seguem a regra. Nessa modalidade da presente invenção, a janela Wx [k- Ax, k+ Bx ] representa uma faixa específica, e dados são selecionados na faixa específica para determinar se os dados atendem a condição predefinida Cx. Especificamente, na faixa específica, a fatia de dados pode ser selecionada ou todos os dados podem ser selecionados para determinar se os dados atendem a condição predefinida Cx. Referência pode ser feita à janela Wx [k- Ax, k+ Bx ] quanto ao conceito de uma janela especificamente usada nessa modalidade da presente invenção, que não é descrita novamente no presente documento.
[0208] Na janela Wx [k- Ax, k+ Bx ], (k- Ax) e (k+ Bx) representam dois limites da janela Wx [k- Ax, k+ Bx ], onde (k- Ax) representa um limite, que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Ax, k+ Bx ], e (k+ Bx) representa um limite, que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Ax, k+ Bx ]. Especificamente, na modalidade da presente invenção, a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 20 à Figura 33 é da esquerda para a direita; portanto, (k- Ax) representa um limite (isto é, um limite à esquerda), que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Ax, k+ Bx ], e (k+ Bx) representa um
Petição 870160008725, de 11/03/2016, pág. 468/698
197/200 limite (isto é, um limite à direita), que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Ax, k+ Bx ]. Se a direção de buscar um ponto divisório de corrente de dados mostrada na Figura 20 à Figura 33 é da direita para a esquerda, (kAx) representa um limite (isto é, um limite à direita), que está em uma direção oposta à direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Αχ, k+ Βχ ], e (k+ Βχ) representa um limite (isto é, um limite à esquerda), que está na direção de buscar um ponto divisório de corrente de dados com relação ao ponto divisório potencial k, da janela Wx [k- Ax , k+ Bx ].
[0209] Uma pessoa de habilidade comum na técnica pode estar ciente de que, em conjunto com várias unidades exemplificativas e etapas de algoritmo descritas na Figura 20 à Figura 33 das modalidades da presente invenção, uma característica chave nas modalidades da presente invenção pode ser combinada com outras tecnologias e apresentada em uma forma mais complexa; entretanto, a característica chave da presente invenção ainda está incluída. Um ponto divisório alternativo pode ser usado em um ambiente real. Por exemplo, em uma maneira de implantação, de acordo com uma regra predefinida para um servidor para desduplicação 103, para um ponto divisório potencial kt, 11 janelas Wx [k- Ax, k+ Bx ] e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k+ Bx ] são determinadas, onde x indica números naturais consecutivos de 1 a 11. Quando pelo menos uma parte de dados em cada janela Wx [k- Ax, k+ Bx ] das 11 janelas atende a condição predefinida Cx, o ponto divisório potencial kt é um ponto divisório de corrente de dados. Quando nenhum ponto divisório é encontrado após uma fatia de dados máxima definida ser excedida, uma regra predefinida para o ponto alternativo pode ser usada. A regra predefinida para o ponto alternativo é similar à regra predefinida no servidor para desduplicação 103, e a regra predefinida para o ponto alternativo é: por exemplo, para um ponto divisório potencial kt, determinar 10 janelas Wx
Petição 870160008725, de 11/03/2016, pág. 469/698
198/200 [k- Ax, k+ Bx ] e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k+ Bx ], onde x indica números naturais consecutivos de 1 a 10. Quando é determinado que pelo menos uma parte de dados em cada janela Wx [k- A , k + Bx ], das 10 janelas atende a condição predefinida Cx, o ponto divisório potencial kt é um ponto divisório de corrente de dados. Quando nenhum ponto divisório de corrente de dados é encontrado após uma fatia de dados máxima definida ser excedida, uma posição de extremidade da fatia de dados máxima serve como um ponto divisório forçado.
[0210] De acordo com as modalidades da presente invenção mostradas na Figura 20 à Figura 33, uma regra é predefinida no servidor para desduplicação 103, e na regra, M janelas são determinadas para um ponto divisório potencial k. Não é necessariamente exigido que haja um ponto divisório potencial k antecipadamente, e o ponto divisório potencial k pode ser determinado usando as M janelas determinadas.
[0211] Uma pessoa de habilidade comum na técnica pode estar ciente de que, em combinação com os exemplos descritos nas modalidades revelados nesse relatório descritivo, unidade s e etapas de algoritmo podem ser implantadas por hardware eletrônico ou uma combinação de software de computador e hardware eletrônico. Se as funções são realizadas por hardware ou software depende das aplicações particulares e condições das restrições de projeto das soluções técnicas. Uma pessoa especialista na técnica pode usar diferentes métodos para implantar as funções descritas para cada aplicação particular, mas não deve ser considerado que a implantação vá além do escopo da presente invenção.
[0212] Pode ser claramente entendido por uma pessoa especialista na técnica que, com o propósito de uma descrição conveniente e breve, para um detalhado processo do funcionamento do sistema, aparelho, e unidade supracitados, pode ser feita referência a um processo correspondente nas supracitadas modalidades do método, e detalhes não são descritos
Petição 870160008725, de 11/03/2016, pág. 470/698
199/200 novamente no presente documento.
[0213] Nas diversas modalidades fornecidas, deve ser que o sistema e método revelados podem ser implantados em outras maneiras. Por exemplo, a modalidade de aparelho descrita é meramente exemplificativa. Por exemplo, a divisão por unidade é meramente uma divisão de função lógica e pode ser outra divisão em uma implantação real. Por exemplo, uma pluralidade de unidade s ou componentes pode ser combinada ou integrada em outro sistema, ou algumas características podem ser ignoradas ou não realizadas. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implantados através de algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas, ou outras formas.
[0214] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e partes exibidas como unidade s podem ou não ser unidades físicas, podem ser localizadas em uma posição, ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas das ou todas as unidades podem ser selecionadas de acordo com as necessidades reais precisa para alcançar os objetivos das soluções das modalidades.
[0215] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada uma das unidades podem existir fisicamente separadamente, ou duas ou mais unidades são integradas em uma unidade.
[0216] Quando as funções são implantadas na forma de uma unidade de software funcional e vendidas ou usadas como um produto independente, as funções podem ser armazenadas em um meio de armazenamento legível por computador não volátil. Com base nesse entendimento, as soluções técnicas da presente invenção essencialmente, ou a parte que contribui para a técnica anterior, ou algumas das soluções técnicas
Petição 870160008725, de 11/03/2016, pág. 471/698
200/200 pode ser implantadas em uma forma de um produto de software. O produto de software é armazenado em um meio de armazenamento não volátil, e inclui diversas instruções para instruir um dispositivo de computador (que pode ser um computador pessoal, um servidor, ou um dispositivo de rede) para realizar todas as ou algumas das etapas dos métodos descritos nas modalidades da presente invenção. O supracitado meio de armazenamento não volátil inclui: qualquer meio que pode armazenar código de programa, tal como um pen drive, um disco rígido removível, uma memória apenas para leitura (Memória Apenas para Leitura, ROM), um disco magnético, ou um disco óptico.
[0217] As descrições supracitadas são meramente maneiras de implantação específicas da presente invenção, mas não são destinadas a limitar o escopo de proteção da presente invenção. Qualquer variação ou substituição prontamente imaginada por uma pessoa especialista na técnica dentro do escopo técnico revelado na presente invenção estará abrangida dentro do escopo de proteção da presente invenção. Portanto, o escopo de proteção da presente invenção estará sujeito ao escopo de proteção das reivindicações.
Claims (48)
- REIVINDICAÇÕES1. Método para buscar um ponto divisório de corrente de dados, realizado por um servidor de desduplicação e CARACTERIZADO pelo fato de que compreende:uma regra predefinida no servidor de desduplicação é: para um ponto divisório potencial k , determinar M pontos px, uma janela Wx [ Px - Ax , Px +Bx ] que correspondem ao ponto px, e uma condição predefinida Cx que correspondem à janela Wx [px - Ax, px + Bx ], em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o método compreendendo:(a) determinar (401) um ponto piz e uma janela [ ptz - Az, P,z + Bz ] que correspondem ao ponto piz para um ponto divisório potencial corrente k, de acordo com a regra, em que i e z são números inteiros, e 1<z<M;(b) determinar (402) se pelo menos uma parte dos dados na janela Wiz [ piz- Az, piz+Bz ] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela W,z [ p,, - A,, piz+Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidadesU para buscar um ponto divisório de corrente de dados a partir do ponto piz ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz 11+ maxx (|| Ax ||+||(k, -p,x )H), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); eW (c) quando pelo menos uma parte de dados em cada janela ix [p,x -Ax, Pa+Bx ] de M janelas do ponto divisório potencial corrente k atende a condição predefinida Cx selecionar o ponto divisório potencial corrente como um ponto divisório de corrente de dados.
- 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos dois pontos pe e pf atendem as condições A = Af, Be = Bf, e Ce = Cf.
- 3. Método, de acordo com a reivindicação 2, CARACTERIZADOPetição 870180164797, de 18/12/2018, pág. 16/352/20 pelo fato de que a regra compreende adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf, estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
- 4. Método, de acordo com a reivindicação 2 ou 3, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
- 5. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que determinar se pelo menos uma parte de dados na janela Wiz [ piz - A2, piz+B2 ] atende uma condição predefinida Cz compreende especificamente:determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz - Az, piz+Bz ] atende a condição predefinida Cz.
- 6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz - A2, piz+Bz ] atende a condição predefinida C2 é especificamente: determinar, usando uma função hash, se a pelo menos uma parte de dados na janela W [ p,z - Az, p>2+Bz ] atende a condição predefinida C2
- 7. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que, quando a pelo menos uma parte de dados na janela Wiz [ piz - A2, piz+B2 ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto piz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wic [ plc -Ac, pic + Bc ] que correspondem a um ponto pic que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wiz [ piz -A2, piz+Bz ] ou um limite à esquerda de uma janela Wic [pic -Ac, pic + Bc ] que correspondem a um ponto pic que é determinado para que o novo pontoPetição 870180164797, de 18/12/2018, pág. 17/353/20 divisório potencial caia dentro de uma faixa da janela Wiz [ piz - Az, piz+Bz ], em que o ponto pic determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
- 8. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz- Az, piz + Bz ] atende a condição predefinida Cz compreende especificamente:selecionar F bytes na janela Wiz [ piz- Az, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cada byte é formado por 8 bits, que são indicados por amX, ..., e , representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que
correspondem aos F*H bytes podem ser representados como: ' ai,1 a1,2 ··· a1,8 a2,1 a2,2 ··· a2,8 , em que quando am,n - 1, Vam,n -1, e quando amn =0, Ç aF*H ,1 aF*H ,2 ··· aF*H ,8 y V = am,n -1, em que a representa qualquer um dentre a m4, ..., e am , uma matriz V„ é obtida de acordo com uma relação de conversão entre a e V a s m,n am, a partir dos bits que correspondem aos F*H bytes, a matriz V é representada como:Va,AVa>.2Va 2,1Va!., ]F*H*8 números aleatórios são selecionados ç VF*H,1 VaF*H.2 ’ ’ ’ VaF*H,8 y a partir de números aleatórios seguindo-se uma distribuição normal para formar uma matriz R, a matriz R é representada como:( h1,1 h1,2 · h / · h1,8 h2,1 h2,2 · h · h2,8 h ç hF*H ,1 h hF*H,2 · h · hF*H ,8 y números aleatórios em uma emésima linha da matriz Va e em uma emésimaPetição 870180164797, de 18/12/2018, pág. 18/354/20 linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm1 + Vam2 * hm2 +...+ 8*hm8, SaX, Sa2, ..., e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sfll , Se2, ..., e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ p,z- Az, p,z + Bz ] atende a condição predefinida Cz. - 9. Método para buscar um ponto divisório de corrente de dados, realizado por um servidor de desduplicação e CARACTERIZADO pelo fato de que compreende:uma regra predefinida no servidor de desduplicação é: para um ponto divisório potencial k, determinar M janelas Wx [k- Ax, k + Bx ], e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k + Bx ], em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros e o método compreendendo:(a) determinar (2001) uma janela correspondente W,z [ ki- Az, k, + Bz ] para um ponto divisório potencial corrente ki de acordo com a regra, em que i e z são números inteiros, e 1<z<M;(b) determinar (2002) se pelo menos uma parte de dados na janela W,z [kt - Az, k, + Bz ] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela W,z[ki-Az, k, +Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente ki ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz 11+ maxx (|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela W,x [k, - Ax, k, + Bx ] de M janelas do ponto divisório potencial corrente k, atende aPetição 870180164797, de 18/12/2018, pág. 19/355/20 condição predefinida Cx, selecionar o ponto divisório potencial corrente kl como um ponto divisório de corrente de dados.
- 10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos duas janelas Wle [kl - Ae, kl + Be ] e Wf [kl - Af, kl + Bf ] atendem as condições | Ae + Be |=| Af + Bf | e Ce = Cf.
- 11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que Ae e A são números inteiros positivos.
- 12. Método, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que a regra compreende adicionalmente Ae 1 = Af e Be +1 = Bf.
- 13. Método, de acordo com qualquer uma das reivindicações 9 a 11, CARACTERIZADO pelo fato de que determinar se pelo menos uma parte de dados na janela Wiz [kt - Az, kl + Bz ] atende a condição predefinida C2 compreende especificamente:determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [kt - Az, kl + Bz ] atende a condição predefinida Cz.
- 14. Método, de acordo com a reivindicação 13,CARACTERIZADO pelo fato de que determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ ki - , K + Bz ] atende a condição predefinida Cz é especificamente: determinar, usando uma função hash, se a pelo menos uma parte de dados na janela Wiz [ki - Az, kl + Bz ] atende a condição predefinida Cz.
- 15. Método, de acordo com qualquer uma das reivindicações 9 a 11, CARACTERIZADO pelo fato de que quando a pelo menos uma parte de dados na janela Wiz [ki - Az, kl + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dadosPetição 870180164797, de 18/12/2018, pág. 20/356/20 são puladas a partir do ponto divisório potencial corrente k ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wlc [ k -Ac, ki + Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wlz [kl -Az, kl + Bz ] ou um limite à esquerda de uma janela Wlc [kl -Ac, kl + Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [kt -Az, kl + Bz ], em que a janela Wlc [kl -Ac, kl + Bc ] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
- 16. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wz [ kt - Az, kt + Bz ] atende a condição predefinida Cz compreende especificamente:selecionar F bytes na janela Wlz [kl - Az, kl + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cada byte é
formado por 8 bits, que são indicados como amX,... , e a representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem aos F *H bytes podem ser representados como: ' ai,1 ai,2 · · ai,8 a2,1 a2,2 · · a2,8 , em que quando a =1, pn 1 ’ V =1, e quando amn =0, y aF*H ,1 aF*H ,2 · · aF*H,8 Vamn =-1, em que amn representa qualquer um dentre am1,..., e am8, uma matrizVa é obtida de acordo com uma relação de conversão entre amn e Vam„ a partir dos bits que correspondem aos F*H bytes, a matriz V é representada como:Petição 870180164797, de 18/12/2018, pág. 21/357/20 ,11,2 Va 2,1 Va 2,2 Va2,8F*H*8 números aleatórios são selecionados a ^Pa-F*H,1 VaF*H,2 ’ ’ ’ BaF*H,8 j partir de números aleatórios seguindo-se uma distribuição normal para formaruma matriz R, a matriz R é representada como: ' h1,1 h2,1 h1,2 · h2,2 · h F · h1,8 h · h2,8 h / hF*H ,1 h· hF*H,2 · h · hF*H ,8 J números aleatórios em uma emésima linha da matriz V e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm1 + Vam2 * hm2+...+ Vam,8*hm,8, SM, Sa2, ..., e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1, Sa2, ..., e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wz [k- A, k + B ] atende a condição predefinida C2. - 17. Servidor para buscar um ponto divisório de corrente de dados, CARACTERIZADO pelo fato de que o servidor compreende uma unidade de processamento central e uma memória principal, a unidade de processamento central se comunica com a memória principal, e uma regra predefinida no servidor é: para um ponto divisório potencial k, determinar M pontos px, uma janela Wx [ px - Ax, px + Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [ px - Ax, px + Bx ], em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros;e a memória principal é configurada para armazenar uma instrução executável, e a unidade de processamento central executa a instrução executável para realizar as seguintes etapas:(a) determinar um ponto piz e uma janela Wiz [pz- A2, piz+B2 ] que corresponde ao ponto piz para um ponto divisório potencial corrente ki de acordo com a regra, em que i e z são números inteiros, e 1<z<M;;Petição 870180164797, de 18/12/2018, pág. 22/358/20 (b) determinar se pelo menos uma parte de dados na janela Wiz [ Piz - A, Piz+] atende uma condição predefinida Cz; e quando a pelo menos uma parte de dados na janela W,z [ Piz - Az , Piz+Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto Piz ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz ||+maxx (|| Ax ||+||(ki -pix )||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela Wix [ Px - Ax, pix+Bx ] de M janelas do ponto divisório potencial corrente ki atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente ki como um ponto divisório de corrente de dados.
- 18. Servidor, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos dois pontos pe e pf atendem as condições Ae = Af , Be = Bf , e C e = Cf .
- 19. Servidor, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que a regra compreende adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pf, estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
- 20. Servidor, de acordo com a reivindicação 18 ou 19, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que uma distância entre os pelo menos dois pontos pe e pf é de 1 U.
- 21. Servidor, de acordo com qualquer uma das reivindicações 17 a 19, CARACTERIZADO pelo fato de que a unidade de processamento central é especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz- Az, piz+Bz ] atende a condição predefinida Cz.Petição 870180164797, de 18/12/2018, pág. 23/359/20
- 22. Servidor, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que a unidade de processamento central é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela W [ Piz - Az, Piz+Bz ] atende a condição predefinida Cz.
- 23. Servidor, de acordo com qualquer uma das reivindicações 17 a 19, CARACTERIZADO pelo fato de que quando a pelo menos uma parte de dados na janela Wiz [ piz - Az, piz+Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto piz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela W [ Pic -Ac, pic + Bc ] que corresponde a um ponto pic que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wiz [ piz -A2, piz+Bz ] ou um limite à esquerda de uma janela Wic [pic -Ac, pic + Bc ] que corresponde a um ponto pic que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wiz [ piz - Az, piz + Bz ], em que o ponto pic determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
- 24. Servidor, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que determinar, pela unidade de processamento central usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ piz- Az, piz + Bz ] atende a condição predefinida Cz compreende especificamente:selecionar F bytes na janela Wiz [ piz- Az, piz + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cadaPetição 870180164797, de 18/12/2018, pág. 24/3510/20 byte é formado por 8 bits, que são indicados como aml, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem aos F*H bytes podem ser representados como:
f ai,1 ai,2 ··· ai,8 a2,i a2,2 ··· a2,8 aF*H ,1 aF*H ,2 ··· aF*H,8 y V= am,n -1, em que am,n re , em que quando a^ =1, Vam,n =1, e quando a^ 0, qualquer um dentre a , ..., e a , uma matriz V„ é obtida de acordo com uma relação de conversão entre a e V a s m, n am, a partir dos bits que correspondem aos F*H bytes, a matriz V é representada como:f Va1,1Va 2,1Va1,2Va 2,2 VaF*H ,8 jF*H*8 números aleatórios são selecionados 8 VaF*H,1 VaF*H,2 a partir de números aleatórios seguindo-se uma distribuição normal para formar uma matriz R, a matriz R é representada como:f hi,i h1,2 · h õ · h1,8 h2,1 h2,2 · h · h2,8 h hF*H ,1 h hF*H,2 · h · hF*H ,8 j e em uma emésima números aleatórios em uma emésima linha da matriz Va linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm1 + Vam,2 * hm,2 +...+ Vam,8*hm,8, Sal, Sa2, ..., e S aF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1, Sa2, ..., e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela w [ pz - A, piz + Bz ] atende a condição predefinida Cz. - 25. Servidor para buscar um ponto divisório de corrente de dados, CARACTERIZADO pelo fato de que o servidor compreende uma unidade de processamento central e uma memória principal, a unidade de processamento central se comunica com a memória principal, e uma regra predefinida no servidor é: para um ponto divisório potencial k, determinar M janelas W [ k - AxPetição 870180164797, de 18/12/2018, pág. 25/3511/20 , k + Bx ] e uma condição predefinida Cx que corresponde à janela W [ k - Ax, k + Bx ] em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e a memória principal é configurada para armazenar uma instrução executável, e a unidade de processamento central executa a instrução executável para realizar as seguintes etapas:(a) determinar uma janela correspondente W,z [k, - A2, k, + B2 ] para um ponto divisório potencial corrente ki de acordo com a regra, em que i e z são números inteiros, e 1<z<M;;(b) determinar se pelo menos uma parte dos dados na janela Wz [k, - Az, k, + Bz ] atende uma condição predefinida C2; e quando a pelo menos uma parte de dados na janela W,z [ k, - Az, k, +Bz ] não atende a condição predefinida C2, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente k ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz 11+ maxx (|| Ax ||), de modo a obter um novo ponto divisório potencial, e realizar a etapa (a); e (c) quando pelo menos uma parte de dados em cada janela W x [k, - Ax, k, + Bx ] de M janelas do ponto divisório potencial corrente k, atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente k, como um ponto divisório de corrente de dados.
- 26. Servidor, de acordo com a reivindicação 25, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos duas janelas W,e [kt - Ae, k, + Be ] e wif [k, - Az, k, + Bf ] atendem as condições | A + B |=| Af + Bf | e C = Cf.
- 27. Servidor, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que Ae e A são números inteiros positivos.
- 28. Servidor, de acordo com a reivindicação 26 ou 27,Petição 870180164797, de 18/12/2018, pág. 26/3512/20CARACTERIZADO pelo fato de que a regra compreende adicionalmente Ae 1 = Ay e Be +1 = b .
- 29. Servidor, de acordo com qualquer uma das reivindicações 25 a 27, CARACTERIZADO pelo fato de que a unidade de processamento central é especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela WIZ [ k - Az, ki + Bz ] atende a condição predefinida Cz.
- 30. Servidor, de acordo com a reivindicação 29,CARACTERIZADO pelo fato de que a unidade de processamento central é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela [ ki - A, k + Bz ] atende a condição predefinida Cz .
- 31. Servidor, de acordo com qualquer uma das reivindicações 25 a 27, CARACTERIZADO pelo fato de que quando a pelo menos uma parte de dados na janela Wiz [kt - Az, kt + Bz ] não atende a condição predefinida Cz, o mínimo N de unidades U para buscar um ponto divisório de corrente de dados são puladas a partir do ponto divisório potencial corrente ki ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial e, de acordo com a regra, um limite à esquerda de uma janela Wic [ki -Ac, ki + Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wiz [kt -Az, kt + Bz ], ou um limite à esquerda de uma janela Wic [ki -Ac, ki + Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wiz [kt -Az, kt + Bz ], em que a janela Wic [ki -Ac, ki + Bc ] determinada para o novo ponto divisório potencial é a janela colocada como a primeira em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
- 32. Servidor, de acordo com a reivindicação 29, CARACTERIZADO pelo fato de que determinar, pela unidade dePetição 870180164797, de 18/12/2018, pág. 27/3513/20 processamento central usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [ kl - A, kt + Bz ] atende a condição predefinida Cz compreende especificamente:selecionar F bytes na janela Wiz [ kl - A, kt + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cada byte é formado por 8 bits, que são indicados por aml, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que
correspondem aos F *H bytes podem ser representados como: ' ai,1 ai,2 ··· ai,8 a2,1 a2,2 ··· a2,8 , em que quando a,^ =1, =1, e quando a,^ =0, < ap*H,1 aF*H,2 ··· aF*H ,8 y Vam,n =-1, em que a representa qualquer um dentre a , ···, e a , uma matriz Va é obtida de acordo com uma relação de conversão entre am„ e Vam a partir dos bits que correspondem aos F*H bytes, a matriz V é representada como:íV a1,1 V a1,2 V a1,8 Va 2,1 Va2,2 · ·· Va 2,8 Ç VaF*H ,1 VaF*H ,2 VaF*H ,8 y , F*H*8 números aleatórios são selecionados a partir de números aleatórios seguindo-se uma distribuição normal para formar í b k . h. 3 uma matriz R, a matriz R é representada como:h1,1 h1,2 · · h1,8 h2,1 h h2,2 · h · h2,8 h Ç hF*H ,1 h hF*H,2 · h · hF*H ,8 y J números aleatórios em uma emésima linha da matriz V e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam1 * hm1 + Vam2 * hm2+...+ 8*hm8, , Se2, ..., e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSaX, Se2, ···. e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wlz [ plz- Az, piz + Bz ] atende a condição predefinida Cz.Petição 870180164797, de 18/12/2018, pág. 28/3514/20 - 33. Servidor para buscar um ponto divisório de corrente de dados, CARACTERIZADO pelo fato de que uma regra predefinida no servidor é: para um ponto divisório potencial k , determinar M pontos px, uma janela Wx [ px - Αχ, px + Bx ] que corresponde ao ponto px, e uma condição predefinida Cx que corresponde à janela Wx [px - Ax, px + Bx ], em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor compreende: uma unidade de determinação (1901), configurada para realizar a etapa (a): (a) determinar um ponto piz e uma janela Wiz [ piz - Az, piz+Bz ] que corresponde ao ponto piz para um ponto divisório potencial corrente ki de acordo com a regra, em que i e z são números inteiros, e 1<z<M; e uma unidade de julgamento e processamento (1902), configurada para: determinar se pelo menos uma parte de dados na janela W [ Piz - A 2 , Piz + Bz ] atende uma condição predefinida Cz;quando a pelo menos uma parte de dados na janela W [ p.z - a, , piz+Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto piz ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz 11+ maxx (|| Ax ||+||(kt -pix )||), de modo a obter um novo ponto divisório potencial, em que a unidade de determinar realiza a etapa (a) para o novo ponto divisório potencial; e quando pelo menos uma parte de dados em cada janela Wx [ Px Ax, Pix + Bx ] de M janelas do ponto divisório potencial corrente ki atende a condição predefinida Cx, selecionar o ponto divisório potencial corrente ki, como um ponto divisório de corrente de dados.
- 34. Servidor, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos dois pontos pe e pf atendem as condições A, = A,, B, = B,, e C, =Petição 870180164797, de 18/12/2018, pág. 29/3515/20
- 35. Servidor, de acordo com a reivindicação 34, CARACTERIZADO pelo fato de que a regra compreende adicionalmente: com relação ao ponto divisório potencial k, os pelo menos dois pontos pe e pz estão em uma direção oposta à direção de buscar um ponto divisório de corrente de dados.
- 36. Servidor, de acordo com a reivindicação 34 ou 35, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que uma distância entre os pelo menos dois pontos pe e pz é de 1 U.
- 37. Servidor, de acordo com qualquer uma das reivindicações 33 a 35, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é especificamente configurada para determinar, usandose uma função aleatória, se a pelo menos uma parte de dados na janela WIz [ Piz - A, Piz+Bz ] atende a condição predefinida Cz.
- 38. Servidor, de acordo com a reivindicação 37, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é especificamente configurada para determinar, usando uma função hash, se a pelo menos uma parte de dados na janela W [ Piz - Az , Piz + Bz ] atende a condição predefinida Cz.
- 39. Servidor, de acordo com qualquer um dentre reivindicações 33 a 35, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é configurada para: quando a pelo menos uma parte de dados na janela Wiz [ piz - Az, pz + Bz ] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto pz ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo ponto divisório potencial, em que a unidade de determinação realiza a etapa (a) para o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wic [Pic-Ac, pic + Bc ] que corresponde a um ponto pic que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wiz [ piz -A2, piz+Bz ] ou um limite à esquerda de uma janela Wic [pic -Ac, pic + Bc ] caiaPetição 870180164797, de 18/12/2018, pág. 30/3516/20 dentro de uma faixa da janela Wi2 [ piz - Az, piz+Bz ], em que o ponto BiC determinado para o novo ponto divisório potencial é um ponto colocado como o primeiro em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M pontos que são determinados para o novo ponto divisório potencial de acordo com a regra.
- 40. Servidor, de acordo com a reivindicação 37, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é especificamente configurada para determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela WiC [ pic - Ac , PiC + Bc ] atende a condição predefinida C2 compreende especificamente:selecionar F bytes na janela Wi2 [ pi2- A2, pi2 + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cada byte é formado por 8 bits, que são indicados como amX, ..., e am8, representando do primeiro bit ao oitavo bit de um emésimo byte nos F*H bytes, bits que correspondem aos F*H bytes podem ser representados como:
' ai, 1 a1,2 a1,8 a2,1 a2,2 a2,8 V aF*H, 1 aF*H, 2 aF*H,8 χ V= am.n -1, em que am,n re , em que quando amn =1, V =1, e quando am,n =0, qualquer um dentre amX, ..., e am8, uma matriz Va é obtida de acordo com uma relação de conversão entre amn e Vam a partir dos bits que correspondem aos F*H bytes, a matriz V é representada como:Va,AVa>.2Va 2,1Va!., ΙF*H*8 números aleatórios são selecionados ,VaF*//, 1 VaF*H, 2 ’ ’ ’ VaF*H, 8 χ a partir de números aleatórios seguindo-se uma distribuição normal para formar' h1,1 h1,2 h / h1,8 uma matriz R, a matriz R é representada como: h2,1 h2,2 h h2,8 h / hF*H ,1 h hF*H,2 h hF*H ,8 X números aleatórios em uma emésima linha da matriz V e em uma emésimaPetição 870180164797, de 18/12/2018, pág. 31/3517/20 linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm1 + Vam2 * hm2 +...+ 8*hm8, SaX, Sa2, ..., e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entreSaX, Sa2, ..., e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela W [ p,z- Az, piz + Bz ] atende a condição predefinida Cz. - 41. Servidor para buscar um ponto divisório de corrente de dados, CARACTERIZADO pelo fato de que uma regra predefinida no servidor é: para um ponto divisório potencial k , determinar M janelas Wx [k- Ax, k + Bx ] e uma condição predefinida Cx que corresponde à janela Wx [k- Ax, k + Bx ], em que x indica números naturais consecutivos de 1 a M, M>2, e Ax e Bx são números inteiros; e o servidor compreende: uma unidade de determinação (1901), configurada para realizar a etapa (a):(a) determinar uma janela correspondente Wiz [k, - Az, k, + Bz ] para um ponto divisório potencial corrente ki de acordo com a regra, em que i e z são números inteiros, e 1<z<M; e uma unidade de julgamento e processamento (1902), configurada para determinar se pelo menos uma parte de dados na janela Wz [ k, - Az, k, + Bz ] atende uma condição predefinida Cz;quando a pelo menos uma parte de dados na janela W,z [ k,- A,, k, +Bz ] não atende a condição predefinida Cz, pular um mínimo de N unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente k ao longo de uma direção de buscar um ponto divisório de corrente de dados, em que N*U não é maior que IIBz ||+ maxx (|| Ax ||), de modo a obter um novo ponto divisório potencial, em que a unidade de determinação realiza a etapa (a) para o novo ponto divisório potencial; e quando pelo menos uma parte de dados em cada janela W, [ k< Ax , k + Bx ] de M janelas do ponto divisório potencial corrente k atende aPetição 870180164797, de 18/12/2018, pág. 32/3518/20 condição predefinida Cx, selecionar o ponto divisório potencial corrente k, como um ponto divisório de corrente de dados.
- 42. Servidor, de acordo com a reivindicação 41, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que pelo menos duas janelas Wie [kt - Ae, kt + Be ] e Wif [k, - Af, ki + Bf ] atendem as condições | Ae + Be |=| az + Bz | e Ce = Cf.
- 43. Servidor, de acordo com a reivindicação 42, CARACTERIZADO pelo fato de que a regra compreende adicionalmente que Ae e A são números inteiros positivos.
- 44. Servidor, de acordo com a reivindicação 42 ou 43, CARACTERIZADO pelo fato de que a regra compreende adicionalmente Ae 1 = Az e Be +1 = Bf.
- 45. Servidor, de acordo com qualquer uma dentre as reivindicações 41 a 43, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é especificamente configurada para:determinar, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wiz [kt - Az, k, + B2 ] atende a condição predefinida
- 46. Servidor, de acordo com a reivindicação 45, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) determina especificamente, usando uma função hash, se a pelo menos uma parte de dados na janela Wiz [k, - Az, kt + B2 ] atende a condição predefinida C2.
- 47. Servidor, de acordo com qualquer uma das reivindicações 41 a 43, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) é configurada para: quando a pelo menos uma parte de dados na janela Wiz [kt - Az, kt + Bz ] não atende a condição predefinida Cz, pular o mínimo N de unidades U para buscar um ponto divisório de corrente de dados a partir do ponto divisório potencial corrente kt ao longo da direção de buscar um ponto divisório de corrente de dados, de modo a obter o novo pontoPetição 870180164797, de 18/12/2018, pág. 33/3519/20 divisório potencial, a unidade de determinação realiza a etapa (a) para o novo ponto divisório potencial, e de acordo com a regra, um limite à esquerda de uma janela Wlc [kl -Ac, kl + Bc ] que é determinado para o novo ponto divisório potencial coincide com um limite à direita da janela Wiz [ki -A, k B ] ou um limite à esquerda de uma janela Wic [ kl - Ac , ki + Bc ] que é determinado para que o novo ponto divisório potencial caia dentro de uma faixa da janela Wlz [ki Az, k + Bz ], em que a janela Wlc [ kl -Ac, kl + Bc ] determinada para o novo ponto divisório potencial é uma janela colocada como a primeira em uma sequência, que é obtida de acordo com a direção de busca por um ponto divisório de corrente de dados, de M janelas que são determinadas para o novo ponto divisório potencial de acordo com a regra.
- 48. Servidor, de acordo com a reivindicação 46, CARACTERIZADO pelo fato de que a unidade de julgamento e processamento (1902) determina, usando-se uma função aleatória, se a pelo menos uma parte de dados na janela Wlz [kl - Az, kt + Bz ] atende a condição predefinida Cz compreende especificamente:selecionar F bytes na janela Wlz [kl - Az, k{ + Bz ], e usar os F bytes repetidamente H vezes para obter F*H bytes no total, em que F>1, cada byte é formado por 8 bits, que são indicados como como amX,..., e am8 representando ao oitavo bit de um do primeiro bit
correspondem aos F ' ai, 1 ai,2 ·· ai,8 a2,1 a2,2 a2,8 ( a'F*H ,1 aF*H ,2 aF*H,8 y *H bytes emésimo byte nos F*H bytes, bits que podem ser representados como:, em que quando am,n =1, Vam,n =1, e quando am,n =0,Vamn =-1, em que amn representa qualquer um dentre am,1,..., e am8, uma matrizV é obtida de acordo com uma relação de conversão entre a e V a partir a s m, n am, n ~ dos bits que correspondem aos F*H bytes, a matriz V é representada como:Petição 870180164797, de 18/12/2018, pág. 34/3520/20 ,11,2 Va 2,1 Va 2,2 Va2,8F*H*8 números aleatórios são selecionados a ^Fa-F*H,1 VaF*H,2 ’ ’ ’ VaF*H,8 y partir de números aleatórios seguindo-se uma distribuição normal para formar uma matriz R, a matriz R é representada como:h1,2 · h Ί · h1,8 h2,1 h2,2 · h · h2,8 h Ç hF*H ,1 h· hF*H,2 · h · hF*H ,8 números aleatórios em uma emésima linha da matriz V e em uma emésima linha da matriz R são multiplicados e os produtos são somados para se obter um valor, que é especificamente representado como Sam = Vam,1 * hm1 + Vam2 * hm2+...+ Vam,8*hm,8, Sa1, Sa2, ..., e SaF*H são obtidos de um mesmo modo, uma quantidade K de valores maiores que 0 entre Sa1, Sa2, ..., e SaF*H é contada, e quando K é um número par, a pelo menos uma parte de dados na janela Wiz [f- A, f + Bz ] atende a condição predefinida Cz.Petição 870180164797, de 18/12/2018, pág. 35/35
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2014/072115 | 2014-02-14 | ||
CN2014072115 | 2014-02-14 | ||
PCT/CN2014/072648 WO2015120645A1 (zh) | 2014-02-14 | 2014-02-27 | 一种基于服务器查找数据流分割点的方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112016005391B1 true BR112016005391B1 (pt) | 2019-04-30 |
BR112016005391B8 BR112016005391B8 (pt) | 2022-10-25 |
Family
ID=53799539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
Country Status (13)
Country | Link |
---|---|
US (4) | US9967304B2 (pt) |
EP (1) | EP3026585A4 (pt) |
JP (1) | JP6198090B2 (pt) |
KR (1) | KR101912727B1 (pt) |
AU (1) | AU2014382891B2 (pt) |
BR (1) | BR112016005391B8 (pt) |
CA (1) | CA2922994C (pt) |
IL (1) | IL244830B (pt) |
MX (1) | MX358948B (pt) |
NZ (1) | NZ717601A (pt) |
RU (1) | RU2639947C2 (pt) |
SG (2) | SG11201601357TA (pt) |
WO (1) | WO2015120645A1 (pt) |
Families Citing this family (4)
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 |
KR101912727B1 (ko) * | 2014-02-14 | 2018-10-29 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터 흐름 분할 포인트를 검색하기 위한 서버 기반 방법, 및 서버 |
US20200034244A1 (en) * | 2018-07-26 | 2020-01-30 | EMC IP Holding Company LLC | Detecting server pages within backups |
CN114063882B (zh) * | 2020-07-31 | 2024-09-03 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
Family Cites Families (44)
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 |
CN1997011B (zh) * | 2006-07-26 | 2011-01-12 | 白杰 | 数据分割方法和数据分割装置 |
US8214517B2 (en) * | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
US8046509B2 (en) * | 2007-07-06 | 2011-10-25 | Prostor Systems, Inc. | Commonality factoring for removable media |
CN101547138A (zh) * | 2008-03-26 | 2009-09-30 | 国际商业机器公司 | 用于快速模式匹配的方法和装置 |
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 |
US8423520B2 (en) * | 2009-11-23 | 2013-04-16 | Dell Products L.P. | Methods and apparatus for efficient compression and deduplication |
US8396899B2 (en) * | 2009-11-23 | 2013-03-12 | Dell Products L.P. | Efficient segment detection for 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 |
US9400799B2 (en) * | 2010-10-04 | 2016-07-26 | Dell Products L.P. | Data block migration |
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 |
CN102591892A (zh) | 2011-01-13 | 2012-07-18 | 索尼公司 | 数据分段设备和方法 |
WO2012140686A1 (en) * | 2011-04-11 | 2012-10-18 | 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 |
CN102646117B (zh) | 2012-02-20 | 2015-07-08 | 华为技术有限公司 | 文件数据传送的方法与装置 |
US9164688B2 (en) * | 2012-07-03 | 2015-10-20 | International Business Machines Corporation | Sub-block partitioning for hash-based deduplication |
WO2014037767A1 (en) * | 2012-09-05 | 2014-03-13 | 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 |
US20150363134A1 (en) * | 2013-03-04 | 2015-12-17 | Hitachi, Ltd. | Storage apparatus and data management |
CN103324699B (zh) | 2013-06-08 | 2016-03-02 | 西安交通大学 | 一种适应大数据应用的快速重复数据删除方法 |
KR101912727B1 (ko) * | 2014-02-14 | 2018-10-29 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터 흐름 분할 포인트를 검색하기 위한 서버 기반 방법, 및 서버 |
-
2014
- 2014-02-27 KR KR1020167007148A patent/KR101912727B1/ko active IP Right Grant
- 2014-02-27 WO PCT/CN2014/072648 patent/WO2015120645A1/zh active Application Filing
- 2014-02-27 SG SG11201601357TA patent/SG11201601357TA/en unknown
- 2014-02-27 EP EP14882733.0A patent/EP3026585A4/en not_active Withdrawn
- 2014-02-27 SG SG10201703412SA patent/SG10201703412SA/en unknown
- 2014-02-27 MX MX2016004935A patent/MX358948B/es active IP Right Grant
- 2014-02-27 JP JP2016518730A patent/JP6198090B2/ja active Active
- 2014-02-27 NZ NZ717601A patent/NZ717601A/en unknown
- 2014-02-27 AU AU2014382891A patent/AU2014382891B2/en active Active
- 2014-02-27 RU RU2016114526A patent/RU2639947C2/ru active
- 2014-02-27 CA CA2922994A patent/CA2922994C/en active Active
- 2014-02-27 BR BR112016005391A patent/BR112016005391B8/pt active IP Right Grant
-
2016
- 2016-03-30 IL IL244830A patent/IL244830B/en active IP Right Grant
- 2016-08-12 US US15/235,407 patent/US9967304B2/en active Active
- 2016-08-12 US US15/235,378 patent/US9906577B2/en active Active
-
2018
- 2018-03-28 US US15/938,845 patent/US10264045B2/en active Active
-
2019
- 2019-03-13 US US16/352,509 patent/US10542062B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10264045B2 (en) | 2019-04-16 |
KR101912727B1 (ko) | 2018-10-29 |
IL244830A0 (en) | 2016-05-31 |
AU2014382891B2 (en) | 2016-11-10 |
AU2014382891A1 (en) | 2016-03-17 |
CA2922994A1 (en) | 2015-08-20 |
CA2922994C (en) | 2017-10-10 |
RU2016114526A (ru) | 2017-10-19 |
US20160350026A1 (en) | 2016-12-01 |
US20190215352A1 (en) | 2019-07-11 |
MX2016004935A (es) | 2016-06-28 |
WO2015120645A1 (zh) | 2015-08-20 |
US10542062B2 (en) | 2020-01-21 |
RU2639947C2 (ru) | 2017-12-25 |
SG11201601357TA (en) | 2016-03-30 |
US20180219930A1 (en) | 2018-08-02 |
SG10201703412SA (en) | 2017-06-29 |
BR112016005391B8 (pt) | 2022-10-25 |
IL244830B (en) | 2021-03-25 |
EP3026585A1 (en) | 2016-06-01 |
NZ717601A (en) | 2017-05-26 |
MX358948B (es) | 2018-09-07 |
US20170041367A1 (en) | 2017-02-09 |
JP2017505927A (ja) | 2017-02-23 |
US9967304B2 (en) | 2018-05-08 |
US9906577B2 (en) | 2018-02-27 |
JP6198090B2 (ja) | 2017-09-20 |
EP3026585A4 (en) | 2017-04-05 |
KR20160045108A (ko) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112016005391B1 (pt) | Método e servidor para buscar ponto divisório de corrente de dados com base em servidor | |
WO2020258855A1 (zh) | 基于区块链的分级存储方法及装置、电子设备 | |
US10545865B2 (en) | Systems and methods for implementing low-latency lookup circuits using sparse hash functions | |
US20070133593A1 (en) | Searching Strings Representing a Regular Expression | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
JP2020513176A5 (pt) | ||
JP6362805B1 (ja) | ブロックチェーン・ネットワークにおいて過去のトランザクションにアクセス可能とするための方法及び当該ネットワークを構成するためのノード | |
US9244857B2 (en) | Systems and methods for implementing low-latency lookup circuits using multiple hash functions | |
EP3754900A1 (en) | Method for validating transaction in blockchain network and node for configuring same network | |
US20140032832A1 (en) | Tcam extended search function | |
WO2024082748A1 (zh) | 数据存储系统及其数据存储结构的数据寻址和返回方法 | |
JP2012257336A (ja) | 経路計算方法、プログラムおよび計算装置 | |
CN110244951A (zh) | 应用发布方法及装置 | |
JP2019146137A (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
JP3845845B2 (ja) | 連想メモリ・システムおよびネットワーク機器およびネットワーク・システム | |
US8842543B2 (en) | Trap-free shortest link-disjoint paths | |
JP5673667B2 (ja) | パケット分類器、パケット分類方法、パケット分類プログラム | |
WO2024066007A1 (zh) | 区块链系统中的交易执行方法、共识节点和区块链系统 | |
EP3107253A1 (fr) | Transformation d'infrastructures réseaux non structurées en topologies virtuelles structurées adaptées a des algorithmes de routage spécifiques | |
US8755386B2 (en) | Traceback packet transport protocol | |
US10146902B2 (en) | Sharing global route topologies in detailed routing | |
WO2018127943A1 (ja) | 転送装置および経路追加方法 | |
US20110099535A1 (en) | Encoding Switch on Ordered Universes with Binary Decision Diagrams | |
JPH07118719B2 (ja) | パターン探索方法及び装置 | |
CN107533437A (zh) | 弹性存储器结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/02/2014, OBSERVADAS AS CONDICOES LEGAIS. (CO) 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/02/2014, OBSERVADAS AS CONDICOES LEGAIS |
|
B25A | Requested transfer of rights approved |
Owner name: XFUSION DIGITAL TECHNOLOGIES CO., LTD. (CN) |