Property Graph Partitioning for Parallel Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Property graph ingestion is slow due to its storage model, and attempting to hasten this process through multiple threads can result in an inconsistent graph that fails to meet constraint requirements.

Innovation Solution

The method involves partitioning and parallel loading of property graphs with constraints using polynomial time partition algorithms, where the graph is divided into sub-graphs and allocated to multiple threads to ensure consistency and adherence to constraints during the loading process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads are used to hasten property graph ingestion, then ingestion speed is improved, but graph consistency and constraint fulfillment deteriorate

Engineering Contradiction:
Improveingestion speedVSAvoidgraph consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The property graph is divided into multiple partitions, each handled by a separate thread. This segmentation allows parallel processing while maintaining consistency within each partition, resolving the contradiction between speed and consistency by isolating concurrent access to discrete graph segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A constraint satisfaction mechanism acts as an intermediary between parallel thread operations and the final graph state. This intermediary ensures that constraint violations are detected and resolved, maintaining graph consistency even during parallel ingestion operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple threads are used to hasten property graph ingestion, then ingestion speed is improved, but constraint fulfillment deteriorates

Engineering Contradiction:
Improveingestion speedVSAvoidconstraint fulfillment
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system implements feedback mechanisms where constraint violations detected during parallel ingestion trigger corrective actions. This feedback loop ensures that constraint fulfillment is maintained by detecting and resolving violations while allowing parallel processing to continue.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Constraint checking and partitioning are performed as preliminary actions before the main parallel ingestion process. By pre-establishing valid partitions and constraint rules, the system enables faster parallel loading while ensuring constraints are inherently satisfied, avoiding the need for corrective actions during ingestion.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If polynomial time partition algorithms are used to partition the graph, then parallel loading efficiency is improved, but processing complexity increases

Engineering Contradiction:
Improveparallel loading efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system changes the parameter of partitioning complexity by selecting polynomial time algorithms instead of optimal but computationally expensive algorithms. This parameter change achieves a practical balance where partitions are sufficiently optimized for parallel loading while keeping the preprocessing complexity manageable.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11977580B2Partitioning and parallel loading of property graphs with constraints
Publication Date: 2024.05.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11977580B2 patent drawing
  • US11977580B2 patent drawing
  • US11977580B2 patent drawing

AI summary

Methods, systems, and computer program products for partitioning and parallel loading of property graphs with constraints are provided herein. A computer-implemented method includes obtaining graph-related input data and corresponding constraint data, wherein the graph-related input data and corresponding constraint data are at least one of user-defined and input data model-based; generating at least one in-memory graph based at least in part on processing at least a portion of the obtained graph-related input data; partitioning the at least one in-memory graph into two or more sub-graphs by processing the at least one in-memory graph using one or more polynomial time partition algorithms; and generating at least one property graph by allocating, at least a portion of the two or more partitioned sub-graphs which satisfy the obtained constraint data, to two or more threads that run in parallel.