Server-assisted and peer-to-peer synchronization
First Claim
Patent Images
1. One or more computer-readable memory devices or storage devices having instructions stored thereon that, when executed by a computing device, cause a method to be performed, the method comprising:
- synchronizing a feed maintained by a server endpoint with another feed maintained by a first endpoint, the synchronizing comprising, by the server endpoint;
obtaining metadata from the first endpoint, wherein the metadata obtained from the first endpoint includes an identifier of a blob that can be retrieved from one or more locations, and at least a portion of the blob can be retrieved from an individual location other than the server endpoint; and
updating the feed maintained by the server endpoint by merging the metadata obtained from the first endpoint with other metadata maintained by the server endpoint;
updating a blob lookup service with one or more blob locators that identify the one or more locations from where the blob can be retrieved, wherein an individual blob locator identifies the individual location other than the server endpoint from where the portion of the blob can be retrieved; and
,communicating the merged metadata, including at least the identifier of the blob, to other endpoints that have subscribed to receive metadata updates,wherein at least the synchronizing is performed using a synchronization protocol for communicating the feed maintained by the server endpoint and the feed maintained by the first endpoint, andwherein, in at least one instance, an individual other endpoint that has subscribed to receive the metadata updates obtains the portion of the blob from the location other than the server endpoint and does not obtain the portion from the server endpoint.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for synchronizing data between endpoints using elements of centralized and decentralized synchronization systems and communication topologies are disclosed. Such systems and methods may in some cases synchronize some subset of data with a centralized endpoint while another subset of data is synchronized in a decentralized fashion directly with other endpoints. Such systems and methods may include a variety of cooperative functionality to assist in the synchronization of data between endpoints.
-
Citations
20 Claims
-
1. One or more computer-readable memory devices or storage devices having instructions stored thereon that, when executed by a computing device, cause a method to be performed, the method comprising:
-
synchronizing a feed maintained by a server endpoint with another feed maintained by a first endpoint, the synchronizing comprising, by the server endpoint; obtaining metadata from the first endpoint, wherein the metadata obtained from the first endpoint includes an identifier of a blob that can be retrieved from one or more locations, and at least a portion of the blob can be retrieved from an individual location other than the server endpoint; and updating the feed maintained by the server endpoint by merging the metadata obtained from the first endpoint with other metadata maintained by the server endpoint; updating a blob lookup service with one or more blob locators that identify the one or more locations from where the blob can be retrieved, wherein an individual blob locator identifies the individual location other than the server endpoint from where the portion of the blob can be retrieved; and
,communicating the merged metadata, including at least the identifier of the blob, to other endpoints that have subscribed to receive metadata updates, wherein at least the synchronizing is performed using a synchronization protocol for communicating the feed maintained by the server endpoint and the feed maintained by the first endpoint, and wherein, in at least one instance, an individual other endpoint that has subscribed to receive the metadata updates obtains the portion of the blob from the location other than the server endpoint and does not obtain the portion from the server endpoint. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
synchronizing a feed maintained by a server endpoint with a first endpoint, the synchronizing comprising, by the server endpoint; obtaining metadata from the first endpoint, wherein the metadata obtained from the first endpoint includes an identifier of a blob that has been newly created or modified by the first endpoint and the blob is not communicated to the server endpoint with the metadata; and updating the feed maintained by the server endpoint by merging the metadata obtained from the first endpoint with other metadata maintained by the server endpoint; updating a blob lookup service with a blob locator that identifies the first endpoint as a location from where the blob can be retrieved; communicating the merged metadata, including at least the identifier of the blob, to a second endpoint that has subscribed to receive metadata updates, wherein at least the synchronizing is performed using a synchronization protocol for communicating the feed maintained by the server, and wherein, in at least one instance, the second endpoint obtains the blob from the first endpoint using the blob locator that identifies the first endpoint. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a storage service; a blob lookup service; and a processing unit configured to execute one or more of the storage service or the blob lookup service; wherein the storage service is configured to; obtain metadata from a first device endpoint, wherein the metadata obtained from the first device endpoint includes an identifier of a blob that has been newly created or modified by the first device endpoint; update a feed maintained by the storage service by merging the metadata obtained from the first device endpoint with other metadata maintained by the storage service; update the blob lookup service with a blob locator that identifies the first device endpoint as a location from where the blob can be retrieved by other device endpoints; and communicate the merged metadata to the other device endpoints using a synchronization protocol for communicating the feed maintained by the storage service; wherein the blob lookup service is configured to provide the blob locator to the other device endpoints upon request. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification