Packing Small Cache Entries into SSD Blocks
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Productivity
If SSD block size is increased to reduce spillover frequency, then access efficiency improves, but storage waste increases for small entries
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.
Data Source
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.


