VERSIONING SYNCHRONIZATION FOR MASS P2P FILE SHARING
First Claim
1. A computer-readable medium having computer executable instructions for synchronizing versions of content to be shared via a peer-to-peer (P2P) network, said computer executable instructions comprising:
- for each of a plurality of peers, identifying a set of one or more objects, held by each peer, that are to be shared with any one or more of the other peers;
wherein each object held by each peer includes one or more descriptions each of which represent either of a creation and a modification history of each object, as known to each peer;
for each description of each object held by each peer, preparing a version identifier which uniquely differentiates each description of each object, such that a same object held by different peers, but created or modified at different times, will have one or more associated version identifiers;
exchanging the most current version identifier of each object prepared by each peer with each other peer, said exchange being accomplished via a P2P network to which each peer is attached; and
for each peer, evaluating the version identifiers received from each other peer to determine whether each peer holds the same version of each object.
2 Assignments
0 Petitions
Accused Products
Abstract
A “Mass File Sharer” (MFS) provides a mass P2P file sharing protocol with optional on-demand file access across a P2P network. Unlike conventional P2P file sharing, the MFS simultaneously asynchronously shares large numbers of files, while providing optional on-demand (synchronous) access to shared files. The MFS uses a unique metadata structure in combination with an inter-peer file/folder version analysis and an inter-peer file/folder availability analysis to share complex directory structures that may include any number of folders, sub-folders, and files. Sharing may be asynchronous and/or synchronous. Specifically, file sharing is generally accomplished as an asynchronous distribution across the network. However, when a particular peer wants direct access particular files, an on-demand access mode is used to enable synchronous delivery of shared files. This combination of asynchronous and synchronous file distribution enables the MFS to support a number of applications, such as on-demand movie viewing, file/folder browsing, etc.
309 Citations
20 Claims
-
1. A computer-readable medium having computer executable instructions for synchronizing versions of content to be shared via a peer-to-peer (P2P) network, said computer executable instructions comprising:
-
for each of a plurality of peers, identifying a set of one or more objects, held by each peer, that are to be shared with any one or more of the other peers; wherein each object held by each peer includes one or more descriptions each of which represent either of a creation and a modification history of each object, as known to each peer; for each description of each object held by each peer, preparing a version identifier which uniquely differentiates each description of each object, such that a same object held by different peers, but created or modified at different times, will have one or more associated version identifiers; exchanging the most current version identifier of each object prepared by each peer with each other peer, said exchange being accomplished via a P2P network to which each peer is attached; and for each peer, evaluating the version identifiers received from each other peer to determine whether each peer holds the same version of each object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for synchronizing versions of data to be shared between peers in a peer-to peer (P2P) network, comprising using each of a plurality of peer computing devices to perform steps for:
-
identifying matching data sharing interests between each of a plurality of peer computing devices; wherein the matching data sharing interests of each peer computing device correspond to objects that include a root folder which further includes one or more of subfolders and files to be shared; wherein, for each peer computing device, each object, including the root folder and any included subfolders and files, has a set of associated version identifiers each of which represents a historical description of a known version of each particular object, including a current version of each particular object, as currently held by each of the peer computing devices; for each peer computing device, exchanging a most current version identifier associated with the root folder of each peer computing device with each other peer computing device via the P2P network; and locally comparing the version identifiers of each root folder received from each other peer computing device with the most current version identifier associated with the root folder held by each peer computing device to determine whether each peer computing device holds a most current version of the root folder among the plurality of peer computing devices. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for coordinating content sharing interests between peers in a peer-to-peer (P2P) network, comprising:
-
for each of a plurality of peers attached to a P2P network, identifying one or more matching peers in a P2P network that have corresponding content sharing interests corresponding to a root share folder of each peer; wherein the root share folder of each matching peer represents a directory tree structure of folders and files contained with the root share folder; locally preparing a set of version data for each of the root share folder and each of the folders and files contained within the root share folder, each set of version data describing any of a creation and modification history of each corresponding root share folder and each of the folders and files contained within the root share folder; exchanging the version data for each root share folder prepared by each matching peer with every other matching peer via the P2P network; for each matching peer, locally comparing the version data received from every other matching peer with the locally prepared version data to determine whether each matching peer holds the same version of the root share folder. - View Dependent Claims (17, 18, 19, 20)
-
Specification