Graph Database Query Processing via Thread Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current query processing in graph databases is primarily sequential, limiting the ability to leverage multiprocessing hardware for parallel processing, which can lead to inefficiencies in handling large datasets and increasing latency.
Innovation Solution
A method and system that utilize multiple processors to process queries by distributing search sub-graphs across multiple threads, allowing simultaneous processing of independent sub-graphs and aggregating results to identify matches within the graph database, leveraging SIMD hardware such as GPUs for parallelization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential query processing is used, then implementation simplicity is maintained, but processing speed and productivity deteriorate
Solution Approach 1:
The patent segments the graph database into multiple partitions and distributes query processing across multiple independent threads, each handling a specific partition. This allows parallel processing of query sub-graphs while maintaining relative simplicity through modular design, resolving the contradiction between processing speed and system complexity.
Solution Approach 2:
The patent transitions from sequential single-threaded processing to multi-dimensional parallel processing by utilizing multiple CPU cores and threads simultaneously. Each thread operates independently on different data partitions, adding a temporal and spatial dimension to processing that dramatically improves productivity without proportionally increasing complexity.
2Loss of time
If parallel processing with multiple processors is implemented, then processing time is reduced, but system complexity and coordination overhead increase
Solution Approach 1:
The patent performs preliminary actions by pre-partitioning the graph database and pre-assigning partitions to specific threads before query execution. This eliminates the need for complex runtime coordination and dynamic load balancing, reducing processing time while keeping the system manageable through static assignment strategies.
Solution Approach 2:
Each processing thread independently manages its own execution context, data access, and result aggregation without requiring centralized coordination during query processing. This self-service approach minimizes inter-thread communication overhead and synchronization complexity while maximizing parallel processing efficiency.
Data Source
AI summary
A method of processing a query to a graph database using processors. The method comprises providing threads to be executed on processors, each the thread is associated with one of a plurality of unique thread identifiers, providing a graph database having a plurality of graph database nodes and a plurality of graph database edges, each the graph database edge represents a relationship between two of the plurality of graph database nodes, receiving a query tree that defines a tree comprising plurality of query nodes connected by a plurality of query tree edges, and searching at least part of the graph database for a match with the query tree, wherein the searching is executed by the processors, and wherein each processor searches one of a plurality of sub-graphs of the graph database, each the sub-graph is defined by one of the plurality of thread identifiers.


