Graph Database Tuple Storage for Query Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Applications face difficulties in efficiently storing and retrieving data from relational databases and key-value stores due to the lack of knowledge about the underlying relational model, leading to suboptimal query performance and user experience degradation.
Innovation Solution
Implementing a graph database that uses index-free adjacency with nodes, edges, and predicates to represent data, allowing for efficient storage and retrieval of complex relationships without requiring knowledge of a relational model, and transforming between tuple and edge set representations for query processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a relational database is used to store data, then data can be organized into tables with rows and columns, but extracting complicated relationships requires performing multiple queries and joining results, which degrades performance
Solution Approach 1:
The patent segments the graph data model into three distinct components: nodes (representing entities), edges (representing relationships), and predicates (representing properties). This segmentation allows each component to be optimized independently for its specific function, with nodes storing entity data, edges storing relationship data with direct references to connected nodes, and predicates storing property data, thereby improving query performance for complex relationships
Solution Approach 2:
The patent transitions from the traditional two-dimensional table structure of relational databases to a multi-dimensional graph structure where nodes, edges, and predicates exist in different dimensional spaces. Nodes represent entities in one dimension, edges represent relationships in another dimension with direct references, and predicates represent properties in a third dimension, allowing complex relationships to be queried efficiently without multiple joins
2Productivity
If an object-relational mapper is implemented to help applications understand the relational model, then application performance improves, but the mapper becomes difficult to generate and maintain for large real-time applications
Solution Approach 1:
The graph database system provides self-service capabilities by automatically managing the data model representation and query optimization without requiring external mappers or translation layers. The system inherently understands the graph structure through its native node-edge-predicate model, eliminating the need for object-relational mappers and their associated maintenance burden
3Ease of operation
If a key-value store is used to allow applications to access data as objects with pointers, then data access becomes simpler, but the absence of a relational model makes it difficult to optimize and extract complicated relationships
Solution Approach 1:
The patent merges the simplicity of key-value access with the power of graph relationships by integrating direct pointer-like access to nodes with explicit edge representations that store relationship data. The edge records contain direct references to connected nodes, allowing both simple key-value style access and efficient relationship extraction to coexist in a single unified data structure
Data Source
AI summary
During operation, a system for processing queries of a graph database executes a set of processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system obtains, from the query, a compound comprising a compound type and a set of identity-giving nodes. Next, the system uses the compound to access a tuple for storage in a log-based representation of the graph database, wherein the tuple includes the compound type and the identity-giving nodes. The system then uses the tuple to generate a result of the query and provides the result in a response to the query.


