Hierarchical Storage Cache Management with Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large-scale storage systems, the increasing size of the cache in tier 1 storage leads to prohibitive memory requirements for the in-memory cache, impacting IO performance due to the need for proportional memory increases.

Innovation Solution

A cache management data structure employing high and low priority queues and a hash table is used to efficiently manage block attributes, allowing for effective caching and eviction strategies to optimize memory usage, with a hardware abstraction layer enabling resource isolation and allocation among virtual computing instances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the size of the cache in tier 1 storage is increased to improve IO performance, then the IO performance is improved, but the memory requirements of the in-memory cache become prohibitive

Engineering Contradiction:
ImproveIO performanceVSAvoidmemory requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the cache management into two distinct components: a file system cache for data blocks and a separate in-memory cache for block attributes. This segmentation allows the system to optimize memory usage by storing only essential metadata (attributes) in the expensive in-memory cache while keeping the actual data in the file system cache, thereby resolving the contradiction between improving IO performance and reducing prohibitive memory requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the block attribute storage from the traditional unified cache structure and places it in a separate in-memory cache. By extracting only the essential metadata (checksums, keys, sizes) from the full data blocks, the system maintains the ability to verify cached data quickly while dramatically reducing the memory footprint compared to caching entire data blocks along with their attributes.

Inventive Principle:
Principle #2Taking out (Extraction)

2Speed

If the size of the cache in tier 1 storage becomes increasingly large to improve performance, then the IO performance is improved, but the memory requirements become prohibitive

Engineering Contradiction:
Improveaccess speedVSAvoidmemory requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the cache management into two distinct components: a file system cache for data blocks and a separate in-memory cache for block attributes. This segmentation allows the system to optimize memory usage by storing only essential metadata (attributes) in the expensive in-memory cache while keeping the actual data in the file system cache, thereby resolving the contradiction between improving IO performance and reducing prohibitive memory requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the block attribute storage from the traditional unified cache structure and places it in a separate in-memory cache. By extracting only the essential metadata (checksums, keys, sizes) from the full data blocks, the system maintains the ability to verify cached data quickly while dramatically reducing the memory footprint compared to caching entire data blocks along with their attributes.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11249914B2System and methods of an efficient cache algorithm in a hierarchical storage system
Publication Date: 2022.02.15 VMWARE INC
  • US11249914B2 patent drawing
  • US11249914B2 patent drawing
  • US11249914B2 patent drawing

AI summary

An in-memory cache for a computer system having a first storage and a second storage where the first storage is a cache for the second storage, tracks priority levels of block attributes stored therein. If a data item is cached in the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a high priority block attribute. If a data item evicted from the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a low priority block attribute. When the cache becomes full, the low priority block attributes are evicted before the high priority block attributes.