Partial graph incremental update in a social network
First Claim
1. A computer-implemented method comprising:
- retrieving a social graph including a plurality of nodes and a plurality of edges, each of the nodes corresponding to a member in a social network service and each of the edges representing a connection between members of the social network service;
for each node of the plurality of nodes in the social graph;
creating a vertex-centric partial graph for the node, the vertex-centric partial graph identifying the node as a vertex with a specific vertex node and containing nodes from the partial graph, the nodes from the partial graph being only nodes reachable within limited hops from the node, wherein a hop is a distance of one edge between nodes;
determining a list of the nodes reachable in one hop, without intermediate nodes, from the vertex;
adding the list of nodes reachable in one hop to a first degree list for the partial graph;
determining a list of nodes reachable in exactly two hops from the vertex, and reference counts as to how many distinct paths exist, in the social graph, between the vertex and each of the nodes reachable in exactly two hops from the vertex; and
adding the list of nodes reachable in two hops and the reference counts to a second degree list for the partial graph;
maintaining a global inverted index containing a list of all nodes in the social graph and for each node in the social graph a list of nodes that directly connect to the node in the social graph;
distributing the partial graphs created for each of the plurality of nodes across a plurality of data servers; and
distributing the global inverted index containing the list of all directly connected nodes to the data servers to facilitate a network computer breadth-first distance traversal.
2 Assignments
0 Petitions
Accused Products
Abstract
A social graph is divided into a series of partial graphs having limited hops and reference counts. For each of a plurality of nodes in the social graph, a partial graph for the node is created having a first degree list of nodes reachable in one hop and a second degree list of nodes reachable in two hops. Reference counts of how many paths exist between the node and each node reachable in two hops are also added to the second degree list. A global inverted index is maintained containing a list of all nodes in the social graph and for each node in the social graph a list of nodes that directly connect to the node. The partial graphs created for each of the plurality of nodes are distributed across a plurality of data servers. An index of which partial graphs are stored on which data servers is maintained.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
retrieving a social graph including a plurality of nodes and a plurality of edges, each of the nodes corresponding to a member in a social network service and each of the edges representing a connection between members of the social network service; for each node of the plurality of nodes in the social graph; creating a vertex-centric partial graph for the node, the vertex-centric partial graph identifying the node as a vertex with a specific vertex node and containing nodes from the partial graph, the nodes from the partial graph being only nodes reachable within limited hops from the node, wherein a hop is a distance of one edge between nodes; determining a list of the nodes reachable in one hop, without intermediate nodes, from the vertex; adding the list of nodes reachable in one hop to a first degree list for the partial graph; determining a list of nodes reachable in exactly two hops from the vertex, and reference counts as to how many distinct paths exist, in the social graph, between the vertex and each of the nodes reachable in exactly two hops from the vertex; and adding the list of nodes reachable in two hops and the reference counts to a second degree list for the partial graph; maintaining a global inverted index containing a list of all nodes in the social graph and for each node in the social graph a list of nodes that directly connect to the node in the social graph; distributing the partial graphs created for each of the plurality of nodes across a plurality of data servers; and distributing the global inverted index containing the list of all directly connected nodes to the data servers to facilitate a network computer breadth-first distance traversal. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data server comprising:
-
a content store containing one or more vertex-centric partial graphs, each vertex-centric partial graph corresponding to a different node in a social graph, identifying the node as a vertex with a specific vertex node identifier, and containing nodes from the partial graph that are only reachable within limited hops from the node, the social graph including a plurality of nodes and a plurality of edges, each of the nodes corresponding to a member in a social network service and each of the edges representing a connection between members of the social network service, the partial graph for a particular node including a first degree list of the nodes reachable in one hop, without intermediate nodes, from the particular node and also including a second degree list of nodes reachable in exactly two hopes from the particular node, as well as reference counts as to how many distinct paths exist, in the social graph, between the particular node and each node reachable in two hops from the node; and a logic component comprising one or more processors configured to alter the one or more partial graphs stored in the content store, including the first degree lists, second degree lists, and reference counts, in response to the addition or deletion of a connection from a first node in the social graph to a second node; and cause the altering of an inverted index entry corresponding the first node in a global inverted index, the global inverted index being distributed to data servers to facilitate a network computer breadth-first distance traversal. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable medium storing executable instructions thereon, which, when executed by a processor, causes the processor to perform operations comprising:
-
retrieving a social graph including a plurality of nodes and a plurality of edges, each of the nodes corresponding to a member in a social network service and each of the edges representing a connection between members of the social network service; for each node of the plurality of nodes in the social graph; creating a vertex-centric partial graph for the node, the vertex-centric partial graph identifying the node as a vertex with a specific vertex node and containing nodes from the partial graph, the nodes from the partial graph being only nodes reachable within limited hops from the node, wherein a hop is a distance of one edge between nodes; determining a list of the nodes reachable in one hop, without intermediate nodes, from the vertex; adding the list of nodes reachable in one hop to a first degree list for the partial graph; determining a list of nodes reachable in exactly two hops from the vertex, and reference counts as to how many distinct paths exist, in the social graph, between the vertex and each of the nodes reachable in exactly two hops from the vertex; and adding the list of nodes reachable in two hops and the reference counts to a second degree list for the partial graph; maintaining a global inverted index containing a list of all nodes in the social graph and for each node in the social graph a list of nodes that directly connect to the node in the social graph; distributing the partial graphs created for each of the plurality of nodes across a plurality of data servers; and distributing the global inverted index containing the list of all directly connected nodes to the data servers to facilitate a network computer breadth-first distance traversal. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification