IP Library Granted Patent US 10,264,045
Granted Patent B2
US 10,264,045 · App. 15/938,845 · Granted Apr 16, 2019

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 10,264,045
App. No.
15/938,845
Granted
Apr 16, 2019
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 (601)

1. A method performed by a server processor for searching for a data stream dividing point and for dividing data into a plurality of portions the method comprising:

determining a window 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 ] based on a dividing rule, 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,

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

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

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 , dividing the data stream at the current potential dividing point k i .

2. The method according to claim 1 , wherein the dividing 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 dividing rule further comprises that A e and A f are positive integers.

4. The method according to claim 2 , wherein the dividing 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 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

M

M

M

M

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

M

M

M

M

V

a

F

*

H

,

1

V

a

F

*

H

,

2

Λ

V

a

F

*

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

M

M

M

M

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 m8 , 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 .

8. 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 based on the dividing 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 based on the dividing rule.

9. A server for searching for a data stream dividing point for dividing data into a plurality of portions, comprising:

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:

determining a window 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 ] based on a dividing rule, 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;

determining a corresponding window W iz [k i −A z , k i +B z ] for a current potential dividing point k i based on the dividing rule, wherein i and z are integers, and 1≤z≤M;

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 ;

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

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 , dividing the data stream at the current potential dividing point k i .

10. The server according to claim 9 , wherein the dividing 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 dividing rule further comprises that A e and A f are positive integers.

12. The server according to claim 10 , wherein the dividing 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 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

M

M

M

M

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

M

M

M

M

V

a

F

*

H

,

1

V

a

F

*

H

,

2

Λ

V

a

F

*

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

M

M

M

M

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 am2 *h m,2 + . . . +V am8 *h m8 , 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 .

16. 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 based on the dividing 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 based on the dividing rule.

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 by:

determining a window 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 ] based on a dividing rule, wherein x indicates consecutive natural numbers from 1 to M, M≥2, and A x and B x are integers;

determining a corresponding window W iz [k i −A z , k i +B z ] for a current potential dividing point k i based on the dividing rule, wherein i and z are integers, and 1≤z≤M;

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

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 dividing 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 dividing 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 dividing 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 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

M

M

M

M

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

M

M

M

M

V

a

F

*

H

,

1

V

a

F

*

H

,

2

Λ

V

a

F

*

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

M

M

M

M

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 am2 *h m2 + . . . +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 .

24. 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 based on the dividing 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 based on the dividing rule.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2022
From: HUAWEI TECHNOLOGIES CO., LTD.
To: XFUSION DIGITAL TECHNOLOGIES CO., LTD.
Reel/Frame 058682/0312 →
Priority Claims (1)
WO PCT/CN2014/072115 · Feb 14, 2014 · international
Continuity (3)
Continuation 15235407 · Aug 12, 2016
Continuation PCTCN2014072648 · Feb 27, 2014
Related Publication 20180219930A1 · Aug 2, 2018