×

Randomized peer-to-peer synchronization of shared content items

  • US 9,479,578 B1
  • Filed: 12/31/2015
  • Issued: 10/25/2016
  • Est. Priority Date: 12/31/2015
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • on a first client device associated with a first namespace and communicating on a local area network (LAN) and with a content management system on a network other than the LAN, storing one or more content items associated with the namespace, each content item including one or more blocks;

    receiving, by the first client device, broadcasts from a plurality of other client devices, each broadcast identifying one or more namespaces associated with the broadcasting client device;

    identifying, by the first client device, from the received broadcasts, a group of one or more of the broadcasting client devices broadcasting the first namespace;

    connecting, by the first client device, to a subset of the identified group of broadcasting client devices, the subset of client devices being associated with the first namespace and communicating with the content management system and on the LAN;

    receiving, by the first client device, a notification from the content management system that a new content item is associated with the first namespace, wherein the new content item includes a plurality of blocks, the plurality of blocks arranged in a randomized block list;

    selecting, by the first client device, a set of the connected client devices storing the first namespace;

    sending, by the first client device, a first request to each of the selected set of the connected client devices requesting a first block of the plurality of blocks in the randomized block list;

    responsive to determining, by the first client device, that none of the selected set of the connected client devices are storing the first block, downloading the first block from the content management system;

    sending, by the first client device, a second request to each of the selected set of the connected client devices requesting a second block of the plurality of blocks in the randomized block list; and

    responsive to determining, by the first client device, that a client device of the selected set of the connected client devices is storing the second block, downloading the second block from the client device that is storing the second block.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×