Graph Database Tuple Storage for Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata organizationVSAvoidquery performance
Core Design Contradiction:
Ease of operationVSProductivity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improveapplication performanceVSAvoidmapper maintenance complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvedata accessVSAvoidrelationship extraction efficiency
Core Design Contradiction:
Ease of operationVSProductivity

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

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10671671B2Supporting tuples in log-based representations of graph databases
Publication Date: 2020.06.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10671671B2 patent drawing
  • US10671671B2 patent drawing
  • US10671671B2 patent drawing

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.