Graph Database Cache Distribution for Multi-Tenant Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Applications face difficulties in optimizing data retrieval and storage in relational and key-value databases due to the lack of access to the underlying relational model, leading to suboptimal query performance and degraded user experience, especially when handling complex relationships.

Innovation Solution

Implementing a graph database with index-free adjacency that stores data as nodes, edges, and predicates, allowing for efficient storage and retrieval of data without requiring knowledge of the relational model, and using a cache distribution system to ensure timely and accurate data availability across multiple instances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a relational database is used to store data, then data can be organized and stored in tables with rows and columns, but applications cannot access the underlying relational model to optimize queries for complex relationships

Engineering Contradiction:
Improvedata storage organizationVSAvoidquery performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces a graph database layer as an intermediary between the relational database and applications. This graph database stores data as nodes and edges, providing direct access to relationships without requiring applications to understand the underlying relational model. The graph database acts as a mediator that translates application queries into optimized relational queries, resolving the contradiction between ease of data organization and query performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If an object-relational mapper is used to bridge applications and relational databases, then applications can access the relational model, but it is difficult to generate and maintain especially for large real-time applications

Engineering Contradiction:
Improveapplication access to relational modelVSAvoidobject-relational mapper complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent creates a simplified copy of the data model in the form of a graph database. Instead of mapping application objects to relational tables through complex object-relational mappers, the graph database provides a direct representation of data as nodes and edges that mirrors the application's object-oriented perspective. This copying approach eliminates the need for complex mapping infrastructure while maintaining access to the relational model's optimization capabilities.

Inventive Principle:
Principle #26Copying

3Ease of operation

If a key-value store is used instead of a relational database, then applications can access data as objects in memory without knowing the relational model, but it becomes difficult to optimize for extracting complicated relationships

Engineering Contradiction:
Improveapplication data accessVSAvoidrelationship extraction performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent changes the fundamental parameter of data organization from key-value pairs to graph structures with nodes and edges. This parameter change enables the system to maintain the simplicity of object-oriented data access while providing built-in support for complex relationship queries. The graph structure allows direct navigation through relationships without requiring multiple sequential queries, resolving the contradiction between ease of operation and relationship extraction performance.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10445321B2Multi-tenant distribution of graph database caches
Publication Date: 2019.10.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10445321B2 patent drawing
  • US10445321B2 patent drawing
  • US10445321B2 patent drawing

AI summary

The disclosed embodiments provide a system for performing multi-tenancy distribution of a graph database cache. During operation, the system obtains a cache of a set of records in a graph database storing a graph, wherein the graph includes a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. Next, the system identifies one or more records in the cache that fail a validation test. The system then merges a remainder of the cache with online updates to the subset of records to produce a merged version of the cache. Finally, the system distributes the merged version to one or more instances of the graph database for use in processing queries of the graph database.