Patent ID: 7953785

Claim:
A method, implemented at least in part by a computer, comprising: determining an overlay graph representation of connections between a plurality of nodes within a peer-to-peer file sharing network; and selecting first and second nodes to be synchronized via the peer-to-peer file sharing network, wherein the first and second nodes are selected from the plurality of nodes based at least in part on the overlay graph, wherein selecting the first and second nodes to be synchronized further comprises: maintaining at the first node, a plurality of version vectors, each version vector being associated with one of the plurality of nodes and each version vector representing a list of events that have been applied to files maintained by its associated one of the plurality of nodes, the plurality of nodes including the first and second nodes and at least one additional node; and when a comparison of the first and second version vectors indicates that synchronization between the first and second nodes is warranted, transmitting to the second node a high watermark generated based on the maintained plurality of version vectors, the high watermark including a most recent event, for each of the plurality of nodes, of which the first node is aware to enable the second node to determine that synchronization is warranted, and transmitting a form of the first version vector from the first node to the second node to be utilized by the second node to determine, when the transmitted high watermark matches a high watermark of the second node, whether there are events in the first version vector other than the most recent event in the first version vector of which the second node is unaware, wherein the second node is selected based at least in part on an anticipated utility of the synchronization, and the anticipated utility of the synchronization is based at least in part on an anticipated ability of the second node to redistribute file events that will be transmitted to the second node from the first node via the synchronization.