Summary: | As more and more data migrate to the cloud, and the same files become accessible from
multiple different machines, finding effective ways to ensure data consistency is becoming increasingly important.
In this thesis, we cover current methods for efficiently maintaining sets of objects without the use of logs or other prior context, which is better known as the set reconciliation problem. We also discuss the state of the art for file synchronization, including methods that use set reconciliation techniques as an intermediate step.
We explain the design and implementation of a novel file synchronization protocol tailored
to minimize transmission complexity and targeted for files with relatively few changes.
We also propose an extension of our file synchronization protocol for more general file directory synchronization.
We describe IBLTsync, our implementation of the aforementioned file
synchronization protocol, and benchmark it against a naïve file transmission protocol and rsync, a popular file synchronization library. We find that for files with relatively few changes, IBLTsync transmits significantly less data than the naïve protocol, and moderately less data than rsync. In addition, we provide the first (to our knowledge) implementation of multi-party
set reconciliation using Invertible Bloom Lookup Tables, a hash based data structure, and evaluate its performance for message propagation in large networks.
|