Packing Small Cache Entries into SSD Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Caching systems face inefficiencies when managing small cache entries in block-oriented storage devices, leading to wastefulness due to the larger natural block size of solid-state drives (SSDs) compared to the size of cached data items, resulting in high waste and increased costs.

Innovation Solution

Implementing a caching system that packs multiple small entries into a single block of the SSD's natural size for spillover, using a combination of age-based and best-fit packing algorithms, and maintaining key storage in RAM for fast access, allowing for efficient eviction and reclamation of SSD blocks without requiring background compactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If small cache entries are spilled individually to SSD, then cache spillover functionality is provided, but storage space is wasted due to SSD's large block size

Engineering Contradiction:
Improvecache spillover functionalityVSAvoidstorage space
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

The patent combines multiple small cache entries into a single SSD block for spillover. When the cache needs to spill data to SSD, instead of writing each small entry separately (which would waste space due to SSD's large block size), the system collects multiple small entries and merges them into one block that fills the SSD block capacity, thereby reducing wasted storage space while maintaining cache spillover functionality.

Inventive Principle:
Principle #5Merging (Combining)

2Loss of substance

If small cache entries are retained in higher cache levels longer, then storage space utilization in SSD is improved, but higher-level cache resources are consumed

Engineering Contradiction:
Improvestorage space utilizationVSAvoidhigher-level cache resources
Core Design Contradiction:
Loss of substanceVSQuantity of substance

Solution Approach 1:

The patent implements dynamic cache management where small entries are not statically retained in higher cache levels, but are dynamically spilled to SSD when appropriate. The system monitors cache usage and selectively spills small entries to SSD based on current cache conditions, allowing higher-level cache resources to be freed for more frequently accessed data while still maintaining space-efficient storage in SSD through block consolidation.

Inventive Principle:
Principle #15Dynamics

3Productivity

If SSD block size is increased to reduce spillover frequency, then access efficiency improves, but storage waste increases for small entries

Engineering Contradiction:
Improveaccess efficiencyVSAvoidstorage waste
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent resolves this contradiction by merging multiple small cache entries into a single SSD block before spillover. This approach maintains the efficiency benefits of larger SSD blocks (reducing spillover frequency and improving access efficiency) while eliminating storage waste, because the merged block fully utilizes the SSD block capacity rather than leaving large portions unused for individual small entries.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9946657B1Spilling small cache entries to a solid state device
Publication Date: 2018.04.17 NUTANIX INC
  • US9946657B1 patent drawing
  • US9946657B1 patent drawing
  • US9946657B1 patent drawing

AI summary

Systems for managing a multi-level cache in high-performance computing. A method is practiced over a multi-tier caching subsystem that comprises a first cache tier of random access memory, and a second cache tier that comprises a block-oriented device. The solid-state drive device is a block-oriented device comprising a plurality of blocks having a minimum block size. Cache entries are initially stored in the first cache, including cache entries that are smaller than the minimum block size of the block-oriented device. During cache operations such as first tier eviction, a plurality smaller entries are packed into blocks of the minimum block size before being spilled into the second tier. If an entry in the packed block is accessed again, the entire packed block is brought into the first tier. A key structure is maintained to track individual invalidated entries in a packed block without invalidating other entries in the packed block.