Randomized peer-to-peer synchronization of shared content items
AssigneeDropbox, Inc.
InventorEric Swanson
Life of this patent
Estimating the term…
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.
Claims20
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;
- 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;
- and
- in response to determining from the request that none of the plurality of client devices has a copy of the requested first block, downloading the requested first block from the content management system.
A method for comprising:
- receiving at a first client device of a plurality of client devices a synchronization notification from a content management system, indicating that the first client device is to synchronize a content item comprising a plurality of blocks, wherein the plurality of client devices communicate with a local area network (LAN) and with the content management system that is on a network other than the LAN:
- in response to receiving the synchronization notification, requesting, by the first client device, from the plurality of client devices a first block in a randomized blocklist, the randomized blocklist specifying a random order of the plurality of blocks;
- 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;
- and
- in response to determining from the request that none of the plurality of client devices has a copy of the requested first block, downloading the requested first block from the content management system.
A client device communicatively coupled to a plurality of other client devices via a local area network (LAN) and a content management system that is on a network other than the LAN, comprising:
- a non-transitory computer-readable storage medium storing instructions that, when executed, causes the client device to perform steps comprising:
- receiving, from the content management system, a synchronization notification indicating that the client device is to synchronize a content item comprising a plurality of blocks
- in response to receiving the synchronization notification, requesting from the plurality of other 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;
- 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;
- and
- in response to determining from the request that none of the plurality of other client devices has a copy of the requested first block, downloading the requested first block from the content management system;
- and
- a processor configured to execute the computer instructions.
Dependencies are inferred from the claim text.