Distributed Graph Query Engine Ghost Vertex Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed graph processing systems face inefficiencies in handling large graphs due to synchronization overhead and memory pressure, particularly when performing neighbor matching and data partitioning, which results in suboptimal performance and scalability.

Innovation Solution

A distributed graph querying engine that uses static replication of high-degree vertices across multiple computers, allowing asynchronous execution of queries and reducing network communication by using 'ghost vertices' for local access, thereby optimizing memory usage and communication efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If graph data is partitioned across multiple machines using conventional methods, then the system can process large graphs, but synchronization overhead and memory pressure increase, reducing performance and scalability

Engineering Contradiction:
Improvegraph data capacityVSAvoidquery processing performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system segments the graph data by partitioning vertices and edges across multiple machines, with each machine handling a specific partition. High-degree vertices are identified and replicated to multiple partitions to reduce cross-partition edges, enabling parallel processing while minimizing synchronization overhead between machines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system optimizes each partition locally by identifying high-degree vertices within that partition and replicating them to adjacent partitions. This local optimization reduces the number of remote edges that require cross-machine communication, thereby improving query performance while maintaining distributed processing capability.

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If neighbor matching is performed using relational join operators in a distributed system, then graph queries can be executed, but the number of distributed join stages increases, causing synchronization overhead and memory pressure

Engineering Contradiction:
Improvequery execution capabilityVSAvoidnumber of join stages
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system extracts the neighbor matching operation from the conventional relational join framework and implements it as a specialized distributed graph operation. By directly traversing edges from source vertices to neighbor vertices across partitions, the system eliminates multiple intermediate join stages and their associated synchronization overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of using relational joins that require multiple stages of merging and synchronization, the system inverts the approach by directly performing graph traversal operations across partitions. This inversion allows neighbor matching to be performed in fewer steps by leveraging the inherent graph structure rather than forcing it into a relational framework.

Inventive Principle:
Principle #13The other way round (Inversion)

3Loss of energy

If graph data is partitioned to minimize crossing edges, then communication between machines is reduced, but the partitioning problem becomes NP-hard with no practical algorithmic solutions

Engineering Contradiction:
Improvenetwork communication overheadVSAvoidpartitioning algorithm complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system performs preliminary identification of high-degree vertices within each partition before executing the main query processing. This preliminary action allows the system to proactively replicate these vertices to adjacent partitions, reducing the number of cross-partition edges before queries are executed, thereby minimizing communication overhead without requiring complex global optimization algorithms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each partition independently identifies its own high-degree vertices and performs local replication to adjacent partitions. This self-service approach eliminates the need for complex centralized partitioning algorithms, as each partition autonomously optimizes its own structure to minimize outgoing edges, achieving good partitioning results through simple local rules.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10990595B2Fast distributed graph query engine
Publication Date: 2021.04.27 ORACLE INT CORP
  • US10990595B2 patent drawing
  • US10990595B2 patent drawing
  • US10990595B2 patent drawing

AI summary

Techniques are described herein for asynchronous execution of queries on statically replicated graph data. In an embodiment, a graph is partitioned among a plurality of computers executing the graph querying engine. One or more high-degree vertices of the graph are each replicated in each graph partition. The partitions, including the replicated high-degree vertices, are loaded in memory of the plurality of computers. To execute a query, a query plan is generated based on the query. The query plan specifies a plurality of operators and an order for the plurality of operators. The order is such that if an operator requires data generated by another operator, then the other operator is ordered before the operator in the query plan. Replicated copies of a vertex is visited if matches made by subsequent operator(s) are limited by data unique to the replicated vertices.