Cache Tiering Across DRAM, CMB, and PMR for Lower-Cost Capacity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed storage systems face inefficiencies in data caching due to the lack of integration of different memory types, leading to suboptimal performance and increased costs without additional DRAM resources.
Innovation Solution
A method and apparatus for cache tiering that allocates cache slots based on memory type requirements, using a cache metadata table to identify and manage cache slots in DRAM, CMB, and PMR, enabling efficient data caching and synchronization through Peterson locks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional caching using only DRAM is used, then data access speed is fast, but system cost increases and cache capacity is limited
Solution Approach 1:
The cache system is segmented into multiple memory tiers (DRAM, CMB, PMR) with different performance characteristics and cost levels. Each memory type is allocated to specific cache slots based on service levels, allowing the system to balance speed and capacity by distributing data across tiers rather than relying on a single expensive DRAM-based cache.
Solution Approach 2:
Different cache slots are assigned different memory types based on local requirements. High-performance slots use DRAM for critical data, while lower-performance slots use CMB or PMR for less time-sensitive data. This local differentiation allows the system to optimize both speed for critical operations and capacity for general storage without uniform cost increases.
2Quantity of substance
If multiple memory types are integrated into the cache, then cache capacity increases without additional DRAM, but cache coherency and data synchronization become more complex
Solution Approach 1:
The cache is segmented into distinct tiers (DRAM, CMB, PMR) with clear boundaries and dedicated allocation strategies. This segmentation simplifies management by allowing independent control of each tier's allocation and access patterns, reducing the complexity of coordinating multiple memory types compared to a unified approach.
Solution Approach 2:
The system uses feedback mechanisms through service level requirements and data access patterns to dynamically manage cache tier allocation. By monitoring which memory tiers are most heavily used and adjusting allocation accordingly, the system maintains coherence without requiring complex manual synchronization protocols.
Data Source
AI summary
A method for use in a storage processor, comprising: receiving an I/O request that is associated with a logical block address; allocating a cache slot that corresponds to the logical block address, wherein allocating the cache slot includes: identifying a type of memory that is required to host the cache slot by using one or more configuration settings that are associated with the cache slot, identifying a cache slot that is both available and hosted in the identified type of memory, and assigning the identified cache slot to the logical block address; and executing the I/O request by using the allocated cache slot, wherein using the allocated cache slot includes identifying a memory address that is associated with the cache slot and executing at least one direct memory access (DMA) command that is associated with the allocated cache slot.


