Shared Index Cache for Multi-Tenant Nonrelational Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Nonrelational databases face challenges in maintaining low latency as data scales out due to varying indexing mechanisms and caching algorithms, leading to duplication of indexes in cache memory, especially in multi-tenant environments, which affects search efficiency and data retrieval speed.

Innovation Solution

Implementing a shared LRU cache system that captures patterns from multiple index services, combines cache items, and adjusts based on eviction policies to optimize index storage and retrieval, allowing for shared query results and documents to be accessed directly from memory instead of persistence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If separate index caches are maintained for each tenant, then data retrieval speed is optimized for individual tenants, but cache memory duplication occurs and search efficiency decreases

Engineering Contradiction:
Improvedata retrieval speedVSAvoidsearch efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent merges separate index caches into a single shared index cache that serves multiple tenants. Instead of maintaining separate caches for each tenant, the system combines them into one unified cache structure, eliminating duplication and improving overall search efficiency while maintaining fast data retrieval through optimized cache management.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared index cache is designed to serve multiple tenants simultaneously with a single data structure. The cache management system implements multi-functionality by handling queries from different tenants through a unified cache, enabling one cache structure to perform the work of multiple separate caches while reducing resource consumption.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If indexes are cached for each tenant separately, then query results are optimized for individual access patterns, but cache memory is duplicated across tenants

Engineering Contradiction:
Improvequery result optimizationVSAvoidcache memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines separate tenant-specific index caches into a single shared index cache. This merging eliminates redundant cache copies across tenants, reducing total cache memory usage while maintaining optimized query results through a unified cache management system that serves multiple tenants from one shared structure.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If multiple indexing mechanisms are used to handle diverse data, then data flexibility is improved, but cache management complexity increases

Engineering Contradiction:
Improvedata flexibilityVSAvoidcache management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The shared index cache implements a universal data structure that can handle multiple indexing mechanisms and diverse data types through a single unified approach. Rather than maintaining separate cache management systems for different indexing mechanisms, the patent uses one versatile cache structure that adapts to various data types and indexing methods, reducing management complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12008041B2Shared cache for multiple index services in nonrelational databases
Publication Date: 2024.06.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12008041B2 patent drawing
  • US12008041B2 patent drawing
  • US12008041B2 patent drawing

AI summary

A computer-implemented method includes receiving, by a processing unit, from a first tenant, a query to retrieve data from a nonrelational database system. The method further includes determining, by the processing unit, that an index associated with the query is cached in a shared index cache, wherein the shared index cache stores indexes for a plurality of tenants. The method further includes retrieving, by the processing unit, a result of the query based on the index in the shared index cache. The method further includes outputting, by the processing unit, the result of the query.