Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
First Claim
1. A method, comprising:
- at a computing device comprising one or more processors and memory storing one or more computer programs executed by the one or more processors to perform the method, performing operations comprising;
receiving, from a peer computing device, a peer download advertisement, the peer download advertisement comprising an identifier of a content item namespace in association with a peer client journal cursor value;
wherein the computing device receives the peer download advertisement from the peer computing device over a data network either (a) in one or more user datagram packets (UDP) sent over the data network by the peer computing device, or (b) over a transmission control protocol (TCP) connection established over the data network between the computing device and the peer computing device;
receiving, from a server, one or more server journal entries, each server journal entry, of the one or more server journal entries, identifying one or more content item blocks of a content item represented by the server journal entry, each server journal entry of the one or more server journal entries having a server journal cursor value; and
for at least one server journal entry of the one or more server journal entries, determining, based on the one or more identified content item blocks of the content item represented by the server journal entry, that at least one content item block of the content item represented by the server journal entry is not stored at the computing device, and downloading, from the peer computing device, at least one content item block of the content item represented by the server journal entry that is not already stored at the computing device.
3 Assignments
0 Petitions
Accused Products
Abstract
A peer-to-peer synchronization protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises the operations of: receiving, from a peer computing device, a peer download advertisement comprising an identifier of a content item namespace in association with a peer client journal cursor value; receiving, from a server, one or more server journal entries, each identifying one or more content item blocks of a content item represented by the server journal entry and each having a server journal cursor value; and for at least one server journal entry, downloading, from the peer computing device, at least one content item block of the content item represented by the server journal entry that is not already stored at the computing device.
-
Citations
20 Claims
-
1. A method, comprising:
-
at a computing device comprising one or more processors and memory storing one or more computer programs executed by the one or more processors to perform the method, performing operations comprising; receiving, from a peer computing device, a peer download advertisement, the peer download advertisement comprising an identifier of a content item namespace in association with a peer client journal cursor value; wherein the computing device receives the peer download advertisement from the peer computing device over a data network either (a) in one or more user datagram packets (UDP) sent over the data network by the peer computing device, or (b) over a transmission control protocol (TCP) connection established over the data network between the computing device and the peer computing device; receiving, from a server, one or more server journal entries, each server journal entry, of the one or more server journal entries, identifying one or more content item blocks of a content item represented by the server journal entry, each server journal entry of the one or more server journal entries having a server journal cursor value; and for at least one server journal entry of the one or more server journal entries, determining, based on the one or more identified content item blocks of the content item represented by the server journal entry, that at least one content item block of the content item represented by the server journal entry is not stored at the computing device, and downloading, from the peer computing device, at least one content item block of the content item represented by the server journal entry that is not already stored at the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device, comprising:
-
one or more processors; and storage media storing one or more computer programs comprising instructions configured for; receiving, from a peer computing device, a peer download advertisement, the peer download advertisement comprising an identifier of a content item namespace in association with a peer client journal cursor value; wherein the computing device receives the peer download advertisement from the peer computing device over a data network either (a) in one or more user datagram packets (UDP) sent over the data network by the peer computing device, or (b) over a transmission control protocol (TCP) connection established over the data network between the computing device and the peer computing device; receiving, from a server, one or more server journal entries, each server journal entry, of the one or more server journal entries, identifying one or more content item blocks of a content item represented by the server journal entry, each server journal entry of the one or more server journal entries having a server journal cursor value; and for at least one server journal entry of the one or more server journal entries, determining, based on the one or more identified content item blocks of the content item represented by the server journal entry, that at least one content item block of the content item represented by the server journal entry is not stored at the computing device, and downloading, from the peer computing device, at least one content item block of the content item represented by the server journal entry that is not already stored at the computing device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification