Distributed graph databases that facilitate streaming data insertion and low latency graph queries
First Claim
Patent Images
1. A computer-implemented method to provide low latency graph queries of a distributed graph database having a plurality of shards, comprising:
- receiving, by a query manager, one or more graph queries requesting edge addition to the distributed graph database from one or more clients; and
performing, by one or more threads of execution managed by the query manager, one or more edge additions in response to the one or more graph queries;
wherein a thread of execution performs an edge addition by;
sending, by the thread, a first asynchronous request to a first node containing a first shard, the first asynchronous request identifying a source vertex, an edge label (LID), and a target vertex, thereby causing the first node to add to the first shard the target vertex and to generate a target vertex identifier (VIDT) corresponding to the target vertex;
sending, by the first node, a second asynchronous request to a second node containing a second shard, the second asynchronous request identifying the source vertex, the LID, and the VIDT, thereby causing the second node to add to the second shard the source vertex, to generate a source vertex identifier (VIDS) corresponding to the source vertex, to add to the second shard an outgoing edge labelled with the LID and associated with the source vertex, and to generate an edge identifier (EID) corresponding to the outgoing edge; and
sending, by the second node, the VIDS, the LID, the EID, and the VIDT to the first node, thereby causing the first node to add to the first shard an incoming edge associated with the target vertex and having as attributes the LID and the EID.
1 Assignment
0 Petitions
Accused Products
Abstract
A novel distributed graph database is provided that is designed for efficient graph data storage and processing on modern computing architectures. In particular a single node graph database and a runtime & communication layer allows for composing a distributed graph database from multiple single node instances.
-
Citations
18 Claims
-
1. A computer-implemented method to provide low latency graph queries of a distributed graph database having a plurality of shards, comprising:
-
receiving, by a query manager, one or more graph queries requesting edge addition to the distributed graph database from one or more clients; and performing, by one or more threads of execution managed by the query manager, one or more edge additions in response to the one or more graph queries; wherein a thread of execution performs an edge addition by; sending, by the thread, a first asynchronous request to a first node containing a first shard, the first asynchronous request identifying a source vertex, an edge label (LID), and a target vertex, thereby causing the first node to add to the first shard the target vertex and to generate a target vertex identifier (VIDT) corresponding to the target vertex; sending, by the first node, a second asynchronous request to a second node containing a second shard, the second asynchronous request identifying the source vertex, the LID, and the VIDT, thereby causing the second node to add to the second shard the source vertex, to generate a source vertex identifier (VIDS) corresponding to the source vertex, to add to the second shard an outgoing edge labelled with the LID and associated with the source vertex, and to generate an edge identifier (EID) corresponding to the outgoing edge; and sending, by the second node, the VIDS, the LID, the EID, and the VIDT to the first node, thereby causing the first node to add to the first shard an incoming edge associated with the target vertex and having as attributes the LID and the EID. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system that provides low latency graph queries of a distributed graph database having a plurality of shards, comprising:
-
a memory that stores computer executable instructions; and a processor that executes the computer executable instructions stored in the memory, wherein execution of the computer executable instructions causes the processor to; receive, by a query manager, one or more graph queries requesting edge addition to the distributed graph database from one or more clients; and perform, by one or more threads of execution managed by the query manager, one or more edge additions in response to the one or more graph queries; wherein a thread of execution performs an edge addition by; sending, by the thread, a first asynchronous request to a first node containing a first shard, the first asynchronous request identifying a source vertex, an edge label (LID), and a target vertex, thereby causing the first node to add to the first shard the target vertex and to generate a target vertex identifier (VIDT) corresponding to the target vertex; sending, by the first node, a second asynchronous request to a second node containing a second shard, the second asynchronous request identifying the source vertex, the LID, and the VIDT, thereby causing the second node to add to the second shard the source vertex, to generate a source vertex identifier (VIDS) corresponding to the source vertex, to add to the second shard an outgoing edge labelled with the LID and associated with the source vertex, and to generate an edge identifier (EID) corresponding to the outgoing edge; and sending, by the second node, the VIDS, the LID, the EID, and the VIDT to the first node, thereby causing the first node to add to the first shard an incoming edge associated with the target vertex and having as attributes the LID and the EID. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product to provide low latency graph queries of a distributed graph database having a plurality of shards, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing component to cause the processing component to:
-
receive, by a query manager, one or more graph queries requesting edge addition to the distributed graph database from one or more clients; and perform, by one or more threads of execution managed by the query manager, one or more edge additions in response to the one or more graph queries; wherein a thread of execution performs an edge addition by; sending, by the thread, a first asynchronous request to a first node containing a first shard, the first asynchronous request identifying a source vertex, an edge label (LID), and a target vertex, thereby causing the first node to add to the first shard the target vertex and to generate a target vertex identifier (VIDT) corresponding to the target vertex; sending, by the first node, a second asynchronous request to a second node containing a second shard, the second asynchronous request identifying the source vertex, the LID, and the VIDT, thereby causing the second node to add to the second shard the source vertex, to generate a source vertex identifier (VIDS) corresponding to the source vertex, to add to the second shard an outgoing edge labelled with the LID and associated with the source vertex, and to generate an edge identifier (EID) corresponding to the outgoing edge; and sending, by the second node, the VIDS, the LID, the EID, and the VIDT to the first node, thereby causing the first node to add to the first shard an incoming edge associated with the target vertex and having as attributes the LID and the EID. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification