File Synchronization with Vector Time Pairs

Vector time pairs are a new method for tracking synchronization metadata. A vector time pair consists of two vector times: one tracking file modification history and one tracking file synchronization history. Because the vector times are maintained separately and used for different purposes, different algorithms and optimizations can be applied to each. As a result, vector time pairs impose no restriction on synchronization patterns, never falsely detect conflicts, require no space to store deletion notices, require network bandwidth proportional only to the number of files changed, and support partial synchronizations. No other current synchronization method has all these properties. Results from an implementation of vector time pairs in a new user-level file synchronizer called Tra confirm the benefits of vector time pairs.

[1]  John S. Heidemann,et al.  Primarily disconnected operation: experiences with Ficus , 1992, [1992 Proceedings] Second Workshop on the Management of Replicated Data.

[2]  Russ Cox,et al.  Communication Timestamps for File System Synchronization , 2001 .

[3]  Gerald J. Popek,et al.  Consistency algorithms for optimistic replication , 1993, 1993 International Conference on Network Protocols.

[4]  Marvin Theimer,et al.  Flexible update propagation for weakly consistent replication , 1997, SOSP.

[5]  Mahadev Satyanarayanan,et al.  Disconnected operation in the Coda File System , 1992, TOCS.

[6]  Magnus Karlsson,et al.  Taming aggressive replication in the Pangaea wide-area file system , 2002, OPSR.

[7]  Friedemann Mattern,et al.  Detecting causal relationships in distributed computations: In search of the holy grail , 1994, Distributed Computing.

[8]  Peter L. Reiher,et al.  Rumor: Mobile Data Access Through Optimistic Peer-to-Peer Replication , 1998, ER Workshops.

[9]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[10]  Benjamin C. Pierce,et al.  What's in Unison? A Formal Specification and Reference Implementation of a File Synchronizer , 2004 .

[11]  MatternFriedemann,et al.  Detecting causal relationships in distributed computations , 1994 .

[12]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[13]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

[14]  Benjamin C. Pierce,et al.  What is a file synchronizer? , 1998, MobiCom '98.

[15]  Robert Tappan Morris,et al.  Ivy: a read/write peer-to-peer file system , 2002, OSDI '02.

[16]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[17]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[18]  Ii Richard George Guy,et al.  FICUS: a very large scale reliable distributed file system , 1992 .

[19]  Norman Ramsey,et al.  An algebraic approach to file synchronization , 2001, ESEC/FSE-9.

[20]  Andrew Tridgell,et al.  Efficient Algorithms for Sorting and Synchronization , 1999 .