Low-redundancy single-round file synchronization method in insert / delete scenarios

By establishing a grid diagram in file synchronization and using dynamic programming algorithms, combined with an error correction code solution, the problem of large traffic in the existing technology is solved, more efficient file synchronization is achieved, and bandwidth waste is reduced.

CN115114251BActive Publication Date: 2025-04-11XIDIAN UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210896649.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-07-28
Publication Date
2025-04-11
Estimated Expiration
2042-07-28

AI Technical Summary

Technical Problem

The prior art file synchronization method in the insertion/deletion scenario has the problem of large traffic, especially in cloud storage environments, resulting in waste of bandwidth and inefficiency.

Method used

By establishing a grid map representing the drift state of the data block, combined with a dynamic programming algorithm, shorter marks are used to achieve performance approximate to long marks, and the amount of data to be transmitted is further compressed using an error correction code scheme.

Benefits of technology

This enables shorter markup transmission while maintaining performance, reduces the amount of traffic required for file synchronization and reduces bandwidth waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115114251B_ABST
    Figure CN115114251B_ABST
Patent Text Reader

Abstract

The present invention discloses a low-redundancy single-round file synchronization method for insertion / deletion scenarios, which mainly solves the problem of large communication volume in existing single-round file synchronization methods. The scheme is: the local node reads a shorter subsequence in each data block as a mark; the VT checksum and hash value of the data block are calculated, and the RS code is used to encode and transmit to the cloud node; the cloud node establishes a grid diagram according to the periodic mark sequence, infers the number of insertions / deletions that occur in each data block, and decodes and restores the VT checksum and hash value of each data block; for multiple consecutive data blocks that fail to pass the hash value check, guess the boundaries and insertion / deletion numbers of the data blocks; the cloud node transmits the index of the data block that has not been successfully synchronized to the local node, and the local node retransmits the data block to the cloud node to complete file synchronization. The present invention reduces the communication volume of single-round file synchronization in the insertion / deletion scenario, and can be used for data transmission between local nodes and cloud nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of communication technology, and further relates to a low-redundancy single-round file synchronization method, which can be used for data transmission between local nodes and cloud nodes. Background Art

[0002] In recent years, cloud storage has been widely used to store various data files. Transferring these files always requires a lot of communication bandwidth between the client and the data center. In the case of file backup tools such as Dropbox and version control software such as Git, files are always slightly edited on the client side. If the entire edited file is transferred to the data center, a lot of bandwidth will be wasted. Therefore, a file synchronization method with minimal information exchange is needed.

[0003] At present, there are two main methods for designing synchronization methods in insertion / deletion scenarios: the first is the synchronization scheme design method based on error correction codes, which mainly include VT codes that correct single insertion / deletion errors, multi-layer VT codes that correct multiple insertion / deletion errors, and guess check codes GC; the second is the file synchronization scheme RSYNC that does not use error correction codes. The RSYNC method is a popular Linux / Unix application and is widely used for general file synchronization. However, since RSYNC uses weak hash functions and strong hash functions to determine the matching segments between the original file and the edited file and transmits the mismatched segments, it is ineffective for synchronization of random insertion / deletion errors.

[0004] At present, the design of practical file synchronization solutions in insertion / deletion scenarios has become a research hotspot with widespread concern in the field of communication technology in recent years.

[0005] Based on VT code and divide-and-conquer strategy, Venkataramanan et al. proposed a single-round file synchronization method based on VT code and hash function under t insertions / deletions in their paper “Low-complexity interactive algorithms for synchronization from deletions, insertions, and substitutions” (IEEE Trans. Inf. Theory, 2015, 61(10), pp.5670–5689). This method divides the file into multiple data blocks at the local node, transmits the long mark sequence, VT syndrome and hash function value of the data block to the cloud node, and uses the long mark sequence at the cloud node to determine the block boundary and the number of insertions / deletions. However, since this file synchronization method uses a long mark sequence, it requires a large amount of communication. Summary of the invention

[0006] The purpose of the present invention is to address the deficiencies of the above-mentioned prior art and to propose a low-redundancy single-round file synchronization method in an insertion / deletion scenario to meet lower communication volume requirements.

[0007] In order to achieve the above-mentioned purpose, the technical idea of ​​the present invention is: by using a grid graph and a dynamic programming algorithm, shorter tags are used to achieve performance similar to that of long tags; by utilizing an error correction code scheme, the amount of data of the VT syndrome and hash value that needs to be transmitted is further compressed, thereby reducing the amount of communication required for file synchronization.

[0008] According to the above ideas, the implementation scheme of the present invention is as follows:

[0009] 1. A low-redundancy single-round file synchronization method in an insertion / deletion scenario, characterized in that it comprises the following steps:

[0010] A) The local node calls the encoding module to encode the binary file X, constructs a synchronization message M = {S, T, C} and sends it to the cloud node, where S represents the tag vector, T represents the check symbol vector of the VT syndrome, and C represents the check symbol vector of the hash value;

[0011] B) The cloud node reads the tag vector S from the synchronization message M through the decoding module, and uses the tag vector to establish a grid diagram representing the drift status of each data block;

[0012] C) Calculate the node metrics in the grid graph based on the node transition probability lookup table, and search the drift state path of the maximum likelihood metric in the grid graph based on the dynamic programming algorithm, and then infer the number of insertions / deletions of each data block:

[0013] C1) Calculate the node metric value τ(d ι,j ):

[0014]

[0015] Among them, d ι,j represents the node at the ιth row and jth column in the grid graph, τ(d ι,j ) represents the node metric value at the ιth row and jth column in the grid graph, τ(d λ,j-1 ) represents the node metric value at the λth row and j-1th column in the grid graph, τ j,λ→ι represents the inter-node transition probability from the λth row and j-1th column to the ιth row and jth column in the grid graph, j∈[0,v] represents the jth column in the grid graph, and also represents the jth data block, ι∈[-t,t] represents the ιth row in the grid graph, and also represents the drift state of the data block;

[0016] C2) Calculate the maximum likelihood path D of the drift state in the grid graph ML :

[0017]

[0018] in, Indicates that the grid graph is composed of the first j-1 The row j-1th column is transferred to the δth j The transition probability between nodes in the jth row and column, j∈[1,v] represents the jth column in the grid graph, and also represents the jth data block, δ j ∈[-t,t] represents the δth j The row also represents the drift status of the jth data block;

[0019] C3) Set up a one-dimensional array D to record the maximum likelihood path D ML The number of insertions / deletions that occurred before each node is stored in array D;

[0020] C4) Calculate the number of insertions / deletions that occur in each block: E = (E1, ..., E i ,...,E v )

[0021] Among them, E i = D[i]-D[i-1] represents the number of insertions / deletions that occurred in the i-th block, D[i] represents the i-th element in the array D, and also represents the number of insertions / deletions that occurred before the i-th block of the binary file X, D[i-1] represents the i-1th element in the array D, and also represents the number of insertions / deletions that occurred before the i-1th block of the binary file X;

[0022] D) The cloud node calls the decoding module to read the synchronization message M = {S, T, C}, and recovers the VT syndrome vector and hash value vector; the decoding module recovers the data block with the insertion / deletion number E[i] = 0 according to the number of insertions / deletions of each data block, the VT syndrome vector and the hash value vector, determines the status of each data block and records it;

[0023] E) For multiple consecutive data blocks marked as not updated {Y i ,Y i+1 ,...,Y i+j ,...,Y i+a}, traverse and guess the feasible insertion / deletion patterns of all data blocks, decode and verify the symbol sequence corresponding to the guessed insertion / deletion pattern, where j∈[0,a], a represents the number of data blocks that have not been updated;

[0024] F) The cloud node sends the data block index of the unupdated state to the local node, requiring the local node to retransmit; after receiving the data block resent by the local node, the cloud node reorganizes all data blocks according to the data block index to complete the synchronization of binary file X.

[0025] Compared with the prior art, the present invention has the following advantages:

[0026] The present invention establishes a grid diagram representing the drift state of data blocks and combines a dynamic programming algorithm to achieve transmission of shorter marks and achieve performance close to that of long marks. At the same time, the present invention further reduces the communication volume required for file synchronization by using an error correction code scheme to further compress the amount of data required for synchronization of files. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] Figure 1 It is a flow chart of the implementation of the present invention;

[0028] Figure 2 is a grid diagram of the drift state of each data block in the present invention;

[0029] Figure 3 It is a comparison diagram of the number of bits used for synchronous file transmission using the present invention and the existing method;

[0030] Figure 4 It is a comparison diagram of the number of data blocks retransmitted by the local node when the present invention and the existing method are used for file synchronization respectively. DETAILED DESCRIPTION

[0031] The embodiments and effects of the present invention are further described below in conjunction with the accompanying drawings.

[0032] Reference Figure 1 The implementation steps of this example include the following:

[0033] Step 1: Initialize encoding parameters.

[0034] Set the length of binary file X to n;

[0035] Set the number of data blocks of binary file X to The length of each block is set to k;

[0036] The number of check symbols of the RS code in the systematic code form is set to e;

[0037] Set the tag length of each data block to s.

[0038] Step 2: The local node calls the encoding module to encode X, constructs a synchronization message M = {S, T, C} and sends it to the cloud node.

[0039] 2.1) Divide the binary file X into v consecutive data blocks of length k (X1,...,X i ,...,X v ), where X i Represents the i-th data block of a binary file, where the value of i ranges from [1, v];

[0040] 2.2) Read data block X i The last s bits are used as tags, and the tag vector S = (S1,...,S i ,...,S v ), the value range of i is [1,v];

[0041] 2.3) For each data block X of length k i =(x1,x2,...,x k ),according to Calculate its VT syndrome and get the VT syndrome vector A=(A1,...,A i ,...,A v ), the value range of i is [1,v];

[0042] 2.4) VT syndrome vector A = (A1, ..., A i ,...,A v ) is mapped to a finite field GF(2 p ) on the symbolic vector (β1,…,β i ,…,β v ), where β i represents the i-th finite field GF(2 p ), the value range of i is [1,v];

[0043] 2.5) The symbol vector (β1,...,β i ,...,β v ) is encoded into a check symbol vector T = (T1, T2, ..., T e ), where T i represents the i-th check symbol in the check symbol vector of the VT check sub-signal, and the value range of i is [1, e];

[0044] 2.6) Calculate each data block X based on the random hash function F i The hash value of GF(2 h ) on the hash value symbol vector B=(B1,...,B i ,...,B v ), where B i represents the i-th finite field GF(2 h ), the value range of i is [1,v];

[0045] 2.7) Hash value symbol vector B = (B1, ..., B i ,...,B v) is encoded as a hash value check symbol vector C = (C1, C2, ..., C e ), where C i The i-th check symbol in the check symbol vector representing the hash value, where i is in the range [1, e];

[0046] 2.8) According to the tag vector S, the check symbol vector T of the VT syndrome and the check symbol vector C of the hash value, the binary synchronization message M = {S, T, C} is obtained.

[0047] Step 3: Initialize decoding parameters.

[0048] Set the binary file stored in the cloud node to Y;

[0049] Set a two-dimensional array Q to represent the node metrics in the grid graph;

[0050] Set the initial value of Q[0][t] to 0 and all other initial values ​​to -∞;

[0051] Set the two-dimensional array L to represent the drift state of the grid graph;

[0052] Set a one-dimensional array D to represent the total number of data blocks inserted / deleted before a certain node in the grid graph;

[0053] Set a one-dimensional array E to represent the number of insertions / deletions of each data block, and set the initial value to 0.

[0054] Step 4: The cloud node reads the marker vector S from the synchronization message M through the decoding module, and uses the marker vector to establish a grid diagram representing the drift status of each data block.

[0055] Divide the binary file Y into v data blocks. First, use the initial state column and the number of data blocks v+1 as the number of columns of the grid map, and use the total number of all insertion / deletion drift states that occurred before each data block 2t+1 as the number of rows of the grid map.

[0056] Then, the node in the 0th column and the tth row is used as the initial node, and each node is connected according to the drift state corresponding to each data block to obtain a grid diagram, such as Figure 2 shown.

[0057] Step 5: Calculate the node metric Q in the grid graph based on the node-to-node transition probability lookup table, and calculate the drift state path D of the maximum likelihood metric in the grid graph based on the dynamic programming algorithm, and then infer the vector E of the number of insertions / deletions that occur in each data block.

[0058] 5.1) Calculate the node metrics in the grid graph:

[0059] Q[j][ι+t]=Q[j-1][λ+t]+τ j,λ→ι

[0060]

[0061] Where Q[j][ι+t] represents the node metric value at the ι+tth row and jth column in the grid graph, Q[j-1][λ+t] represents the node metric value at the λ+tth row and j-1th column in the grid graph, τ j,λ→ι represents the inter-node transition probability from the λth row and j-1th column to the ιth row and jth column in the grid graph. λ is a temporary variable representing the value of the previous drift state of the node in the ιth row and jth column in the grid graph. j∈[0,v] represents the jth column in the grid graph, and also represents the jth data block. ι∈[-t,t] represents the ιth row in the grid graph, and also represents the drift state of the data block.

[0062] 5.2) Calculate the drift state in the grid map:

[0063] L[j][ι+t]=λ+t

[0064] Wherein, L[j][ι+t] represents the drift state at the ι+tth row and jth column in the grid graph;

[0065] 5.3) Calculate the total number of insertions / deletions of data blocks before a certain node in the grid graph:

[0066] D[j-1]=L[j][ι]

[0067] ι=D[j]-t

[0068] Where D[j] represents the number of insertions / deletions to the jth node in the grid graph, L[j][ι] represents the drift state at the ιth row and jth column in the grid graph, j = {v, v-1, ..., 1}, the initial values ​​of D[j] and ι are n'-n+t, n' represents the length of the binary file Y stored in the cloud node, and n represents the length of the binary file X stored in the local node;

[0069] 5.4) Calculate the number of insertions / deletions of each data block in the grid graph:

[0070] E[i]=D[i]-D[i-1]

[0071] Where E[i] represents the number of insertions / deletions that occurred in the i-th block in the binary file Y, and the value range of i is [1, v];

[0072] 5.5) Divide the binary file Y into v data blocks (Y1,...,Y i ,...,Y v ),in Represents the data from position (i-1)k+E[i-1] to position ik+E[i] in the binary file Y.

[0073] Step 6: The cloud node calls the decoding module to read the synchronization message M={S, T, C}, restore the VT check vector A and the hash value vector B, and determine the status of each data block and record it.

[0074] 6.1) Recover VT syndrome vector A:

[0075] The decoding module reads the check symbol vector T of the VT syndrome from the synchronization message M = {S, T, C} and maps it to e finite fields GF(2 p ) on the VT syndrome check symbol vector T';

[0076] Using the number of insertions / deletions E[i] of each data block obtained in step 5, determine the number of insertions / deletions of data block Y i Is the number of insertions / deletions E[i] equal to 0?

[0077] If E[i] = 0, the decoding module calculates the data block Y i VT syndrome A * i ;

[0078] Otherwise, treat it as an erasure error;

[0079] 6.2) The decoding module is based on the VT syndrome vector The sum of the check symbol vector T' is decoded using the RS code and the erasure errors and symbol errors are corrected to obtain the VT syndrome vector A = (A1, ..., A i ,...,A v );

[0080] 6.3) Restore the hash value vector B:

[0081] The decoding module reads the hash value check symbol C from the synchronization message M = {S, T, C} and maps it to e finite fields GF (2 h ) on the hash value check symbol vector C';

[0082] Using the number of insertions / deletions E[i] of each data block obtained in step 5, determine the number of insertions / deletions of data block Y i Is the number of insertions / deletions E[i] equal to 0?

[0083] If E[i] = 0, the decoding module calculates each data block Y according to the hash function F i The hash value of

[0084] Otherwise, treat it as an erasure error;

[0085] 6.4) The decoding module is based on the hash value vector The check symbol vector C′ of the hash value is decoded using the RS code and the erasure error and symbol error are corrected to obtain the hash value vector B of v data blocks = (B1,...,B i ,...,B v );

[0086] 6.5) Determine the status of the data block and record it:

[0087] For data block Y with E[i]=0 i , the judgment decoding module checks the hash value B i Is it correct? If it is correct, the data block is recorded as updated; otherwise, the data block is recorded as not updated.

[0088] For data block Y with E[i] = ±1 i , the decoding module uses VT syndrome A i Y i Decoding is performed, and the hash value of the decoded sequence is calculated according to the hash function F and the hash value is checked to see whether it is correct: if it is correct, the data block is recorded as being in an updated state; otherwise, the data block is recorded as being in a non-updated state.

[0089] Step 7: For multiple consecutive data blocks marked as not updated {Y i ,Y i+1 ,...,Y i+a}, traverse and guess all feasible insertion / deletion patterns of data blocks, decode and verify the symbol sequence corresponding to the guessed insertion / deletion pattern.

[0090] 7.1) According to the state Y of the previous data block j-1 , guess the insertion / deletion pattern:

[0091] If Y j-1 If it is an updated state, then r is Y j Starting boundary position and guessing data block Y j There is {1 deletion, 1 insertion}, where j∈[i,i+a], r represents the data block Y j-1 The right border position of

[0092] If Y j-1 If the state is not updated, first guess the data block Y in the range [l+(ji)ks,l+(ji)k+s] j The starting boundary position of the data block Y is guessed based on each guessed boundary position. jThere are {1 deletion, 0 insertion / deletion, 1 insertion} in the binary file Y, where j∈[i,i+a], l represents the data block {Y i ,Y i+1 ,...,Y i+a}'s left border position;

[0093] 7.2) Using VT syndrome A j Y j Decode, calculate the hash value of the decoded sequence according to the hash function F and check it with B j Are they consistent? If they are consistent, record the data block as updated and end the guess verification process for the data block.

[0094] Step 8: The cloud node sends the index of the data block with unupdated status to the local node, requesting the local node to retransmit.

[0095] 8.1) The cloud node sends the index of the data block recorded as not updated to the local node according to the result of the decoding module; the local node reads the corresponding data block in the local file X according to the index of the retransmitted data block received, and uploads it to the cloud node;

[0096] 8.2) After receiving the data block retransmitted by the local node, the cloud node combines all the data blocks with updated status and the data blocks retransmitted by the local node according to the data block index to complete the synchronization of file X in the cloud node.

[0097] The effect of the present invention can be further illustrated by the following simulation results:

[0098] 1. Simulation Experiment Conditions

[0099] 1) Simulation experiment: The hardware uses Intel i7-7700 3.6GHz CPU, 8GB RAM, and 500GB hard disk; the software uses Windows 10 Home Edition, Visual Studio 2015, and MATLAB;

[0100] 2) Simulation parameter settings:

[0101] Set the length n of the binary file to 10 6 and 10 7 , the corresponding number of insertions / deletions t is set to 20, 50, 100, 200, 300, 400 and 500 respectively; the number of fragments v is set to 1000 and 10000, and the length of each fragment is Set the length of the tag to 3.

[0102] 2. Simulation content

[0103] Simulation 1, respectively, uses the present invention and the existing file synchronization method based on VT code and hash function to encode and decode binary files of different lengths and different numbers of slices under different numbers of insertions / deletions, and counts and compares the average number of bits transmitted. The results are as follows: Figure 3 As shown;

[0104] from Figure 3 It can be seen that when the binary file length is 10 7 And divided into 10 4 When the length of the binary file is 10, the file synchronization is performed under the same insertion / deletion channel. The number of bits required for transmission in the present invention is less than that in the prior art. 6 And divided into 10 3 When multiple data blocks are inserted / deleted, file synchronization is performed under the same insertion / deletion channel, and the number of bit transmissions required by the present invention is less than that of the existing method.

[0105] Simulation 2, respectively, uses the present invention and the existing file synchronization method based on VT code and hash function to encode and decode binary files of different lengths and different numbers of slices under different insertion / deletion channels, and counts and compares the number of data block retransmissions. The results are as follows: Figure 4 As shown;

[0106] from Figure 4 It can be seen that when the binary file length is 10 7 And divided into 10 4 When the length of the binary file is 10, the file synchronization is performed under the same insertion / deletion channel. The number of data block retransmissions required by the present invention is almost the same as that of the existing method. 6 And divided into 10 3 When data blocks are inserted / deleted, file synchronization is performed under the same insertion / deletion channel. The number of data block retransmissions required by the present invention is almost the same as that of the existing method, indicating that while the number of bit transmissions of the present invention is significantly reduced, the number of data blocks retransmitted from the local node to the cloud node remains unchanged.

Claims

1. A low-redundancy single-round file synchronization method in an insertion / deletion scenario, characterized in that: The steps include: A) The local node calls the encoding module to encode the binary file X, constructs a synchronization message M = {S, T, C} and sends it to the cloud node, where S represents the tag vector, T represents the check symbol vector of the VT syndrome, and C represents the check symbol vector of the hash value; B) The cloud node reads the tag vector S from the synchronization message M through the decoding module, and uses the tag vector to establish a grid diagram representing the drift status of each data block; C) Calculate the node metrics in the grid graph based on the node transition probability lookup table, and search the drift state path of the maximum likelihood metric in the grid graph based on the dynamic programming algorithm, and then infer the number of insertions / deletions of each data block: C1) Calculate the node metric value τ(d ι,j ): Among them, d ι,j represents the node at the ιth row and jth column in the grid graph, τ(d ι,j ) represents the node metric value at the ιth row and jth column in the grid graph, τ(d λ,j-1 ) represents the node metric value at the λth row and j-1th column in the grid graph, τ j,λ→ι represents the inter-node transition probability from the λth row and j-1th column to the ιth row and jth column in the grid graph, j∈[0,v] represents the jth column in the grid graph, and also represents the jth data block, ι∈[-t,t] represents the ιth row in the grid graph, and also represents the drift state of the data block; C2) Calculate the maximum likelihood path D of the drift state in the grid graph ML : in, Indicates that the grid graph is composed of the first j-1 The row j-1 column is transferred to the δth j The node transition probability between the row and column j, j∈[0,v] represents the jth column in the grid graph, and also represents the jth data block, δ j ∈[-t,t] represents the δth j row, also represents the drift state of the jth data block; v represents the number of data blocks; C3) Set up a one-dimensional array D to record the maximum likelihood path D ML The number of insertions / deletions that occurred before each node is stored in array D; C4) Calculate the number of insertions / deletions that occur in each block: E = (E1, ..., E i ,...,E v ) Among them, E i = D[i]-D[i-1] represents the number of insertions / deletions that occurred in the i-th block, D[i] represents the i-th element in the array D, and also represents the number of insertions / deletions that occurred before the i-th block of the binary file X, D[i-1] represents the i-1th element in the array D, and also represents the number of insertions / deletions that occurred before the i-1th block of the binary file X; D) The cloud node calls the decoding module to read the synchronization message M = {S, T, C}, and recovers the VT syndrome vector and hash value vector; the decoding module recovers the data block with the insertion / deletion number E[i] = 0 according to the number of insertions / deletions of each data block, the VT syndrome vector and the hash value vector, determines the status of each data block and records it; E) For multiple consecutive data blocks marked as not updated {Y i ,Y i+1 ,...,Y i+j ,...,Y i+a }, traverse and guess the feasible insertion / deletion patterns of all data blocks, decode and verify the symbol sequence corresponding to the guessed insertion / deletion pattern, where j∈[0,a], a represents the number of data blocks that have not been updated; F) The cloud node sends the data block index of the unupdated state to the local node, requiring the local node to retransmit; after receiving the data block resent by the local node, the cloud node reorganizes all data blocks according to the data block index to complete the synchronization of binary file X.

2. The method according to claim 1, characterized in that In step A), a synchronization message M = {S, T, C} is constructed and implemented as follows: A1) Initialize encoding parameters: Set the length of binary file X to n; Set the number of data blocks of binary file X to The length of each block is set to k; The number of check symbols of the RS code in the systematic code form is set to e; Set the tag length of each data block to s; A2) Divide the binary file X into v consecutive data blocks of length k (X1,...,X i ,...,X v ), read data block X i The last s bits are used as tags, and the tag vector S = (S1,...,S i ,...,S v ); A3) Calculate each data block X i The VT syndrome of the VT syndrome vector A=(A1,...,A i ,...,A v ), and maps it to a finite field GF(2 p ) on the symbolic vector (β1,...,β i ,…,β v ), and then the symbol vector (β1,...,β i ,...,β v ) is encoded into a check symbol vector T of the VT syndrome by (v+e,v) RS code = (T1, T2, ..., T e ); A4) Calculate each data block X based on the random hash function F i The hash value of GF(2 h ) on the hash value symbol vector B=(B1,...,B i ,...,B v ), and encode it into a hash value check symbol vector C=(C1,C2,...,C e ); A5) Obtain a binary synchronization message M = {S, T, C} based on the tag vector S, the check symbol vector T of the VT syndrome and the check symbol vector C of the hash value.

3. The method according to claim 1, characterized in that Step B) uses the marker vector to establish a grid diagram representing the drift state of each data block, first using the initial state column and the number of data blocks as the number of columns, and the total number of insertion / deletion drift states that occurred before each data block as the number of rows of the grid diagram; then using the node in the 0th column and the tth row as the initial node, connecting each node according to the drift state corresponding to each data block to obtain the grid diagram.

4. The method according to claim 2, characterized in that: Step D) restores the data blocks with the insertion / deletion number E[i]=0 and determines the status of each data block, which is implemented as follows: D1) Recover VT syndrome vector A: D11) Read the check symbol vector T of the VT syndrome from the synchronization message M = {S, T, C} and map it to e finite fields GF(2 p ) on the VT syndrome check symbol vector T'; D12) Using the number of insertions / deletions E of each data block obtained in step C) = (E1, ..., E i ,...,E v ), determine data block Y i The number of insertions / deletions E i Is it 0? If E i =0, the decoding module calculates Y i VT syndrome A * i ; Otherwise, treat it as an erasure error; D13) The decoding module is based on the VT syndrome vector The sum of the check symbol vector T' is decoded using the RS code and the erasure errors and symbol errors are corrected to obtain the VT syndrome vector A = (A1, ..., A i ,...,A v ); D2) Restore the hash value vector B: D21) Read the hash value check symbol C from the synchronization message M = {S, T, C} and map it to the finite field GF(2 h ) on e hash value check symbol vectors C'; D22) Using the number of insertions / deletions E = (E1, ..., E2) of each data block obtained in step C) i ,...,E v ) Determine data block Y i The number of insertions / deletions E i Is it 0? If E i =0, the decoding module calculates Y according to the hash function F i The hash value of Otherwise, treat it as an erasure error; D23) The decoding module uses the hash value vector The check symbol vector C′ of the hash value is decoded using the RS code and the erasure error and symbol error are corrected to obtain the hash value vector B of v data blocks = (B1,...,B i ,...,B v ); D3) Restore the data blocks with insertion / deletion number E[i]=0, determine the status of each data block and record: For E i =0 data block Y i , the decoding module checks the hash value B i Is it correct? If it is correct, the data block is recorded as updated. For E i = ±1 data block Y i , the decoding module uses VT syndrome A i Y i Decode, calculate the hash value of the decoded sequence according to the hash function F and check whether it is correct: if it is correct, record the data block as updated; In other cases, the data block is recorded as not updated.

5. The method according to claim 4, characterized in that In step E), all feasible insertion / deletion patterns of data blocks are guessed, and the symbol sequence corresponding to the guessed insertion / deletion pattern is decoded and verified, which is implemented as follows: E1) Guess the insertion / deletion pattern: According to step C), a plurality of consecutive data blocks marked as not updated are obtained. i ,Y i+1 ,…,Y i+a }: If Y j-1 If the state is updated, guess the data block Y respectively. j There are {1 deletion, 1 insertion} in; If Y j-1 If the state is not updated, first guess the data block Y in the range [l+(ji)ks,l+(ji)k+s] j The starting boundary position of the data block Y is guessed based on each guessed boundary position. j There are {1 deletion, 0 insertion / deletion, 1 insertion} in the binary file Y, where j∈[i,i+a], l represents the data block {Y i ,Y i+1 ,…,Y i+a }'s left border position; E2) Decode and verify the symbol sequence corresponding to the guessed insertion / deletion pattern: Using VT syndrome A j Y j Decode and calculate the hash value of the decoded sequence according to the hash function F And check with B j Are they consistent? If they are consistent, record the data block as updated and end the guess verification process for the data block.

Citation Information

Patent Citations

  • Cross-cloud-node migration system and cross-cloud-node migration method

    CN104572274A

  • A non-master node distribution parallel data storage method and system

    CN109815294A