Caching Subgraphs to Reduce Graph Query Execution Cost

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As the complexity and size of graph databases increase, the cost of traversing the entire subgraph for each query becomes prohibitively large, leading to inefficiencies in query execution and user experience.

Innovation Solution

Caching subgraphs after a graph query is performed, allowing subsequent queries to identify and integrate cached subgraphs, thereby reducing the need to traverse the entire graph and improving computational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the entire subgraph is traversed for every query, then complete query results are obtained, but query execution cost becomes prohibitively large

Engineering Contradiction:
Improvequery result completenessVSAvoidquery execution cost
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by caching subgraph results from previous queries before they are needed again. When a query is executed, the system first checks if the result is already cached, and if so, retrieves it directly without re-traversing the graph. This prepares results in advance for future use, significantly reducing query execution cost while maintaining complete results.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of subgraph results and stores them in a cache structure. Instead of traversing the original graph database for every query, the system uses cached copies of subgraphs that have been previously computed. These copies contain the complete query results but can be retrieved much faster, resolving the contradiction between result completeness and execution cost.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If graph database size and complexity increase, then more data can be queried, but traversal cost increases prohibitively

Engineering Contradiction:
Improvedata volumeVSAvoidtraversal cost
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the large graph database into smaller subgraphs that can be cached independently. Instead of caching or traversing the entire large graph, the system divides it into manageable subgraph portions based on query patterns. Each subgraph can be cached separately, allowing the system to handle large data volumes while reducing the traversal cost for any individual query to only the relevant subgraph portion.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If query expansion levels are increased, then more comprehensive results are obtained, but execution time and cost increase

Engineering Contradiction:
Improvequery result comprehensivenessVSAvoidquery execution time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and caching subgraphs at multiple expansion levels. When comprehensive queries with high expansion levels are executed, the system retrieves pre-computed cached subgraphs instead of performing deep graph traversals in real-time. This maintains comprehensive query results while dramatically reducing execution time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3555769B1Caching of subgraphs and integration of cached subgraphs into graph query results
Publication Date: 2022.12.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3555769B1 patent drawingFigure 1
  • EP3555769B1 patent drawingFigure 2
  • EP3555769B1 patent drawingFigure 3

AI summary

Systems, methods, and computer readable devices embodying instructions are provided herein for reducing latencies and/or improving computational efficiency when traversing data stored in a relational graph by caching subgraphs and enabling the utilization thereof. More specifically, after a user performs a graph query, the resulting subgraphs of the graph query are cached in a reusable form. Subsequent graph queries are able to identify cached subgraphs based on the graph query. Further, the subsequent graph query is operable to integrate the cached subgraphs as part of the result of subsequent graph query, which may include a portion or the entire result of the subsequent graph query being composed from cached subgraphs, thereby improving the computational efficiency and performance of querying relational graphs, reducing the query execution cost required to traverse the relational graphs, and improving the functionality of the computing devices hosting the relational graphs and running the queries.