Cache Management for Search Optimization via Range Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional search optimization methods are inefficient due to slow access times in slower storage tiers, particularly when searching for data values that are not in the fastest storage tier, and most caching strategies fail to optimize for search misses.

Innovation Solution

The method involves partitioning a data collection into cached and uncached range partitions, copying a subset into a faster storage tier cache, and determining if a target range partition is cached or uncached to efficiently search for data values, reducing the need for disk accesses and improving search speed for both hits and misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the entire collection of data values is stored in the fastest storage tier, then search speed is improved, but storage capacity is insufficient and cost increases

Engineering Contradiction:
Improvesearch speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the data collection into multiple partitions and selectively caches only certain partitions in the fast storage tier. This allows the system to maintain high search speed for frequently accessed partitions while storing the complete dataset in slower, more capacious storage, thereby resolving the contradiction between search speed and storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by differentiating between cached and uncached partitions, giving different access characteristics to different portions of the data. Frequently accessed or critical partitions are placed in fast storage with high-speed access properties, while less critical data remains in slower storage, optimizing the overall system performance without requiring all data to be in fast storage.

Inventive Principle:
Principle #3Local quality

2Productivity

If conventional caching strategies are used, then search hits are optimized, but search misses are not optimized and require slow disk accesses

Engineering Contradiction:
Improvesearch hit efficiencyVSAvoidsearch miss time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the data space into multiple partitions and maintains cache status information for each partition. When a search miss occurs, the system can quickly determine which partition contains the target value and selectively access only that partition from disk, rather than searching the entire dataset. This segmentation approach significantly reduces search miss time while maintaining efficient search hit performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-calculating and storing partition boundary information and cache status metadata. This preliminary organization allows the system to quickly determine whether a search target resides in a cached or uncached partition without performing a full search, thereby optimizing both search hits and search misses.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If the collection is stored in slower storage tiers, then storage capacity is sufficient and cost is reduced, but search speed deteriorates

Engineering Contradiction:
Improvestorage capacityVSAvoidsearch speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent extracts frequently accessed or critical data partitions from the main storage and places them in a separate cache in fast storage. This extraction allows the majority of data to remain in cost-effective slow storage while maintaining high search speed for the extracted portions, thereby achieving an optimal balance between storage capacity and search speed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a cache as an intermediary layer between the slow storage and the processor. This intermediary selectively holds copies of certain data partitions, mediating between the large-capacity slow storage and the high-speed processor, thereby improving search speed without requiring all data to be moved to fast storage.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If traditional index paging buffer pool strategies are used, then page-organized indexes are optimized, but non-page-organized indexes cannot be effectively represented

Engineering Contradiction:
Improveindex organization compatibilityVSAvoidsearch efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a universal caching framework that can handle both page-organized and non-page-organized indexes. By using partition-based caching with flexible metadata structures, the system can adapt to different index organizations and access patterns, making the caching strategy universally applicable while maintaining high search efficiency for various index types.

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

Data Source

PatentUS11836090B2Cache management for search optimization
Publication Date: 2023.12.05 KINAXIS INC
  • US11836090B2 patent drawing
  • US11836090B2 patent drawing
  • US11836090B2 patent drawing

AI summary

A method to store a data value onto a cache of a storage hierarchy. A range of a collection of values that resides on a first tier of the hierarchy is initialized. The range is partitioned into disjointed range partitions; a first subset of which is designated as cached; a second subset is designated as uncached. The collection is partitioned into a subset of uncached data and cached data and placed into respective partitions. The range partition to which the data value belongs (i.e. the target range partition) is identified as being cached. If the cache is full, all of the disjointed range partitions are deleted. A first new cached partition range that contains the data value is created; it excludes at least one value that had been cached. The remaining values are placed in uncached range partitions; contents of the cache are updated to reflect the new range partition.