Scalable peer matching
First Claim
1. A device comprising:
- one or more processors;
memory storing a first version of a list of grouped peer identifiers corresponding to a set of peer devices that have registered with a plurality of peer matching nodes for peer matching services associated with a content identifier; and
instructions stored on the memory and executable by the one or more processors to;
identify a first set of changes to the first version of the list of grouped peer identifiers, the first set of changes occurring at a particular peer matching node of the plurality of peer matching nodes, an individual change in the first set of changes including one or more of;
an addition of a new peer identifier based at least in part on a reception of a new request from a new peer device to register with the particular peer matching node for the peer matching services associated with the content identifier;
a removal of an expired peer identifier based at least in part on a determination that an existing peer device is no longer registered with the particular peer matching node for the peer matching services associated with the content identifier;
orupdated metadata representative of a peer state changing from a first peer state to a second peer state that is different than the first peer state;
determine that a defined time period has expired or that a number of changes in the first set of changes exceeds a threshold number of changes;
generate, based at least in part on the determining that the defined time period has expired or that the number of changes in the first set of changes exceeds the threshold number of changes, first information representative of the first set of changes to the first version of the list of grouped peer identifiers;
send, to a hub that is configured to update a second version of the list of grouped peer identifiers based on a second set of changes that occur across at least two of the plurality of peer matching nodes for the peer matching services associated with the content identifier, the first information representative of the first set of changes to the first version of the list of grouped peer identifiers;
receive, from the hub, second information representative of the second set of changes to the second version of the list of grouped peer identifiers;
update the first version of the list of grouped peer identifiers based at least in part on the second information received from the hub; and
provide the updated first version of the list of grouped peer identifiers to at least one peer device that has registered with the particular peer matching node.
1 Assignment
0 Petitions
Accused Products
Abstract
The techniques and systems described herein implement an improved peer matching service by coordinating peer matching requests across multiple peer matching nodes configured within a peer matching unit so that resource consumption can be spread out and resource limitations are not exceeded. Moreover, the peer matching service can determine if a peer matching unit is overloaded (e.g., experiencing an increased number of requests in a given time interval that is causing performance degradation), and the peer matching service can implement an action to scale out the number of requests within the peer matching unit (e.g., re-distribute some peer matching requests to another peer matching unit). In various examples, the peer matching service can determine if peer devices are co-located peer devices based on location information and can generate a list that prioritizes the co-located peer devices.
51 Citations
14 Claims
-
1. A device comprising:
-
one or more processors; memory storing a first version of a list of grouped peer identifiers corresponding to a set of peer devices that have registered with a plurality of peer matching nodes for peer matching services associated with a content identifier; and instructions stored on the memory and executable by the one or more processors to; identify a first set of changes to the first version of the list of grouped peer identifiers, the first set of changes occurring at a particular peer matching node of the plurality of peer matching nodes, an individual change in the first set of changes including one or more of; an addition of a new peer identifier based at least in part on a reception of a new request from a new peer device to register with the particular peer matching node for the peer matching services associated with the content identifier; a removal of an expired peer identifier based at least in part on a determination that an existing peer device is no longer registered with the particular peer matching node for the peer matching services associated with the content identifier;
orupdated metadata representative of a peer state changing from a first peer state to a second peer state that is different than the first peer state; determine that a defined time period has expired or that a number of changes in the first set of changes exceeds a threshold number of changes; generate, based at least in part on the determining that the defined time period has expired or that the number of changes in the first set of changes exceeds the threshold number of changes, first information representative of the first set of changes to the first version of the list of grouped peer identifiers; send, to a hub that is configured to update a second version of the list of grouped peer identifiers based on a second set of changes that occur across at least two of the plurality of peer matching nodes for the peer matching services associated with the content identifier, the first information representative of the first set of changes to the first version of the list of grouped peer identifiers; receive, from the hub, second information representative of the second set of changes to the second version of the list of grouped peer identifiers; update the first version of the list of grouped peer identifiers based at least in part on the second information received from the hub; and provide the updated first version of the list of grouped peer identifiers to at least one peer device that has registered with the particular peer matching node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
identifying, at a first peer matching node of a plurality of peer matching nodes, a first set of changes to a first local list of grouped peer identifiers maintained at the first peer matching node, an individual change in the first set of changes including one or more of; an addition of a new peer identifier based at least in part on a reception of a new request from a new peer device to register with the first peer matching node for peer matching services associated with a content identifier; a removal of an expired peer identifier based at least in part on a determination that an existing peer device is no longer registered with the first peer matching node for the peer matching services associated with the content identifier;
orupdated metadata representative of a peer state changing from a first peer state to a second peer state that is different than the first peer state; determining, by one or more processors, that a defined time period has expired or that a number of changes in the first set of changes exceeds a threshold number of changes; generating, based at least in part on the determining that the defined time period has expired or that the number of changes in the first set of changes exceeds the threshold number of changes, first information representative of the first set of changes to the first local list of grouped peer identifiers; sending, from the first peer matching node to a hub device that is configured to synchronize information across the plurality of peer matching nodes, the first information representative of the first set of changes; receiving, at the first peer matching node and from the hub device, second information representative of a second set of changes, an individual change in the second set of changes including another addition of another new peer identifier to a second local list of grouped peer identifiers, maintained by a second peer matching node of the plurality of peer matching nodes, based at least in part on another reception of another new request from another new peer device to register with the second peer matching node for the peer matching services associated with the content identifier; updating, by the first peer matching node, the first local list of grouped peer identifiers based at least in part on the second information received from the hub device; and providing the updated first local list of grouped peer identifiers to at least one peer device that has registered with the first peer matching node for the peer matching services associated with the content identifier. - View Dependent Claims (7, 8, 9)
-
-
10. A method comprising:
-
identifying, at a first peer matching node of a plurality of peer matching nodes, a first set of changes to a first local list of grouped peer identifiers, maintained at the first peer matching node, the first local list of grouped peer identifiers corresponding to a set of peer devices that have registered with the plurality of peer matching nodes for peer matching services associated with a content identifier, an individual change in the first set of changes including one or more of; an addition of a new peer identifier based at least in part on a reception of a new request from a new peer device to register with the particular peer matching node for the peer matching services associated with the content identifier; a removal of an expired peer identifier based at least in part on a determination that an existing peer device is no longer registered with the particular peer matching node for the peer matching services associated with the content identifier;
orupdated metadata representative of a peer state changing from a first peer state to a second peer state that is different than the first peer state; determining, by one or more processors, that a defined time period has expired or that a number of changes in the first set of changes exceeds a threshold number of changes; generating, based at least in part on the determining that the defined time period has expired or that the number of changes in the first set of changes exceeds the threshold number of changes, first information representative of the first set of changes to the first version of the list of grouped peer identifiers; sending, to a hub that is configured to update a second version of the list of grouped peer identifiers based on a second set of changes that occur across at least two of the plurality of peer matching nodes for the peer matching services associated with the content identifier, the first information representative of the first set of changes to the first version of the list of grouped peer identifiers; receiving, from the hub, second information representative of the second set of changes to the second version of the list of grouped peer identifiers; updating the first version of the list of grouped peer identifiers based at least in part on the second information received from the hub; and providing the updated first version of the list of grouped peer identifiers to at least one peer device that has registered with the particular peer matching node. - View Dependent Claims (11, 12, 13, 14)
-
Specification