Flash Cache Storage Architecture for Random Access Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional storage systems face performance issues with random access operations due to the inefficiency of disks, which are optimized for sequential access, and large DRAM caches are costly and volatile, limiting their ability to improve performance effectively.
Innovation Solution
A cache-based storage architecture with primary non-volatile flash memory cache and secondary magnetic disk array, utilizing data layout engines to optimize random access operations by storing frequently accessed data in flash cache and transposing it into sequential access for archival storage, thereby improving performance and reducing the need for expensive high-performance disks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If large DRAM caches are used to improve random access performance, then read/write random performance and low latency are improved, but cost becomes prohibitive and volatility is introduced
Solution Approach 1:
The patent replaces expensive volatile DRAM caches with cheaper non-volatile memory (NVMe SSDs) that can persist data without power. The system uses a tiered storage architecture where frequently accessed data is cached in fast NVMe memory, and less frequently accessed data is stored in cost-effective HDDs, eliminating the need for expensive DRAM while maintaining performance benefits.
Solution Approach 2:
The patent changes the fundamental parameter of cache memory from volatile DRAM to non-volatile memory, fundamentally altering how caching works. The system introduces a write-back caching mechanism with asynchronous write operations, allowing the cache to be flushed to storage at optimal times rather than requiring continuous volatile memory retention.
2Ease of manufacture
If disks are used for storage, then cost is reduced and capacity is increased, but random access performance deteriorates significantly
Solution Approach 1:
The patent segments the storage system into two distinct tiers: a fast access tier using NVMe SSDs for frequently accessed data (cache), and a capacity tier using HDDs for archival storage. This segmentation allows the system to optimize for both performance and cost by directing different workloads to appropriate storage media.
Solution Approach 2:
The patent introduces an intermediary caching layer using NVMe memory that sits between client requests and the HDD storage. This intermediary layer absorbs random access operations, providing fast response times while the underlying HDDs handle sequential writes efficiently, thus mediating between performance requirements and cost-effective storage.
3Speed
If sequential access operations are used for disk storage, then streaming performance is improved, but random access operations become inefficient
Solution Approach 1:
The patent introduces dynamic workload classification that adapts access patterns in real-time. The system monitors and classifies operations as sequential or random, then routes them to appropriate storage tiers dynamically. This allows the system to maintain optimal performance for both sequential and random operations by adjusting the access path based on the operation type.
Data Source
AI summary
A cache-based storage architecture has primary and secondary storage subsystems that are controlled by first and second data layout engines to provide a high-performance storage system. The primary storage subsystem illustratively comprises non-volatile electronic storage media configured as a cache, while the secondary storage subsystem comprises magnetic storage media configured as a disk array. The data layout engines illustratively implement data layout techniques that improve read and write performance to the primary and secondary storage subsystems. To that end, the data layout engines cooperate to optimize the use of the non-volatile cache as a primary storage stage that efficiently serves random data access operations prior to substantially transposing them into sequential data access operations for permanent (or archival) storage on the disk array.


