Distributed Database Cache Segmentation for Search Requests

Solution Overview

Problem

In distributed database environments, cached search results can become outdated due to changes in the underlying data, leading to inefficiencies in cache re-computation and resource utilization, particularly in systems with limited computational resources.

Innovation Solution

The method involves separating data records into stable and volatile components, caching stable data pieces, and retrieving volatile data pieces from the live data source as needed, allowing for efficient updating of cached data by focusing on slower-changing stable data and faster-changing volatile data, thereby reducing unnecessary re-computation and ensuring valid responses to search requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If cached results are maintained to shorten response times, then response time is improved, but cache validity deteriorates due to outdated data

Engineering Contradiction:
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent segments data records into stable data pieces and volatile data pieces based on their change rates. Stable data pieces are cached to reduce response time, while volatile data pieces are retrieved from the live data source. This segmentation resolves the contradiction by allowing the cache to store only the portions of data that do not change frequently, thus maintaining cache validity while still benefiting from fast cached access for stable data.

Inventive Principle:
Principle #1Segmentation

2Reliability

If cache re-computation is performed frequently to maintain validity, then cache validity is improved, but computational efficiency deteriorates due to resource waste

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting data into stable and volatile components, the system avoids re-computing the entire cache. Only volatile data pieces need to be updated by retrieving them from the live data source, while stable data pieces remain in the cache without re-computation. This significantly improves computational efficiency while maintaining cache validity for the stable portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of performing full cache re-computation, the system performs partial updates by retrieving only the volatile data pieces from the live data source and combining them with the cached stable data pieces. This partial action approach maintains cache validity without the excessive computational cost of complete re-computation.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all cached results are re-computed to ensure validity, then cache validity is improved, but resource utilization deteriorates due to unnecessary computation

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent divides data records into stable and volatile data pieces. Only volatile data pieces are retrieved from the live data source to update the cache, while stable data pieces are reused from the cache without re-computation. This segmentation ensures cache validity for volatile data while avoiding unnecessary computation and energy loss for stable data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the approach from uniform cache re-computation to selective updates based on the volatility parameter of data pieces. By identifying and updating only those data pieces with high volatility (frequent changes), the system maintains cache validity while minimizing computational resource consumption.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP4009188A1Processing search requests
Publication Date: 2022.06.08
  • EP4009188A1 patent drawingFigure 1
  • EP4009188A1 patent drawingFigure 2
  • EP4009188A1 patent drawingFigure 3

AI summary

Search requests are processed in a distributed database environment which comprises a frontend module, one or more clients, a cache, a live data source and multiple data records. Each data record comprises at least one stable data piece and at least one volatile data piece. The stable data pieces changes at a first change rate and the volatile data pieces changes at a second change rate, whereas the second change rate is higher than the first change rate. The cache stores the stable data pieces of the multiple data records. The front-end module receives a search request from a client and retrieves from the cache a set of data records. The stable data pieces of the set of data records correspond to search criteria indicated in the search request. The front-end module retrieves, from the live data source for the retrieved set of data records, current volatile data pieces. The volatile data pieces correspond to the stable data pieces of the retrieved set of data records. The frontend-module generates a completed set of data records by combining the stable data pieces of the data records and the current volatile data pieces and returns the completed set of data records to the requesting client.