IP Library Granted Patent US 10,061,799
Granted Patent B2
US 10,061,799 · App. 15/264,649 · Granted Aug 28, 2018

Efficiently committing large transactions in a graph database

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,061,799
App. No.
15/264,649
Granted
Aug 28, 2018
Kind
B2
Abstract

A computer-implemented method includes receiving a transaction, where the transaction includes a plurality of operations and is applicable to a graph database. The transaction is represented by a transaction graph, which is a dependency graph representing dependencies among the plurality of operations of the transaction. The transaction graph is partitioned, by a computer processor, into two or more transaction subgraphs. Each of the two or more transaction subgraphs includes two or more operations of the transaction, and each of the two or more transaction subgraphs is a dependency graph representing dependencies among the two or more operations of the transaction subgraph. The two or more transaction subgraphs are independent of one another. The two or more transaction subgraphs are applied to the graph database in parallel, where applying each transaction subgraph to the graph database includes applying the two or more operations of the transaction subgraph to the graph database.

Claims (53)

1. A computer-implemented method, comprising:

receiving a transaction comprising a plurality of operations, the transaction applicable to a graph database;

representing the transaction by a transaction graph, the transaction graph being a dependency graph representing dependencies among the plurality of operations of the transaction;

partitioning the transaction graph into two or more transaction subgraphs, each of the two or more transaction subgraphs comprising a respective two or more operations of the transaction, each of the two or more transaction subgraphs being a dependency graph representing dependencies among the respective two or more operations of the transaction subgraph, wherein the partitioning the transaction graph into the two or more transaction subgraphs comprises:

partitioning the transaction graph into two or more intermediate transaction subgraphs; and

extracting from the two or more intermediate transaction subgraphs two or more residual vertices representing one or more dependencies between the two or more intermediate transaction subgraphs;

wherein the two or more transaction subgraphs are independent of one another; and

executing the transaction on the graph database, wherein the executing the transaction comprises:

applying the two or more transaction subgraphs to the graph database in parallel, wherein applying each transaction subgraph to the graph database comprises applying the two or more operations of the transaction subgraph to the graph database;

inserting each extracted residual vertex into a residual subgraph; and

synchronously applying the residual subgraph to the graph database.

2. The computer-implemented method of claim 1 , wherein the partitioning the transaction graph into two or more intermediate transaction subgraphs comprises applying a balanced partitioning algorithm to the transaction graph.

3. The computer-implemented method of claim 2 , wherein the applying the balanced partitioning algorithm comprises executing one or more normalized cuts on the transaction graph.

4. The computer-implemented method of claim 1 , further comprising:

determining that the transaction exceeds a threshold size; and

performing the partitioning the transaction graph into the two or more transaction subgraphs responsive to the transaction exceeding the threshold size.

5. The computer-implemented method of claim 1 , wherein the graph database represents a social network.

6. A system comprising:

a memory having computer readable instructions; and

one or more processors for executing the computer readable instructions, the computer readable instructions comprising:

receiving a transaction comprising a plurality of operations, the transaction applicable to a graph database;

representing the transaction by a transaction graph, the transaction graph being a dependency graph representing dependencies among the plurality of operations of the transaction;

partitioning the transaction graph into two or more transaction subgraphs, each of the two or more transaction subgraphs comprising two or more operations of the transaction, each of the two or more transaction subgraphs being a dependency graph representing dependencies among the two or more operations of the transaction subgraph, wherein the partitioning the transaction graph into the two or more transaction subgraphs comprises:

partitioning the transaction graph into two or more intermediate transaction subgraphs; and

extracting from the two or more intermediate transaction subgraphs two or more residual vertices representing one or more dependencies between the two or more intermediate transaction subgraphs;

wherein the two or more transaction subgraphs are independent of one another; and

executing the transaction on the graph database, wherein the executing the transaction comprises:

applying the two or more transaction subgraphs to the graph database in parallel, wherein applying each transaction subgraph to the graph database comprises applying the two or more operations of the transaction subgraph to the graph database;

inserting each extracted residual vertex into a residual subgraph; and

synchronously applying the residual subgraph to the graph database.

7. The system of claim 6 , wherein the partitioning the transaction graph into two or more intermediate transaction subgraphs comprises applying a balanced partitioning algorithm to the transaction graph.

8. The system of claim 7 , wherein the applying the balanced partitioning algorithm comprises executing one or more normalized cuts on the transaction graph.

9. The system of claim 6 , the computer readable instructions further comprising:

determining that the transaction exceeds a threshold size; and

performing the partitioning the transaction graph into the two or more transaction subgraphs responsive to the transaction exceeding the threshold size.

10. The system of claim 6 , wherein the graph database represents a social network.

11. A computer program product for applying a transaction to a graph database, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:

receiving a transaction comprising a plurality of operations, the transaction applicable to a graph database;

representing the transaction by a transaction graph, the transaction graph being a dependency graph representing dependencies among the plurality of operations of the transaction;

partitioning the transaction graph into two or more transaction subgraphs, each of the two or more transaction subgraphs comprising two or more operations of the transaction, each of the two or more transaction subgraphs being a dependency graph representing dependencies among the two or more operations of the transaction subgraph, wherein the partitioning the transaction graph into the two or more transaction subgraphs comprises:

partitioning the transaction graph into two or more intermediate transaction subgraphs;

extracting from the two or more intermediate transaction subgraphs two or more residual vertices representing one or more dependencies between the two or more intermediate transaction subgraphs;

wherein the two or more transaction subgraphs are independent of one another; and

inserting each extracted residual vertex into a residual subgraph; and

executing the transaction on the graph database, wherein the executing the transaction comprises:

applying the two or more transaction subgraphs to the graph database in parallel, wherein applying each transaction subgraph to the graph database comprises applying the two or more operations of the transaction subgraph to the graph database; and

synchronously applying the residual subgraph to the graph database.

12. The computer program product of claim 11 , wherein the partitioning the transaction graph into two or more intermediate transaction subgraphs comprises applying a balanced partitioning algorithm to the transaction graph.

13. The computer program product of claim 12 , wherein the applying the balanced partitioning algorithm comprises executing one or more normalized cuts on the transaction graph.

14. The computer program product of claim 11 , wherein the graph database represents a social network.

15. The computer program product of claim 11 , the method further comprising:

determining that the transaction exceeds a threshold size; and

performing the partitioning the transaction graph into the two or more transaction subgraphs responsive to the transaction exceeding the threshold size.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2016
From: LEVIN, ROY; ROITMAN, HAGGAI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039731/0847 →