Graph Database Branch Threading for Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Applications face difficulties in optimizing data storage and retrieval in relational databases due to the lack of knowledge about the underlying relational model, leading to suboptimal query performance and degraded user experience, especially when dealing with complex relationships.

Innovation Solution

A graph database is employed, utilizing a tree-based structure with a base version and branched versions to efficiently store and retrieve data, allowing for optimal query performance without requiring knowledge of the relational model, through the use of (subject, predicate, object) triples and an index for efficient edge lookup.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a relational database is used with complex relationships, then data can be organized in tables with rows and columns, but query performance degrades due to the need to perform multiple queries and joins

Engineering Contradiction:
ImproveAbility to represent complex relationshipsVSAvoidQuery performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a graph database that copies and transforms data from the relational database into a graph structure with nodes and edges. This copy allows applications to query complex relationships efficiently using graph traversal algorithms, while the original relational database remains unchanged. The graph database serves as an optimized view specifically for relationship queries.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the fundamental parameters of data organization from tabular (relational) to graphical (nodes and edges). By representing entities as nodes and relationships as edges, the system enables direct traversal of complex relationships without requiring multiple SQL joins, thus improving query performance for relationship-intensive applications.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If data is stored in a key-value store to allow application-friendly access, then applications can access data as objects in memory, but it becomes difficult to optimize and extract complicated relationships

Engineering Contradiction:
ImproveApplication data accessVSAvoidQuery optimization capability
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the data storage system into two distinct components: a key-value store for application-friendly data access and a graph database for optimized relationship queries. Each component serves its specific purpose, allowing the system to maintain ease of operation while also enabling query optimization for complex relationships.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The graph database acts as an intermediary between the key-value store and applications that need to query complex relationships. It receives data from the key-value store, organizes it into an optimized graph structure, and provides efficient query capabilities for relationship-intensive operations without requiring applications to directly manage the underlying data structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If multiple versions of graph data are maintained for testing and validation, then changes can be validated without affecting source data, but storage and memory usage increases

Engineering Contradiction:
ImproveData integrity during testingVSAvoidStorage and memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements a versioning system where graph versions are nested within a tree structure. Each version can contain only the changes (deltas) from its parent version rather than complete copies of the entire graph. This nested structure allows multiple versions to be maintained with minimal storage overhead, as each version reuses the parent's data and only stores the differences.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The versioning system allows temporary storage of multiple graph versions during testing and validation, with the ability to discard test versions after validation is complete. The system recovers and maintains only the necessary versions, optimizing storage usage while preserving data integrity during the testing process.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS11567995B2Branch threading in graph databases
Publication Date: 2023.01.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11567995B2 patent drawing
  • US11567995B2 patent drawing
  • US11567995B2 patent drawing

AI summary

The disclosed embodiments provide a system for processing queries of a graph database storing a graph, wherein the graph comprises a set of edges defined by a first linkage, a second linkage, and a third linkage. During operation, the system maintains the base version of an index of the graph database. Upon branching a version of the graph database from a first offset representing a virtual time in the base version of the graph database, the system creates a branched version of the index from a second offset corresponding to the virtual time in the base version of the index. The system then processes queries of the graph database based on the offsets and references from the branched version of the index to the base version of the index.