Randomized Peer-to-Peer Synchronization of Shared Content Items
First Claim
1. A non-transitory computer-readable storage medium storing instructions that, when executed by a first client device of a plurality of client devices communicating with a local area network (LAN) and communicating with a content management system that is on a network other than the LAN, cause the first client device to perform operations comprising:
- receiving, from the content management system, a synchronization notification indicating that the first client device is to synchronize a content item, wherein the content item comprises a plurality of blocks, the synchronizing comprising;
requesting from the plurality of client devices communicating on the LAN a first block in a randomized blocklist, the randomized blocklist specifying a random order of the plurality of blocks; and
in response to determining from the request that a second device of the plurality of client devices has a copy of the requested first block identified in the randomized blocklist, downloading the first block from the second client device.
3 Assignments
0 Petitions
Accused Products
Abstract
A content management system synchronizes content items across client computing systems connected by a network. Client devices connected to peer devices on a LAN utilize peer-to-peer synchronization to synchronize content items. Client devices on the LAN broadcast namespaces synchronized on the client devices with other devices on the LAN. Client devices on the LAN connect to a subset of client devices that share a namespace with the connecting client device based on the broadcasts. Upon receiving a notification from the content management system that a new content item has been synchronized with the namespace a client device sends requests for a block comprising a content item to a subset of the connected devices. Additional block requests are sent in the order of randomized blocklist.
40 Citations
20 Claims
-
1. A non-transitory computer-readable storage medium storing instructions that, when executed by a first client device of a plurality of client devices communicating with a local area network (LAN) and communicating with a content management system that is on a network other than the LAN, cause the first client device to perform operations comprising:
receiving, from the content management system, a synchronization notification indicating that the first client device is to synchronize a content item, wherein the content item comprises a plurality of blocks, the synchronizing comprising; requesting from the plurality of client devices communicating on the LAN a first block in a randomized blocklist, the randomized blocklist specifying a random order of the plurality of blocks; and in response to determining from the request that a second device of the plurality of client devices has a copy of the requested first block identified in the randomized blocklist, downloading the first block from the second client device. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9)
-
10. A non-transitory computer-readable storage medium storing instructions that, when executed by a first client device of a plurality of client devices communicating with a local area network (LAN) and communicating with a content management system that is on a network other than the LAN, cause the first client device to perform operations comprising:
receiving, from the content management system, a synchronization notification indicating that the first client device is to synchronize a content item, wherein the content item comprises a plurality of blocks, the synchronizing comprising; requesting from the plurality of client devices communicating on the LAN a first block in a randomized blocklist, the randomized blocklist specifying a random order of the plurality of blocks; downloading the requested first block, and in response to receiving, from a second client device on the LAN authorized to access the content item, a request for the first block, sending the first block to the second client device. - View Dependent Claims (11, 12, 13, 14, 15)
-
16. A non-transitory computer-readable storage medium storing instructions that, when executed by a content management system, cause the content management system to perform operations comprising:
-
sending, to a first client device and a second client device, a synchronization notification associated with a content item in a namespace, wherein the content item includes a plurality of blocks, and wherein the first client device and the second client device are associated with a same namespace and a same local area network (LAN); in response to receiving a first synchronization request from the first client device, the first synchronization request specifying a first block from a first randomized order of the plurality of blocks, sending the first block to the first client device; and in response to receiving a second synchronization request from the second client device, the second synchronization request specifying a second block from a second randomized order of the plurality of blocks, sending the second block to the second client device. - View Dependent Claims (17, 18, 19, 20)
-
Specification