IP Library › Granted Patent US 10,394,891
Granted Patent B2
US 10,394,891 · App. 15/230,054 · Granted Aug 27, 2019

Distributed graph databases that facilitate streaming data insertion and queries by efficient throughput edge addition

Inventors: Chun-Fu Chen (Elmsford, NY); Jason L. Crawford (Katonah, NY); Ching-Yung Lin (Scarsdale, NY); Jie Lu (Westchester, NY); Mark R. Nutter (Austin, TX); Toyotaro Suzumura (New York, NY); Ilie G. Tanase (Somers, NY); Danny L. Yeh (Tarrytown, NY)
Assignee: International Business Machines Corporation
G06F16/9024G06F16/24568
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,394,891
App. No.
15/230,054
Filed
Aug 5, 2016
Granted
Aug 27, 2019
Kind
B2
Art Unit
2158
USPC
707/798
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.

Claims (34)

1. A computer-implemented method for efficient throughput edge addition, comprising:

determining, by a device operatively coupled to a processor, vertex placement, based on a hash or an arbitrary placement function;

placing, by the device, outgoing edge requests into appropriate queues of a firehose; and

placing, by the device, incoming edge requests into appropriate queues of the firehose, wherein for each queue, in parallel, the device:

sends requests to add vertices for all sources in an outgoing edges set, and all targets in an incoming edges set, and wait for vertex ids of all added vertices and MAXEID from each machine, respectively.

2. The computer-implemented method of claim 1 , further comprising preparing and sending edge tuples for insertion.

3. The computer-implemented method of claim 1 , wherein an ingest process is divided into batches, and wherein the acts are executed for respective batches.

4. The computer-implemented method of claim 1 , wherein for all vertices added insert into a map (hash table) the pairing from external vertex identifier to internal vertex identifier <A,VIDA>, <B,VIDB>, <C,VIDC> and <D,VIDD>.

5. The method of claim 1 , wherein for all outgoing and incoming edges map from external ids to internal ids and edge identifiers.

6. The method of claim 5 , wherein upon receiving the ids for all vertices added the firehose will build for each queue, for all the tuples in each queue the following info: {VIDS, VIDT, LID, EID}.

7. The method of claim 5 , further comprising sending edge quads to respective machines for insertion.

8. The method of claim 7 , wherein mapping from external to internal is can be cached for use in a next iteration.

9. The method of claim 1 , further comprising preparing and sending edge tuples for insertion.

10. A system, comprising:

a memory that stores computer executable components; and

a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise:

a graph database component that:

determines vertex placement, based on a hash or an arbitrary placement function;

places outgoing edge requests into appropriate queues of a firehose; and

places incoming edge requests into appropriate queues of the firehose, wherein for each queue, in parallel, sends requests to add vertices for all sources in an outgoing edges set, and all targets in an incoming edges set, and waits for vertex ids of all added vertices and MAXEID from each machine, respectively.

11. The system of claim 10 , wherein an ingest process is divided into batches, and wherein the operations are executed for respective batches.

12. The system of claim 10 , wherein for all vertices added insert into a hash table the pairing from external vertex identifier to internal vertex identifier <A,VIDA>, <B,VIDB>, <C,VIDC> and <D,VIDD>.

13. The system of claim 10 , wherein for all outgoing and incoming edges map from external ids to internal ids and edge identifiers.

14. The system of claim 10 , wherein upon receiving the ids for all vertices added the firehose will build for each queue, for all the tuples in each queue the following info: {VIDS, VIDT, LID, EID}.

15. A computer program product for efficient throughput edge addition, 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:

determine vertex placement, based on a hash or an arbitrary placement function;

place outgoing edge requests into appropriate queues of a firehose; and

place incoming edge requests into appropriate queues of the firehose, wherein for each queue, in parallel, the processing component is caused to:

send requests to add vertices for all sources in an outgoing edges set, and all targets in an incoming edges set, and wait for vertex ids of all added vertices and MAXEID from each machine, respectively.

16. The computer program product of claim 15 , wherein the program instructions are further executable by the processing component to cause the processing component to prepare and send edge tuples for insertion.

17. The computer program product of claim 15 , wherein the program instructions are further executable by the processing component to cause the processing component to divide an ingest process into batches.

18. The computer program product of claim 15 , wherein the program instructions are further executable by the processing component to cause the processing component for all vertices added to insert into a map the pairing from external vertex identifier to internal vertex identifier <A,VIDA>, <B,VIDB>, <C,VIDC> and <D,VIDD>.

19. The computer program product of claim 15 , wherein the program instructions are further executable by the processing component to cause the processing component for all outgoing and incoming edges map from external ids to internal ids and edge identifiers.

20. The computer program product of claim 19 , wherein upon receiving the ids for all vertices added, the firehose builds for each queue, for all the tuples in each queue the following info: {VIDS, VIDT, LID, EID}.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2016
From: CHEN, CHUN-FU; CRAWFORD, JASON L.; LIN, CHING-YUNG; LU, JIE; NUTTER, MARK R.; SUZUMURA, TOYOTARO; TANASE, ILIE G.; YEH, DANNY L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039357/0921 →
Continuity (1)
Related Publication 20180039710A1 · Feb 8, 2018
Cited By (2)
US 12,380,164 US 12,406,006