Memory Graph Query Engine with Document-Format Persistent Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graph databases face high-latency queries due to their data structure, which is difficult to manage and translate to traditional databases, leading to inefficiencies in query processing and storage.
Innovation Solution
An in-memory graph query engine with a persisted storage component that converts data to a document format for efficient storage in persistent storage, maintaining low-latency operations and synchronizing data across multiple engines using a change feed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is stored in a graph database as discrete items, then query flexibility is improved, but query latency increases and data management becomes difficult
Solution Approach 1:
The system segments the data storage into two distinct parts: an in-memory graph database for flexible queries and a persistent storage component for efficient data retrieval. The graph database stores data as discrete items for query flexibility, while the persistent storage component stores converted data in a document format for fast access, resolving the latency issue without sacrificing query flexibility.
Solution Approach 2:
The patent introduces a persistent storage component as an intermediary between the in-memory graph database and the query processing system. This intermediary component receives data from the graph database, converts it to a document format, and stores it for efficient retrieval, thereby mediating the conflict between query flexibility and query latency.
2Loss of time
If data is stored in an in-memory graph query engine, then query latency is reduced, but data persistence and availability are compromised
Solution Approach 1:
The system segments storage functionality into an in-memory component for low-latency queries and a persistent storage component for data durability. The in-memory graph database provides fast query response, while the persistent storage component ensures data persistence and availability, resolving the contradiction between query latency and data reliability.
Solution Approach 2:
The patent implements a copying mechanism where data is replicated between the in-memory graph database and the persistent storage component. The persistent storage component maintains a copy of the data in a document format, ensuring that data persists even when the in-memory database is restarted or fails, thus improving reliability without sacrificing query performance.
3Ease of operation
If graph database data structure is used, then query processing is simplified, but translation to traditional databases becomes difficult
Solution Approach 1:
The persistent storage component acts as an intermediary that translates data from the graph database format to a document format compatible with traditional databases. This intermediary layer maintains the simplicity of graph query processing while enabling seamless translation to traditional database formats, resolving the compatibility issue.
Solution Approach 2:
The system changes the data representation parameters by converting graph database data structures into document format in the persistent storage component. This parameter transformation allows the same data to be accessed both as graph structures for simple query processing and as documents for traditional database compatibility, resolving the adaptability contradiction.
4Adaptability or versatility
If data is stored in discrete items in graph database, then data structure flexibility is improved, but data management complexity increases
Solution Approach 1:
The patent segments data management into two components: the in-memory graph database that handles flexible data structures and the persistent storage component that manages data in a standardized document format. This segmentation reduces the complexity of data management by separating the flexible query-side operations from the structured storage-side operations.
Data Source
AI summary
Various examples of improving an in-memory graph query engine using a persisted storage component are provided. The method includes updating data stored in an in-memory graph query engine and, based on updating the data, converting the data to a plain text form that may be more efficiently stored in the persistent storage component. The method further includes updates to additional in-memory graph query engines from the persistent storage component such that in-memory data stored in the graph query engines is synchronized.


