Distributed Graph Query Engine Ghost Vertex Replication
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


