Graph Extensions for Database Query Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database management systems face challenges in efficiently executing graph queries due to high memory usage, irregular access patterns, and lag in replication mechanisms, which can lead to unpredictable artifacts and performance issues.
Innovation Solution
The approach involves detecting and recording topological graph changes, applying these changes with minimal impact on DML instructions, and generating graph extensions to reduce the need for frequent regeneration of the base graph, thereby improving concurrency and speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If graph data is replicated in fast-access memory from relational tables, then query execution speed is improved, but replication lag causes unpredictable artifacts and incorrect results
Solution Approach 1:
The patent segments the graph data into two parts: the base graph stored in fast-access memory and graph extensions stored separately. This allows the base graph to remain stable while extensions capture and apply recent changes, resolving the conflict between speed and reliability by eliminating replication lag artifacts.
Solution Approach 2:
The patent performs preliminary action by pre-computing and storing graph extensions that capture changes before they propagate through the replication mechanism. This allows the system to present consistent, up-to-date graph data without waiting for replication to complete, thus maintaining both speed and correctness.
2Reliability
If each DML instruction reconstructs the graph to apply changes, then graph consistency is maintained, but DML performance deteriorates significantly
Solution Approach 1:
The patent uses copying by creating graph extensions as copies of the base graph with applied changes. Instead of reconstructing the entire base graph for each DML operation, the system copies only the necessary changes into extensions, maintaining consistency while preserving DML performance.
Solution Approach 2:
The patent changes the parameter of graph storage by introducing a separation between base graph data and extension data. This allows DML operations to modify extensions without affecting the base graph structure, maintaining consistency while improving performance.
3Reliability
If the base graph is regenerated frequently to reflect changes, then graph up-to-date status is maintained, but system performance deteriorates due to regeneration overhead
Solution Approach 1:
The patent segments graph updates into two pathways: frequent small updates to graph extensions and periodic full regenerations of the base graph. This segmentation maintains up-to-date status while avoiding the performance penalty of frequent full regenerations.
Solution Approach 2:
The patent implements periodic action by regenerating the base graph at intervals rather than continuously. Between regenerations, graph extensions accumulate changes, allowing the system to maintain up-to-date status with periodic full updates instead of continuous regeneration overhead.
4Reliability
If graph data is stored in relational tables, then data durability is ensured, but query execution suffers from irregular access patterns and high memory usage
Solution Approach 1:
The patent uses copying to create an in-memory graph extension from the relational base graph. This copy allows efficient graph queries with regular access patterns while the original relational tables remain on disk for durability, resolving the contradiction between reliability and productivity.
Data Source
AI summary
Techniques are described for applying topological graph changes and traversing the modified graph. In an implementation, a set of compile processes schedules the graph changes caused by a DML (Data Manipulation Language) statement. Based on the requested graph operation in a received query for graph, a set of graph operation processes generate extensions to the graph that capture the changes to the graph by the DML. The received graph operation(s) are then performed by traversing both the existing graph and the generated extensions.


