IP Library Granted Patent US 9,906,577
Granted Patent B2
US 9,906,577 · App. 15/235,378 · Granted Feb 27, 2018

Method and server for searching for data stream dividing point based on server

Inventors: Chuanshuai Yu (Chengdu, CN); Chengwei Zhang (Chengdu, CN); Linbo Xu (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L65/602G06F3/0608G06F3/0641G06F3/0673H04L47/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,906,577
App. No.
15/235,378
Granted
Feb 27, 2018
Kind
B2
Abstract

Embodiments of the present invention provide a method for searching for a data stream dividing point based on a server. In the embodiments of the present invention, a data stream dividing point is searched for by determining whether at least a part of data in a window of M windows meets a preset condition, and when the at least a part of data in the window does not meet the preset condition, a length of N*U is skipped, so as to obtain a next potential dividing point, thereby improving efficiency of searching for a data stream dividing point.

Claims (597)

1. A method performed by a server processor executing computer instructions stored in a server memory for searching for a data stream dividing point for dividing data into a plurality of portions to facilitate data storage according to a rule, wherein the rule comprising: for a potential dividing point k, determining M windows W x [k−A x , k+B x ] and a preset condition C x corresponding to the window W x [k−A x , k+B x ], wherein x indicates consecutive natural numbers from 1 to M, M≧2, and A x and B x are integers for establishing a potential dividing point k, the method comprising:

(a) determining a corresponding window W iz [k i −A z , k i +B z ] for a current potential dividing point k i according to the rule, wherein i and z are integers, and 1≦z≦M;

(b) determining whether at least a part of data in the window W iz [k i −A z , k i +B z ] meets a preset condition C z ; and

when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , skipping N minimum units U for searching for a data stream dividing point from the current potential dividing point k i along a direction of searching for a data stream dividing point, wherein N*U is not greater than ∥B z ∥+max x (∥A x ∥), so as to obtain a new potential dividing point, and performing step (a); and

(c) when at least a part of data in each window W ix [k i −A x , k i +B x ] of M windows of the current potential dividing point k i meets the preset condition C x , selecting the current potential dividing point k i as a data stream dividing point.

2. The method according to claim 1 , wherein the rule further comprises that at least two windows W ie [k i −A e , k i +B e ] and W if [k i −A f , k i +B f ] meet conditions |A e +B e |=|A f +B f | and C e =C f .

3. The method according to claim 2 , wherein the rule further comprises that A e and A f are positive integers.

4. The method according to claim 2 , wherein the rule further comprises A e −1=A f and B e +1=B f .

5. The method according to claim 1 , wherein determining, by using a random function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

6. The method according to claim 5 , wherein the determining, by using a random function, whether the at least a part of data in W iz [k i −A z , k i +B z ] meets the preset condition C z is specifically: determining, by using a hash function, whether the at least a part of data in W iz [k i −A z , k i +B z ] meets the preset condition C z .

7. The method according to claim 1 , wherein when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , the N minimum units U for searching for a data stream dividing point are skipped from the current potential dividing point k i along the direction of searching for a data stream dividing point, so as to obtain the new potential dividing point, and according to the rule, a left boundary of a window W ic [k i −A c , k i +B c ] that is determined for the new potential dividing point coincides with a right boundary of the window W iz [k i −A z , k i +B z ] or a left boundary of a window W ic [k i −A c , k i +B c ] that is determined for the new potential dividing point falls within a range of the window W iz [k i −A z , k i +B z ], wherein the window W ic [k i −A c , k i +B c ] determined for the new potential dividing point is a window ranking the first in a sequence, which is obtained according to the direction of searching for a data stream dividing point, of M windows that are determined for the new potential dividing point according to the rule.

8. The method according to claim 5 , wherein selecting F bytes in the window W iz [k i −A z , k i +B z ], and using the F bytes repeatedly H times to obtain F*H bytes in total, wherein F≧1, each byte is formed by 8 bits, which are denoted as a m,1 , . . . , and a m,8 , representing the 1st bit to the 8th bit of an mth byte in the F*H bytes, bits corresponding to the F*H bytes can be represented as:

(

a

1

,

1

a

1

,

2

a

1

,

8

a

2

,

1

a

2

,

2

a

2

,

8

a

F

*

H

,

1

a

F

*

H

,

2

a

F

*

H

,

8

)

,

wherein when a m,n =1, V am,n =1, and when a m,n =0, V am,n =−1,wherein a m,n represents any one of a m,1 , . . . , and a m,8 a matrix V a is obtained according to a conversion relationship between a m,n and V am,n from the bits corresponding to the F*H bytes, the matrix V a is represented as:

(

V

a

1

,

1

V

a

1

,

2

V

a

1

,

8

V

a

2

,

1

V

a

2

,

2

V

a

2

,

8

V

aF

*

H

,

1

V

aF

*

H

,

2

V

aF

*

H

,

8

)

,

F*H*8 random numbers are selected from random numbers following normal distribution to form a matrix R, the matrix R is represented as:

(

h

1

,

1

h

1

,

2

h

1

,

8

h

2

,

1

h

2

,

2

h

2

,

8

h

F

*

H

,

1

h

F

*

H

,

2

h

F

*

H

,

8

)

,

random numbers in an mth row of the matrix V a and an mth row of the matrix R are multiplied and products are added to obtain a value, which is specifically represented as S am =V am,1 *h m,1 +V am,2 *h m,2 + . . . +V am,8 *h m,8 , S a1 , S a2 , . . . , and S aF*H are obtained in a same way, a quantity K of values greater than 0 among S a1 , S a2 , . . . , and S aF*H is counted, and when K is an even number, the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

9. A server for searching for a data stream dividing point for dividing data into a plurality of portions to facilitate data storage according to a rule, wherein the rule comprising: for a potential dividing point k, determining M windows W x [k−A x , k+B x ] and a preset condition C x corresponding to the window W x [k−A x , k+B x ], wherein x indicates consecutive natural numbers from 1 to M, M≧2, and A x and B x are integers for establishing a potential dividing point k, wherein the server comprises a central processing unit and a primary memory, the central processing unit communicates with the primary memory to execute computer instructions stored therein to perform the steps of:

(a) determining a corresponding window W iz [k i −A z , k i +B z ] for a current potential dividing point k 1 according to the rule, wherein i and z are integers, and 1≦z≦M;

(b) determining whether at least a part of data in the window W iz [k i −A z , k i +B z ] meets a preset condition C z ;

(c) when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , skipping N minimum units U for searching for a data stream dividing point from the current potential dividing point k i along a direction of searching for a data stream dividing point, wherein N*U is not greater than ∥B z ∥+max x (∥A x ∥), so as to obtain a new potential dividing point, and performing step (a); and

(d) when at least a part of data in each window W ix [k i −A x , k i +B x ] of M windows of the current potential dividing point k i meets the preset condition C x , selecting the current potential dividing point k i as a data stream dividing point.

10. The server according to claim 9 , wherein the rule further comprises that at least two windows W ie [k i −A e , k i +B e ] and W if [k i −A f , k i +B f ] meet conditions |A e +B e |=|A f +B f | and C e =C f .

11. The server according to claim 10 , wherein the rule further comprises that A e and A f are positive integers.

12. The server according to claim 10 , wherein the rule further comprises A e −1=A f and B e +1=B f .

13. The server according to claim 9 , wherein the central processing unit is specifically configured to determine, by using a random function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

14. The server according to claim 13 , wherein the central processing unit is specifically configured to determine, by using a hash function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

15. The server according to claim 9 , wherein when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , the N minimum units U for searching for a data stream dividing point are skipped from the current potential dividing point k i along the direction of searching for a data stream dividing point, so as to obtain the new potential dividing point, and according to the rule, a left boundary of a window W ic [k i −A c , k i +B c ] that is determined for the new potential dividing point coincides with a right boundary of the window W iz [k i −A z , k i +B z ] or a left boundary of a window W ic [k i −A c , k i +B c ] that is determined for the new potential dividing point falls within a range of the window W iz [k i −A z , k i +B z ], wherein the window W ic [k i −A c , k i +B c ] determined for the new potential dividing point is a window ranking the first in a sequence, which is obtained according to the direction of searching for a data stream dividing point, of M windows that are determined for the new potential dividing point according to the rule.

16. The server according to claim 14 , wherein the determining, by the central processing unit by using a random function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z specifically comprises:

selecting F bytes in the window W iz [k i −A z , k i +B z ], and using the F bytes repeatedly H times to obtain F*H bytes in total, wherein F≧1, each byte is formed by 8 bits, which are denoted as a m,1 , . . . , and a m,8 , representing the 1st bit to the 8th bit of an mth byte in the F*H bytes, bits corresponding to the F*H bytes can be represented as:

(

a

1

,

1

a

1

,

2

a

1

,

8

a

2

,

1

a

2

,

2

a

2

,

8

a

F

*

H

,

1

a

F

*

H

,

2

a

F

*

H

,

8

)

,

wherein when a m,n =1, V am,n =1, and when a m,n =0, V am,n =−1, wherein a m,n represents any one of a m,1 , . . . , and a m,8 , a matrix V a is obtained according to a conversion relationship between a m,n and V am,n from the bits corresponding to the F*H bytes, the matrix V a is represented as:

(

V

a

1

,

1

V

a

1

,

2

V

a

1

,

8

V

a

2

,

1

V

a

2

,

2

V

a

2

,

8

V

aF

*

H

,

1

V

aF

*

H

,

2

V

aF

*

H

,

8

)

,

F*H*8 random numbers are selected from random numbers following normal distribution to form a matrix R, the matrix R is represented as:

(

h

1

,

1

h

1

,

2

h

1

,

8

h

2

,

1

h

2

,

2

h

2

,

8

h

F

*

H

,

1

h

F

*

H

,

2

h

F

*

H

,

8

)

,

random numbers in an mth row of the matrix V a and an mth row of the matrix R are multiplied and products are added to obtain a value, which is specifically represented as S am =V am,1 *h m,1 +V am,2 *h m,2 + . . . +V am,8 *h m,8 , S a1 , S a2 , . . . , and S aF*H are obtained in a same way, a quantity K of values greater than 0 among S a1 , S a2 , . . . , and S aF*H is counted, and when K is an even number, the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

17. A non-transitory computer-readable storage medium, wherein the computer-readable storage medium is configured to store executable computer instructions for execution by a processor that prompts the processor to determine a potential dividing point k for dividing data into a plurality of portions to facilitate data storage according to a rule, wherein the rule comprising: for a potential dividing point k, determining M windows W x [k−A x , k+B x ] and a preset condition C x corresponding to the window W x [k−A x , k+B x ], wherein x indicates consecutive natural numbers from 1 to M, M≧2, and A x and B x are integers; and for:

(a) determining a corresponding window W iz [k i −A z , k i +B z ] for a current potential dividing point k i according to the rule, wherein i and z are integers, and 1≦z≦M;

(b) determining whether at least a part of data in the window W iz [k i −A z , k i +B z ] meets a preset condition C z ; and

when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , skipping N minimum units U for searching for a data stream dividing point from the current potential dividing point k i along a direction of searching for a data stream dividing point, wherein N*U is not greater than ∥B z ∥+max x (∥A x ∥), so as to obtain a new potential dividing point, and performing step (a); and

(c) when at least a part of data in each window W ix [k i −A x , k i +B x ] of M windows of the current potential dividing point k i meets the preset condition C x , selecting the current potential dividing point k i as a data stream dividing point.

18. The non-transitory computer-readable storage medium according to claim 17 , wherein the rule further comprises that at least two windows W ie [k i −A e , k i +B e ] and W if [k i −A f , k i +B f ] meet conditions |A e +B e |=|A f +B f | and C e =C f .

19. The non-transitory computer-readable storage medium according to claim 18 , wherein the rule further comprises that A e and A f are positive integers.

20. The non-transitory computer-readable storage medium according to claim 18 , wherein the rule further comprises A e −1=A f and B e +1=B f .

21. The non-transitory computer-readable storage medium according to claim 17 , wherein:

determining, by using a random function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

22. The non-transitory computer-readable storage medium according to claim 21 , wherein determining, by the server by using a hash function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

23. The non-transitory computer-readable storage medium according to claim 17 , wherein when the at least a part of data in the window W iz [k i −A z , k i +B z ] does not meet the preset condition C z , the N minimum units U for searching for a data stream dividing point are skipped from the current potential dividing point k i along the direction of searching for a data stream dividing point, so as to obtain the new potential dividing point, and according to the rule, a left boundary of a window W ic [k i −A c , k i +B c ] that is determined for the new potential dividing point coincides with a right boundary of the window W iz [k i −A z , k i +B z ] or a left boundary of a window ic [k i −A c , k i +B c ] that is determined for the new potential dividing point falls within a range of the window W iz [k i −A z , k i +B z ], wherein the window W ic [k i −A c , k i +B c ] determined for the new potential dividing point is a window ranking the first in a sequence, which is obtained according to the direction of searching for a data stream dividing point, of M windows that are determined for the new potential dividing point according to the rule.

24. The non-transitory computer-readable storage medium according to claim 21 , wherein the determining, by using a random function, whether the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z specifically comprises:

selecting F bytes in the window W iz [k i −A z , k i +B z ], and using the F bytes repeatedly H times to obtain F*H bytes in total, wherein F≧1, each byte is formed by 8 bits, which are denoted as a m,1 , . . . , and a m,8 , representing the 1st bit to the 8th bit of an mth byte in the F*H bytes, bits corresponding to the F*H bytes can be represented as:

(

a

1

,

1

a

1

,

2

a

1

,

8

a

2

,

1

a

2

,

2

a

2

,

8

a

F

*

H

,

1

a

F

*

H

,

2

a

F

*

H

,

8

)

,

wherein when a m,n =1, V am,n =1, and when a m,n =0, V am,n =−1, wherein a m,n represents any one of a m,1 , . . . , and a m,8 , a matrix V a is obtained according to a conversion relationship between a m,n and V am,n from the bits corresponding to the F*H bytes, the matrix V a is represented as:

(

V

a

1

,

1

V

a

1

,

2

V

a

1

,

8

V

a

2

,

1

V

a

2

,

2

V

a

2

,

8

V

aF

*

H

,

1

V

aF

*

H

,

2

V

aF

*

H

,

8

)

,

F*H*8 random numbers are selected from random numbers following normal distribution to form a matrix R, the matrix R is represented as:

(

h

1

,

1

h

1

,

2

h

1

,

8

h

2

,

1

h

2

,

2

h

2

,

8

h

F

*

H

,

1

h

F

*

H

,

2

h

F

*

H

,

8

)

,

random numbers in an mth row of the matrix V a and an mth row of the matrix R are multiplied and products are added to obtain a value, which is specifically represented as S am =V am,1 *h m,1 +V am,2 *h m,2 + . . . +V am,8 *h m,8 , S a1 , S a2 , . . . , and S aF*H are obtained in a same way, a quantity K of values greater than 0 among S a1 , S a2 , . . . , and S aF*H is counted, and when K is an even number, the at least a part of data in the window W iz [k i −A z , k i +B z ] meets the preset condition C z .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2022
From: HUAWEI TECHNOLOGIES CO., LTD.
To: XFUSION DIGITAL TECHNOLOGIES CO., LTD.
Reel/Frame 058682/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2016
From: YU, CHUANSHUAI; ZHANG, CHENGWEI; XU, LINBO
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 040178/0761 →
Priority Claims (1)
WO PCT/CN2014/072115 · Feb 14, 2014 · international
Continuity (2)
Continuation PCTCN2014072648 · Feb 27, 2014
Related Publication 20170041367A1 · Feb 9, 2017