N-way synchronization of data
First Claim
1. A first peer system for synchronizing data elements in a group of synchronizing peer systems, said first peer system comprising,A sync software module for managing synchronization directly with a second peer system and directly with a third peer system;
- A memory for storing a first node tree representing a first sync point in said first peer system, a second node tree representing a second sync point in said second peer system, and a third node tree representing a third sync point in said third peer system;
A microprocessor resource for running said sync software module while said sync software module interacts with metadata;
said running activity producing a first job list for said first peer, a second job list for said second peer and a third job list for said third peer;
Said metadata derived from a set of corresponding nodes, said set of corresponding nodes comprising one node from each of said first node tree, said second node tree and said third node tree;
Said second job list comprising instructions to synchronize objects in said second sync point with corresponding objects in said first sync point and said second sync point;
Said first job list comprising instructions to synchronize objects in said first sync point with corresponding objects in said second sync point and said first sync point;
An i/o system for connecting with said second peer system and said third peer system for transferring said second job list and said third job list respectively.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention relates to the use of history information as an aid to synchronization in a peer-to-peer system. In particular, node trees are used to represent portions of files systems designated for synchronization. The nodes in the node tree embody history information regarding associated objects. The history information includes version vectors that are used to simplify synchronization-related comparisons and create job lists that may be used to bring participating peers into synchronization.
-
Citations
39 Claims
-
1. A first peer system for synchronizing data elements in a group of synchronizing peer systems, said first peer system comprising,
A sync software module for managing synchronization directly with a second peer system and directly with a third peer system; -
A memory for storing a first node tree representing a first sync point in said first peer system, a second node tree representing a second sync point in said second peer system, and a third node tree representing a third sync point in said third peer system; A microprocessor resource for running said sync software module while said sync software module interacts with metadata;
said running activity producing a first job list for said first peer, a second job list for said second peer and a third job list for said third peer;Said metadata derived from a set of corresponding nodes, said set of corresponding nodes comprising one node from each of said first node tree, said second node tree and said third node tree; Said second job list comprising instructions to synchronize objects in said second sync point with corresponding objects in said first sync point and said second sync point; Said first job list comprising instructions to synchronize objects in said first sync point with corresponding objects in said second sync point and said first sync point; An i/o system for connecting with said second peer system and said third peer system for transferring said second job list and said third job list respectively. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of synchronizing a first peer system with a second peer system and a third peer system, the method comprising the steps of:
-
Generating a first node tree, said first node tree corresponding to a first sync point existing in a store of said first peer system; Generating a second node tree, said second node tree corresponding to a second sync point existing in a store of said second peer system; Generating a third node tree, said third node tree corresponding to a third sync point existing in a store of said third peer system; Storing said node trees in a store of said first peer system; Analyzing metadata to produce a first job list for said first peer, a second job list for said second peer and a third job list for said third peer; Said metadata derived from a set of corresponding nodes, said set of corresponding nodes comprising one node from each of said first node tree, said second node tree and said third node tree; Said second job list comprising instructions to synchronize objects in said second sync point with corresponding objects in said first sync point and said second sync point; Said first job list comprising instructions to synchronize objects in said first sync point with corresponding objects in said second sync point and said first sync point; Enacting said first job list on said first peer system; Enacting said second job list on said second peer system; and Enacting said third job list on said third peer system. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 39)
-
-
29. An apparatus for synchronizing datums between a first peer system, a second peer system and a third peer system, said apparatus comprising:
-
A memory for storing a first node tree representing a first sync point in said first peer system, a second node tree representing a second sync point in said second peer system, and a third node tree representing a third sync point in said third peer system; A microprocessor resource for running a client software program, a service software module and a sync software module, said service software module providing a program interface for indicating a sync point, and said sync software module for interacting with metadata and thereby producing a first job list for said first peer system, a second job list for said second peer system and a third job list for said third peer system; Said metadata derived from a set of corresponding nodes, said set of corresponding nodes comprising one node from each of said first node tree, said second node tree and said third node tree; Said second job list comprising instructions to synchronize objects in said second sync point with corresponding objects in said first sync point and said second sync point; Said first job list comprising instructions to synchronize objects in said first sync point with corresponding objects in said second sync point and said first sync point. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification