Nova Patents
CA2974065C

Distributed cache for graph data

Abstract

A distributed caching system for storing and serving information modeled as a graph that includes nodes and edges that define associations or relationships between nodes that the edges connect in the graph.

CA2974065C, drawing sheet 1
Sheet 1 of 6

Term

Projected expiry 30 November 2031.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

18 claims: 3 independent, 15 dependent

  1. 1
    Claims 1, A system comprising:one or more first computing devices providing a persistent-storage database operative to maintain a graph data structure comprising a plurality of graph nodes and a plurality of graph edges connecting the graph nodes, a graph edge connecting two graph nodes indicating an association between the two graph nodes, each graph node being a data object corresponding to a profile associated with a social-networking system and having a unique graph-node identifier;and a plurality of second computing devices coupled to the one or more first computing devices and providing a cache layer between the persistent-storage database and a plurality of client servers, the cache layer comprising a plurality of follower cache clusters that each comprise one or more follower cache nodes, each follower cache node comprising one or more one individual computing system, each follower cache node being operative to: maintain in the follower cache node at least a portion of the graph data structure, wherein the portion of the graph data structure comprises a plurality of graph nodes and □ plurality of graph edges, and wherein a count value of an association set is maintained for each graph node, the count value being either increased or decreased in response to commands to add or delete an association with respect to the graph node, respectively;receive a query from a user of the social-networking system for associations between nodes in the portion of the graph data structure maintained in the follower cache node, wherein the user is associated with a particular profile that corresponds to a graph node in the portion of the graph data structure maintained in the follower cache node;and respond to the query for associations between nodes in the graph data structure at least in part by accessing the portion of the graph data structure maintained in the follower cache node.
  2. 6
    8. A method comprising:by one or more first computing devices, providing a persistent-storage database operative to maintain a graph data structure comprising a plurality of graph nodes and a plurality of graph edges connecting the graph nodes, a graph edge connecting two graph nodes indicating an association between the two graph nodes, each graph node being a data object corresponding to a profile associated with a social-networking system and having a unique graph-node identifier;and by a plurality of second computing devices coupled to the one or more first computing devices and providing a cache layer between the persistent-storage database and a plurality of client servers, the cache layer comprising a plurality of follower cache clusters that each comprise one or more follower cache nodes, each follower cache node comprising one or more one individual computing system, each follower cache node being operative to: maintaining in the follower cache node at least a portion of the graph data structure, wherein the portion of the graph data structure comprises a plurality of graph nodes and a plurality of graph edges, and wherein a count value of an association set is maintained for each graph node, the count value being either increased or decreased in response to commands to add or delete an association with respect to the graph node, respectively;*11540696 V2 CA 2974065 2019-01-22 receiving a query from a user the social-networking system for associations between nodes in the portion of the graph data structure maintained in the follower cache node, wherein the user is associated with a particular profile that corresponds to a graph node in the portion of the graph data structure maintained in the follower cache node;and responding to the query' for associations between nodes in the graph data structure at least in part by accessing the portion of the graph data structure maintained in the follower cache node.
  3. 13
    15. Λ plurality of non-transitory computer-readable storage media embodying software that is operative when executed to:provide a persistent-storage database operative to maintain a graph data structure comprising a plurality of graph nodes and a plurality of graph edges connecting the graph nodes, a graph edge connecting two graph nodes indicating an association between the two graph nodes, each graph node being a data object corresponding to a profile associated with a socialnetworking system and having a unique graph-node identifier;and CA 2974065 2019-01-22 provide a cache layer between the persistent-storage database and a plurality of client servers, the cache layer comprising a plurality of follower cache clusters that each comprise one or more follower cache nodes, each follower cache node comprising one or more one individual computing system, each follower cache node being operative to;maintain in the follower cache node at least a portion of the graph data structure, wherein the portion of the graph data structure comprises a plurality of graph nodes and a plurality of graph edges, and wherein a count value of an association set is maintained for each graph node, the count value being either increased or decreased in response to commands to add or delete an association with respect to the graph node, respectively;receive a query from a user of the social-networking system for associations between nodes in the portion of the graph data structure maintained in the follower cache node, wherein the user is associated with a particular profile that corresponds to a graph node in the portion of the graph data structure maintained in the follower cache node;and respond to the query for associations between nodes in the graph data structure at least in part by accessing the portion of the graph data structure maintained in the follower cache node,