abstract |
A system and methods for synchronizing datasets are provided that are especially suitable and efficient for a user who has three or more datasets that need to be occasionally synchronized, with no one dataset or synchronization system being guaranteed to participate in every synchronization. Synchronization status information, such as correspondences between data records of particular multiple datasets, is stored with more than one of the datasets. When two datasets that contain synchronization status information synchronize with each other, they not only synchronize user data and exchange status information involving each other, but they also synchronize and exchange status information involving “third-party” datasets that may not be participating in the synchronization. In this way, synchronization status information collected in an earlier synchronization is made available in a later synchronization, even if the earlier and later synchronizations are not conducted by a same synchronization system or do not both include a common, permanently designated “hub” dataset. Further, when datasets being synchronized are found to contain mutually-duplicative data records, the data records are intelligently mapped to each other as being corresponding so as to avoid or minimize causing of changes to be made, in the data records, that would make synchronization status information stored in another dataset to become obsolete. |