Dataset Reconciliation through Partitioning and Polynomial Interpolation

Information

  • Patent Application
  • 20180300384
  • Publication Number
    20180300384
  • Date Filed
    April 13, 2017
    7 years ago
  • Date Published
    October 18, 2018
    6 years ago
Abstract
A method for synchronizing datasets comprising the steps of: (1) partitioning each dataset into a plurality of bins according to a first partitioning rule, wherein each bin contains a random subset of elements of symmetric difference taken from a universe of all possible elements, (2) performing a first round of polynomial interpolation (PI) at a first encoding threshold on each bin of the first-partitioned datasets, wherein if any bin contains a number of elements that is less than or equal to the first encoding threshold the elements contained therein are decoded during the first PI round, and wherein if any bin contains a number of elements that is greater than the first encoding threshold the elements contained therein are not decoded during the first PI round; and (3) synchronizing the datasets based on the decoded elements.
Description
FIELD OF THE INVENTION

The invention disclosed and claimed herein relates to the field of computer communications.


SUMMARY

Disclosed herein is a method for synchronizing first and second datasets respectively stored in first and second computers, an embodiment thereof comprises the following steps. The first step provides for partitioning each of the first and second datasets into a plurality of bins according to a first partitioning rule. Each bin contains a random subset of elements of symmetric difference (hereafter referred to as elements) taken from a universe of all possible elements that could be contained in the first and a second datasets. The next step provides for performing a first round of polynomial interpolation (PI) at a first encoding threshold on each bin of the first-partitioned datasets with the first and second computers. If any bin contains a number of elements that is less than or equal to the first encoding threshold the elements contained therein are decoded during the first PI round. If any bin contains a number of elements that is greater than the first encoding threshold the elements contained therein are not decoded during the first PI round. The next step provides for synchronizing the first and second datasets based on the decoded elements.


Another embodiment of the method for synchronizing first and second datasets respectively stored in first and second computers may be described as comprising the following steps. The first step provides for partitioning each of the first and second datasets SA and SB into custom-character=d/log(d) bins according to a first partitioning rule, where the first and second datasets SA and SB are sets of binary data strings of length b. Each bin contains n/custom-character strings, where d is the absolute value of symmetric difference between the first and second datasets SA and SB, and n is an index. Each bin contains a random subset of elements of the symmetric difference taken from a universe custom-character2b of all possible elements that could be contained in the first and a second datasets SA and SB. The next step provides for performing a first round of PI at a first encoding threshold M on each bin of the first-partitioned datasets with the first and second computers by computing custom-character characteristic functions, one for each bin, and evaluating each function at the threshold of M points. The next step provides for computing a hash consisting of H bits for each bin. The next step provides for partitioning each of the first and second datasets SA and SB into custom-character=d/log(d) bins according to a second partitioning rule, where each bin contains n/custom-character strings. The next step provides for performing a second round of PI at a second encoding threshold fM on each bin of the second-partitioned datasets with the first and second computers by computing custom-character characteristic functions, one for each bin, and evaluating each function at the threshold of fM points, where 0<f<1. The next step provides for computing a hash consisting of fH bits for each bin. The next step provides for iteratively repeating the above steps with different partitioning rules such that the encoding threshold and the length of the hashes are reduced by a factor of f with each iteration until the number encoding threshold is less than or equal to log(log(d)).


Another embodiment of the method for synchronizing first and second datasets may be described as comprising the following steps. The first step provides for performing first partitions of the first and second datasets by the first and second computers respectively such that each dataset is partitioned into a plurality of bins according to a first partitioning rule. Each bin contains a random subset of elements of symmetric difference. The next step provides for performing a first round of PI at a first encoding threshold on each bin of the first-partitioned datasets with the first and second computers. The next step provides for recording encodings from the first round of PI at the first and second computers. The next step provides for performing second partitions of the first and second datasets by the first and second computers respectively such that each dataset is partitioned into a plurality of bins according to a second partitioning rule. As with the first round of PI, each bin contains a random subset of elements. The next step provides for performing a second round of PI at a second encoding threshold on each bin of the second-partitioned datasets with the first and second computers. The next step provides for recording encodings from the second round of PI at the first and second computers. The next step provides for communicating the encodings from the first and second rounds of PI at the first and second computers in a single communication exchange between the first and second computers. For any given round of PI if any bin contains a number of elements that is less than or equal to the corresponding encoding threshold, the elements contained therein are decoded by the receiving computer. If any bin contains a number of elements that is greater than the corresponding encoding threshold the elements contained therein are not decoded by the receiving computer.





BRIEF DESCRIPTION OF THE DRAWINGS

Throughout the several views, like elements are referenced using like references. The elements in the figures are not drawn to scale and some dimensions are exaggerated for clarity.



FIG. 1 is a flowchart of an embodiment of a method for synchronizing first and second datasets.



FIG. 2 is an illustration of an embodiment of a dataset synchronization method.



FIG. 3 is an illustration of an embodiment of a dataset synchronization method.



FIGS. 4A-4B are graphs of performance characteristics of an embodiment of a dataset synchronization method.



FIGS. 5A-5B are graphs of performance characteristics of an embodiment of a dataset synchronization method.





DETAILED DESCRIPTION OF EMBODIMENTS

The disclosed methods and systems below may be described generally, as well as in terms of specific examples and/or specific embodiments. For instances where references are made to detailed examples and/or embodiments, it should be appreciated that any of the underlying principles described are not to be limited to a single embodiment, but may be expanded for use with any of the other methods and systems described herein as will be understood by one of ordinary skill in the art unless otherwise stated specifically.



FIG. 1 is a flowchart of an embodiment of a method 10 for synchronizing first and second datasets that are respectively stored in first and second computers 12a and 12b. Any computer that is capable storing and processing data may be used. For example, a computer configured to receive and process track data associated with maritime tactical command and control (MTC2) may be used to implement method 10. Another example operational scenario for method 10 is peer to peer file sharing such as transmitting music or movie files between computers. The dataset synchronization method 10 can be used to decrease the time needed to reconcile datasets between computers. Method 10 is especially useful in low-bandwidth or degraded-communications environments.



FIG. 2 is an illustration of the dataset synchronization method 10 embodiment, whose steps are outlined in FIG. 1. The embodiment of the dataset synchronization method 10 described and shown in FIGS. 1-2 comprises, consists of, or consists essentially of the following steps. The first step 10a provides for partitioning each of the first and second datasets 14a and 14b into a plurality of bins 16 according to a first partitioning rule. Each bin 16 contains a random subset of elements 18 of symmetric difference (hereafter referred to as elements) taken from a universe of all possible elements 18 that could be contained in the first and a second datasets 14a and 14b. In FIG. 2, the dashed circles represent elements 18 that the computer does not have in its own dataset. The next step 10b provides for performing a first round of polynomial interpolation (PI) at a first encoding threshold M1 on each bin 16 of the first-partitioned datasets 14a and 14b with the first and second computers 12a and 12b. If any bin 16 contains a number of elements 18 that is less than or equal to the first encoding threshold M1 the elements contained therein are decoded during the first PI round. For illustration purposes in FIG. 2, the first encoding threshold M1 was set at 4, but it is to be understood that the encoding thresholds may be set to any desired value. If any bin 16 contains a number of elements 18 that is greater than the first encoding threshold M1 the elements 18 contained therein are not decoded during the first PI round. Decoded elements 18 are represented in FIG. 2 by darkened circles. The next step 10c provides for synchronizing the first and second datasets 14a and 14b based on the decoded elements 16.



FIG. 3 is an illustration of another embodiment of the dataset synchronization method 10 that comprises two rounds of partitioning and PI. This embodiment shows a two-layer example of partitioning into three bins. In layer 1, one bin fails to decode since it has three elements, which exceeds the encode threshold M=2. In layer two, or rather during the second round, the first and a second datasets are partitioned into a plurality of bins according to a second partitioning rule. As with the first partitioning rule, in the second partition, each bin contains a random subset of elements taken from the universe of all possible elements that could be contained in the first and a second datasets 14a and 14b. The second round of PI is performed at a second encoding threshold on each bin of the second-partitioned datasets 14a and 14b with the first and second computers 12a and 12b. As with the first PI, in the second round of PI, if any bin contains a number of elements that is less than or equal to the second encoding threshold the elements contained therein are decoded during the second PI round, and if any bin contains a number of elements that is greater than the second encoding threshold the elements contained therein are not decoded during the second PI round. In this example embodiment, in layer 2, one bin would fail if not for a modification procedure which removed elements decoded in the earlier layer. In FIG. 3, the encoded elements are transmitted between computers during each round. However, the encoded elements from all rounds of partitioning may be exchanged between the first and second computers 12a and 12b in a single communication exchange. Such a transmission may be performed in a low-bandwidth/degraded communication environment.


Still referring to FIG. 3, an embodiment of the dataset synchronization method 10 may comprise the step of removing encoded elements that were decoded under a prior PI round from subsequent partition bins prior to the decoding performed during the subsequent PI round(s). The encoding thresholds M may be the same or different from each partitioning/PI round to the next. For example, the second encoding threshold may be less than the first encoding threshold. In many cases, the size of the symmetric difference is unknown before the first PI round and the first encoding threshold is selected based on a prediction of the size of the symmetric difference. One may continue to partition and perform rounds of PI until all elements have been decoded. The datasets may be highly structured data that form a common operation picture (COP), which is composed of discrete data elements known as tracks.


The dataset synchronization method 10 may be viewed as a variant of a set reconciliation problem. The set reconciliation problem has the following setup. Suppose two hosts, or computers, A and B, each have a set of binary strings of length b. Let SA denote the set of strings, or dataset, on Host A and let SB denote the set of strings, or dataset on Host B. The set reconciliation problem is to determine, using the minimum amount of information exchange, what to send from Host A to Host B with a single round of communication so that Host B can compute their symmetric difference SAΔSB=(SA\SB)∪=(SB\SA) where d=|SAΔSB| and M is an estimate for an upper bound on d. Under a traditional setup, the estimate on d is accurate so that d≤M always holds, but d is not always known beforehand.


The dataset synchronization method 10 may be used in instances where the oracle (or the estimate for d) is inaccurate so that it may be that d>M. The following is a detailed description of an embodiment of the dataset synchronization method 10. In this embodiment, the idea is first to sub-divide the space {0,1}b containing the data strings into random subsets and run PI on each of these smaller sets. In executing PI, one encodes the data sets with a threshold parameter M. The value of M will be fixed at each round of PI. If M≥d then decoding will recover the entire symmetric difference. However, if M<d, then decoding may fail to recover anything (assuming that failure is detected) for a given bin. It is this value of M that determines the complexity of both the encode and decode processes of the PI algorithm. Ms relationship to d determines whether PI succeeds or fails. Given an oracle that provides the value of d, one would set M=d and achieve the best possible complexity results. In the dataset synchronization method 10 the value of M may be estimated and many instances of PI may be strategically run, expecting only some them to succeed.


The following is an informal description of an embodiment of the encoding procedure that may be performed on the sets SA and SB that may be used during a PI round. In this embodiment, we partition the space custom-character2b into custom-character=d/log(d) bins each containing n/custom-character strings. Then, we perform PI on each bin, meaning we compute custom-character characteristic functions (one for each bin), and evaluate each function at the same threshold of M points. In addition, in this embodiment, we compute a hash consisting of H bits for each bin. Next, we similarly re-partition space into another set of custom-character bins each of size n/custom-character. We again compute the characteristic function for each bin, except that now each characteristic function is evaluated at fM points and we compute a hash of fH bits for each bin, where 0<f<1. This process may be iterated each time with a new partitioning rule except the number of evaluation points and the length of the hashes may be reduced by a factor of f each iteration until the number of evaluation points is less than or equal to log(log(d)). One may then transmit the outcome of ALL the evaluations along with ALL the hashes to Host B, in a single transmission.


The informal description of the embodiment of the encoding procedure described above together with an example decoding procedure may be described formally as follows. The input to the procedure below is the set S⊆custom-character2b. Let χS(z)x∈S(z−x)∈custom-characterq[z] be a univariate polynomial with the indeterminate z, where there is an injective mapping of length-b bitstrings onto elements of the field custom-characterq and q≥2b, also known as the characteristic polynomial of the set S. Let hk be a hash which takes as input a subset of custom-character2b and outputs [k] bits. Let K=[loglog(d)] and suppose we have the subsets custom-character1,1, custom-character1,2, . . . , custom-character1,custom-character, custom-character2,1, custom-character2,2, . . . , custom-character2,custom-character, . . . , custom-characterK+1,2, . . . , custom-characterK+1,custom-characterwhere for any custom-character∈[K+1], custom-charactercustom-character,1, custom-charactercustom-character,2, . . . , custom-charactercustom-character,custom-characteris a partition of the space custom-character2b. For shorthand, let S(custom-character,j) denote the elements of S⊆custom-character2b that are in custom-charactercustom-character,j. Here we have that S(custom-character, j) refers to bin j at layer custom-character. Let c1, c2 (discussed later) be such that 0<c1<1<c2. For custom-character∈[K] let Ecustom-character={ecustom-character,1, ecustom-character,2, . . . , ecustom-character,|custom-character|}⊆custom-characterq such that |Ecustom-character|=[(f)custom-character−1·c2 log(d)], denote a set of evaluation points for characteristic polynomials with index custom-character. Further ensure that the evaluation points in Ecustom-characterdo not include any elements of custom-characterq mapped to by length-b bitstrings. Similarly define EK+1 such that |EK+1|=[log(d)]. Let H=[c3 log d]b for some c3>0.


An embodiment of the encoding procedure performed during a round of PI by both the first and second computers 12a and 12b, or Host A and Host B, is represented below by Algorithm 1.












Algorithm 1 Encode

















Input: S ⊆ custom-character2b, Ei, H



 1: for i ∈ [K] and j ∈ [l] do



 2:   Compute χS(i,j)(z), hi,j = h[(f)i−1 H](S(i,j)).



 3:   Evaluate {χS(i,j)(e)|e ∈ Ei} = χi,j.



 4: end for



 5: for j ∈ [l] do



 6:   Compute χS(K+1,j)(z).



 7:   Evaluate {χS(K+1,j)(e)|e ∈ EK+1} = χK+1,j.



 8: end for



Output: χi,j, hi,j, χK+1,j for i ∈ [K] and j ∈ [l]










Let χAcustom-character,j, hAcustom-character,j, χAK+1,j be the result of performing the encoding procedure (i.e., Algorithm 1) on Host A and similarly let χBcustom-character,j, hBcustom-character,j, χBK+1,j be the result of performing the encoding procedure (i.e., Algorithm 1) on Host B. First, Host A sends to Host B χAcustom-character,j, hAcustom-character,j, χAK+1,j for custom-character∈[K] and j∈[l]. Since χcustom-character,j requires fcustom-character−1·c2 log(d)·b bits of storage, hcustom-character,j requires fcustom-character−1·c3 log(d)·b bits of storage, and PI requires db bits of information exchange, notice that this requires at most













Σ

i
=
0

K



(
f
)


i

·

(



c
2







log


(
d
)



+


c
3







log


(
d
)




)




b
·

d

log


(
d
)





+


log


(
d
)


·

d

log


(
d
)



·
b







1

1
-
f


·

(


c
2

+

c
3


)



db

+
db


=

O


(
db
)






bits of information exchange. As PI has encode complexity O(d), similar reasoning gives our encode complexity of O(d).


The ability to modify an already encoded χScustom-character,j to add or remove elements is possible in linear time and it is shown below as Algorithm 2. D1 will designate the sets of elements we want to add. D2 will designate the sets of elements we want to remove.












Algorithm 2 Modify

















Input: D1, D2 ⊆ S(i, j) such that D1 ∩ D2 = ϕ, XSi,j, Ei














1:





Compute








X

D
1




(
z
)




X

D
2




(
z
)




=


X


D
1

,

D
2


*



(
z
)













2:
Evaluate: {XS(i,j)(e) · XD1,D2*(e)|e ϵ Ei} = XSΔDi,j









Output: XSΔDi,j











Let PID(χS1, χS2, E), E⊆custom-characterq denote the standard PI decode algorithm, where E is the evaluation set and |E|=M. Recall that the standard PI decode algorithm outputs S1ΔS2 if |S1ΔS2|≤M the threshold at which the two χ's were originally encoded. Using the modification process described herein, and shown in Algorithm 2 above, we can decrease the symmetric difference between the encoded sets and thus improve the likelihood for PID to successfully decode given knowledge of some of the elements in the symmetric difference. We now present in Algorithm 3 the decode algorithm which may be performed on Host B, which calls the modify algorithm 2.












Algorithm 3 Decode

















Input: χAi,j, hAi,j, χAK+1,j, χBi,j, χBK+1,j, SB, |E1|



 1: Initialize custom-character  = ∅.



 2: for i ← 1 to K + 1 do



 3:  Compute D1 = custom-character  ∩ SB, D2 = custom-character \SB



 4:  for j ← 1 to l do



 5:   Compute χAΔDi,j = Modify(D1(i,j), D2(i,j), χAi,j,



  E1)



 6:   Compute D′ =PID(χAΔDi,j, χBi,j, E1)



 7:   if i = K + 1 or hfs-1H(SH(i,j)Δ(custom-charactercustom-character ′)) = hAi,j



  then



 8:    Update custom-character  = custom-character  ∪ custom-character ′.



 9:   end if



10:  end for



11: end for



Output: custom-character









Recall that PI has decode complexity O(M3). Thus our algorithm has decode complexity









O


(

d
·


log


(
d
)


2


)




:







Σ

i
=
0

K




f
i

·

(



[


c
2



log


(
d
)



]

3

+


c
3



log


(
d
)




)

·

d

log


(
d
)





+



log


(
d
)


3

·

d

log


(
d
)





=


O


(

d
·


log


(
d
)


2


)


.





Next, we discuss the intuition behind this approach. Since we partitioned the universe (of size n=2b) into custom-character random bins, if there are d elements in the symmetric difference, then each bin is expected to contain







d
·


log


(
d
)


d


=

log


(
d
)






elements from the symmetric difference as it follows a binomial distribution B(N, p) where






N
=




n
·

log


(
d
)



d






and





p

=


d
n

.






The variance is










n
·

log


(
d
)



d

·

d
n

·

(

1
-

d
n


)


<

log


(
d
)



,




and thus σ<√{square root over (log(d))}. Thus for any fixed 0<c1<1<c2, for large enough d at least half of the total bins will contain between c1M and c2M elements from the set difference. Using PI, we can recover at least (1/2l)(c4M)>0 elements for some c4>0, or a fixed positive fraction of the total symmetric difference. Iterating, we can recover at least that same fraction of the remaining symmetric difference each layer until almost all the elements in the symmetric difference have been recovered. Under certain conditions, the K+1 layer then has sufficiently high threshold to recover the remaining elements. Notice that under this setup, it is possible to recover a portion of the symmetric difference even though some bins may fail.


The following theorem shows that for large d (and correspondingly large n=2b, as trivially n≥2d) that the probability of the processes of the dataset synchronization method 10 successfully recovering the symmetric difference tends to 1. The proof is a straightforward application of Chernoff bounds. While our earlier treatment dealt with general parameters, for the below theorem we chose the following fixed values to simplify our proof: c1=1/3, c2=7/4, c3=1/4, and f=1/6.


Theorem 1

Suppose n=2b≥2d and d≥1024. Let SA, SBcustom-character2b where for any x∈custom-character2b,







P






r


(

x



S
A


Δ






S
B



)



=


d
n

.





Then the probability the algorithm fails to recover the symmetric difference, denoted Pr(F), is at most








Pr


(
F
)




log





log






d
·

(


2
·


(
0.999
)




(

3
4

)

logd

·

d
logd




+

2


-

b
4


·


log


(
d
)



2
3





)




,




so that Pr(F)→0, as d→∞. The above discussion forms the theoretical basis for the dataset synchronization method 10, but a number of parameters is up to the user to pick in implementation. The following discussion motivates our selection of these parameters and defines an example implementation.


An example embodiment of the dataset synchronization method 10 has multiple layers (i.e., multiple rounds of partitioning, modifying, and PI). In a given layer of this embodiment, we want M to be small and l to be large, since each call of PID has complexity O(M3). In choosing l to be roughly d/log(d), we expect roughly log(d) elements of the symmetric difference per bin at the first layer. While the distribution of this elements and bins problem means that some bins will have more elements than log(d), by setting M at slightly above that value, we expect a reasonable number of bins to successfully decode. Moreover, we expect a reasonable number of elements of the symmetric difference to be in successfully decoded bins. If we adjust M appropriately from layer to layer, we can maintain a set fractional decoding in every layer—such as half.


Initial values of M, l, K may be determined by a Heuristic, as may be the reduced value of M at each layer. Pseudocode for such an implementation and both Heuristics are provided below in Algorithms 4, 5, and 6 respectively.












Algorithm 4 Simulation Implementation

















Input: SA, SB, d



 1: M1, l, K ← Heuristic1 (d)



 2: for i ← 1 to K do



 3:  for all x ∈ custom-character2b do



 4:   Assign x to ui,j uniformly random. j ∈ [1, l]



 5:  end for



 6:  Pick Ei such that |Ei| = Mi



 7:  Mi+1 ← Heuristic2(Mi)



 8: end for



 9: EK+1 ← ∅



10: χAi,j, hAi,j, χAK+1,j ← Encode(SA, Ei, H)



11: χBi,j, hBi,j, χBK+1,j ← Encode(SB, Ei, H)



12: custom-character  ← Decode(χAi,j, hAi,j, ∅, χBi,j, ∅, SB, |Ei|)



Output: custom-character



















Algorithm 5 Heuristic1

















Input: d










1:
if d <= 3 then



2:
 d ← 3 + 1



3:
end if



4:
M ← ┌log3(d)┐







5:




l




d


log
3



(
d
)
















6:
K ← ┌log2(M)┐



7:
if K = 1 then



8:
 M ← M + 1



9:
end if









Output: M, l, K




















Algorithm 6 Heuristic2

















Input: M



 1: M ← ┌M/2┐ + 1



Output: M










Our goal with this example embodiment was to decode at least half of the elements in each layer—and our simulation results show we met (and usually far exceeded) that goal in almost every run. Thus, we decreased the value of M by roughly half each layer until it hit 1 which means K˜log log d. If we had infinite layers, we would expect all of the elements to decode in the limit; but in practice K will be very small, ≤3 in all cases we initially considered.


Thus we developed the two Heuristics (i.e., algorithms 5 and 6) in this embodiment to compensate for the small number of layers. Heuristic1 targets especially small values of d which would only have a single layer. Heuristic2 considers cases where there are multiple layers. In both cases we slightly boost Min order to provide faster convergence, since K is small. In simulation, the algorithm was already fairly successful at decoding, so we chose to skip the K+1 layer. In Algorithm 4 we denote this by letting |EK+1|=0 so the encoding in layer K+1 would be empty and we explicitly enter ∅ into the K+1'th layer's inputs for Decode.


First Simulation

To test an embodiment of the dataset synchronization method 10, we generated synthetic data and used method 10 to attempt to find the symmetric difference while recording certain metrics to gauge performance. We tracked the fraction of the symmetric difference that successfully decoded at the end of each layer, as well as cost of space to transmit and decode computation. For this simulation, the universe Ω of possible set elements was of the size |Ω|=10000. The set SA was of size |SA|=3000, and was chosen uniformly at random from Ω. The size of the symmetric difference between SA and SB, d is the parameter we varied, from 1 . . . 1000. SB was constructed by modifying SA to achieve d. For each value of d, we ran the simulation R=10000 times. Thus in total we ran 107 different simulations.


PI succeeds if the size of the symmetric difference does not exceed the threshold picked at encoding. Success means the entire symmetric difference is recovered. Failure means potentially nothing is recovered. Recall decoding has O(M3) complexity; to save processing time, we implemented a blackbox that has total success/failure based on the relationship between the symmetric difference and the threshold. The nuance is that when PI fails it is desirable to detect the failure. It is desirable to keep M as small as possible.


In this embodiment, we utilize an independent hash function of size H. This changes the space required to M*b+H, and probability of not detecting failure to 2−H. For simulation, we used H=10 and didn't reduce it between layers. We used this value to calculate the space required by the dataset synchronization method 10, but we still assumed our blackbox had a perfect ability to detect failure. We feel that this is reasonable for two reasons. First, the value of M is small, so even if a failure goes undetected it can at most add M “incorrect” elements to our symmetric difference—thus the impact is relatively insignificant. Second, the actual number of calls of PID is fairly small—we can reasonably expect very few undetected failures or none at all. For example, for d=50 PID is called 30 times and for d=1000 it is 480 times.


Second Simulation

We ran a second simulation where instead of dynamically calculating the space required based on the size of the symmetric difference, we instead calculated the space required if d=50 and fixed that amount throughout the simulation. In the interest of time, we ran this simulation with smaller values for generating our synthetic data. In particular |Ω|=1000, |SA|=|SB|=300, R=1000 and we ran the simulation across d=40 . . . 130. The purpose of this simulation was to investigate how resilient the example embodiment of the dataset synchronization method 10 was when the estimate for the symmetric difference was incorrect.



FIG. 4A is a graph of the space requirements of an embodiment of the dataset synchronization method 10. FIG. 4A shows that the space requirement of Method 10 increases roughly linearly, with occasional small jumps due to the ceiling functions in our calculations. FIG. 4B is a graph of the computational complexity of an embodiment of the dataset synchronization method 10. FIG. 4B shows the compute time for decode increases faster than linearly, but notably is less than cubic. FIGS. 5A and 5B are graphs that show the distribution of results for two example values of d, 18 and 675 respectively. More specifically FIGS. 5A and 5B show the fraction of the symmetric difference that was successfully recovered at the end of a run, tallying over 10,000 runs. These values of d were chosen as they showcased examples where Algorithm 4 had relatively more runs fail to fully decode and thus resulted in more interesting distributions.


The dataset synchronization method 10 has several desirable characteristics, particularly from the perspective of Disconnected Intermittent Limited (DIL) environments. Given the same space, method 10 fully decodes the symmetric difference on average better prior art approaches. However, we feel the more compelling story comes from examining what happens when the symmetric difference is not fully decoded. In that case, an embodiment of method 10 successfully decodes a very high fraction of the symmetric difference. Method 10's performance is usually in the high 90%'s. In scenarios with just a single round of communication, if the decode is not fully successful, method 10 still manages to recover most of that symmetric difference. This has significant implications if a subsequent round of communication is not possible, and even if it is, it significantly lightens the load for that next round.


In practice, one does not know the exact size of the symmetric difference a priori and must use another technique to estimate its value. PI is extremely sensitive to that estimate—if the threshold is set even 1 too small it may fail to recover any elements of the set difference, and if the threshold is even 1 too small it loses ideal complexity characteristics. The dataset synchronization method 10 offers improvements to the set reconciliation problem encountered by prior art approaches. The price method 10 pays for these advantages comes from space required and decode complexity. Recall that method 10 requires O(db). Method 10 has an encode complexity of O(d) and a decode complexity O(d·log(d)2). Decoding for method 10 can be performed in parallel across








=


d

log





d







nodes


,




and re-aggregating the results gives an effective decode complexity of O(d) after parallelization thus reducing the gap between prior art approaches and the dataset synchronization method 10.


From the above description of the dataset synchronization method 10, it is manifest that various techniques may be used for implementing the concepts of method 10 without departing from the scope of the claims. The described embodiments are to be considered in all respects as illustrative and not restrictive. The method/apparatus disclosed herein may be practiced in the absence of any element that is not specifically claimed and/or disclosed herein. It should also be understood that method 10 is not limited to the particular embodiments described herein, but is capable of many embodiments without departing from the scope of the claims.

Claims
  • 1. A method for synchronizing first and second datasets respectively stored in first and second computers, the method comprising the following steps: partitioning each of the first and second datasets into a plurality of bins according to a first partitioning rule, wherein each bin contains a random subset of elements of symmetric difference (hereafter referred to as elements) taken from a universe of all possible elements that could be contained in the first and a second datasets;performing a first round of polynomial interpolation (PI) at a first encoding threshold on each bin of the first-partitioned datasets with the first and second computers, wherein if any bin contains a number of elements that is less than or equal to the first encoding threshold the elements contained therein are decoded during the first PI round, and wherein if any bin contains a number of elements that is greater than the first encoding threshold the elements contained therein are not decoded during the first PI round; andsynchronizing the first and second datasets based on the decoded elements.
  • 2. The method of claim 1, further comprising the following steps which are performed prior to the synchronizing step: partitioning the first and a second datasets into a plurality of bins according to a second partitioning rule, wherein each bin contains a random subset of elements taken from the universe of all possible elements that could be contained in the first and a second datasets; andperforming a second round of PI at a second encoding threshold on each bin of the second-partitioned datasets with the first and second computers, wherein if any bin contains a number of elements that is less than or equal to the second encoding threshold the elements contained therein are decoded during the second PI round, and wherein if any bin contains a number of elements that is greater than the second encoding threshold the elements contained therein are not decoded during the second PI round.
  • 3. The method of claim 2, further comprising the step of removing encoded elements that were decoded under the first PI round from the second partition bins prior to the decoding performed during the second PI round.
  • 4. The method of claim 3, wherein the second encoding threshold is less than the first encoding threshold.
  • 5. The method of claim 4, further comprising the step of transmitting in the same transmission between the first and second computers the encoded bins from the first and second PI rounds such that the dataset synchronization is performed in a single communication exchange between the first and second computers.
  • 6. The method of claim 5, wherein the transmission is performed in a low-bandwidth environment.
  • 7. The method of claim 5, wherein the size of the symmetric difference is unknown before the first PI round.
  • 8. The method of claim 1, wherein each bin contains a random subset of elements according to a binomial distribution.
  • 9. The method of claim 4, further comprising the following step which is performed prior to the synchronizing step: continuing to partition and perform rounds of PI until all elements have been decoded.
  • 10. The method of claim 5, wherein the datasets are highly structured data that form a common operation picture, which is composed of discrete data elements known as tracks such that after the single communication exchange the tracks are synchronized.
  • 11. A method for synchronizing first and second datasets SA and SB respectively stored in first and second computers, wherein the first and second datasets SA and SB are sets of binary data strings of length b, the method comprising the following steps: partitioning each of the first and second datasets SA and SB into =d/log(d) bins according to a first partitioning rule, wherein each bin contains n/ strings, where d is the absolute value of symmetric difference between the first and second datasets SA and SB, and n is an index, and wherein each bin contains a random subset of elements of the symmetric difference (hereafter referred to as elements) taken from a universe 2b of all possible elements that could be contained in the first and a second datasets SA and SB;performing a first round of polynomial interpolation (PI) at a first encoding threshold M on each bin of the first-partitioned datasets with the first and second computers by computing characteristic functions, one for each bin, and evaluating each function at the threshold of M points;computing a hash consisting of H bits for each bin;partitioning each of the first and second datasets SA and SB into =d/log(d) bins according to a second partitioning rule, wherein each bin contains n/ strings;performing a second round of PI at a second encoding threshold fM on each bin of the second-partitioned datasets with the first and second computers by computing characteristic functions, one for each bin, and evaluating each function at the threshold of fM points, where 0<f<1;computing a hash consisting of fH bits for each bin; anditeratively repeating the above steps with different partitioning rules such that the encoding threshold and the length of the hashes are reduced by a factor of f with each iteration until the number encoding threshold is less than or equal to log(log(d)).
  • 12. The method of claim 11, further comprising the step of transmitting results from all rounds of PI and all hashes performed by the first computer in a single transmission to the second computer and vice-versa.
  • 13. The method of claim 12, wherein the transmissions are performed in a low-bandwidth environment.
  • 14. The method of claim 12, wherein d is unknown before the first PI round.
  • 15. The method of claim 14, wherein the datasets are highly structured data that form a common operation picture, which is composed of discrete data elements known as tracks such that after the single transmission from each of the first and second computers the tracks are synchronized.
  • 16. A method for synchronizing first and second datasets respectively stored in first and second computers, the method comprising the following steps: performing first partitions of the first and second datasets by the first and second computers respectively such that each dataset is partitioned into a plurality of bins according to a first partitioning rule, wherein each bin contains a random subset of elements of symmetric difference (hereafter referred to as elements);performing a first round of polynomial interpolation (PI) at a first encoding threshold on each bin of the first-partitioned datasets with the first and second computers;recording encodings from the first round of PI at the first and second computers;performing second partitions of the first and second datasets by the first and second computers respectively such that each dataset is partitioned into a plurality of bins according to a second partitioning rule, wherein each bin contains a random subset of elements;performing a second round of PI at a second encoding threshold on each bin of the second-partitioned datasets with the first and second computers;recording encodings from the second round of PI at the first and second computers; andcommunicating the encodings from the first and second rounds of PI at the first and second computers in a single communication exchange between the first and second computers, wherein for any given round of PI if any bin contains a number of elements that is less than or equal to the corresponding encoding threshold, the elements contained therein are decoded by the receiving computer, and wherein if any bin contains a number of elements that is greater than the corresponding encoding threshold the elements contained therein are not decoded by the receiving computer.
  • 17. The method of claim 16, wherein the communication exchange is performed in a low-bandwidth environment.
  • 18. The method of claim 16, wherein the size of the symmetric difference is unknown before the first PI round.
  • 19. The method of claim 16, wherein the datasets are highly structured data that form a common operation picture, which is composed of discrete data elements known as tracks such that after the step of communicating the results the tracks are synchronized.
  • 20. The method of claim 16, further comprising the step of removing encoded elements that were decoded under the first PI round from the second partition bins prior to the decoding performed during the second PI round thereby decreasing the number of elements in the second partition bins.
FEDERALLY-SPONSORED RESEARCH AND DEVELOPMENT

The United States Government has ownership rights in this invention. Licensing and technical inquiries may be directed to the Office of Research and Technical Applications, Space and Naval Warfare Systems Center, Pacific, Code 72120, San Diego, Calif., 92152; voice (619) 553-5118; ssc_pac_t2@navy.mil. Reference Navy Case Number 104092.