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 partial graph for the node;
determining a list of the nodes reachable in one hop from the node;
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 two hops from the node, and reference counts as to how many paths exist between the node and each of the nodes reachable in two hops from the node; 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
maintaining an index of which partial graphs are stored on which data servers.
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 partial graph for the node; determining a list of the nodes reachable in one hop from the node; 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 two hops from the node, and reference counts as to how many paths exist between the node and each of the nodes reachable in two hops from the node; 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 maintaining an index of which partial graphs are stored on which data servers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data server comprising:
-
a content store containing one or more partial graphs, each partial graph corresponding to a different node in a social graph, 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 from the particular node and also including a second degree list of nodes reachable in two hopes from the particular node, as well as reference counts as to how many paths exist 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. - 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 partial graph for the node; determining a list of the nodes reachable in one hop from the node; 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 two hops from the node, and reference counts as to how many paths exist between the node and each of the nodes reachable in two hops from the node; 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 maintaining an index of which partial graphs are stored on which data servers. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification