Dynamic Flash Cache Allocation Across File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The mismatch in access speed between the central processing unit (CPU) and master memory leads to inefficient system performance, particularly when a large number of I/O requests are made, causing cache overflow and subsequent queuing of requests, which severely degrades system performance.
Innovation Solution
A method and device for storage management that dynamically allocates additional flash blocks from a second file system to a busy cache in a first file system, allowing for increased I/O throughput and efficient resource utilization by expanding and contracting flash block allocation based on workload demands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the cache capacity is increased to handle large amounts of I/O requests, then the I/O throughput is improved, but the cost and complexity of the storage system increases
Solution Approach 1:
The patent implements dynamic cache capacity adjustment by monitoring queue depth and I/O request rates. When the cache becomes busy (queue depth exceeds threshold), additional flash blocks are dynamically allocated to expand cache capacity. When the cache is idle, extra flash blocks are released back to the file system. This dynamic adaptation resolves the contradiction by providing large cache capacity only when needed for high throughput, while maintaining small capacity during normal operation to reduce complexity and cost.
Solution Approach 2:
The patent makes flash blocks universally allocable across different file systems. Flash blocks that are not currently needed by one file system can be reallocated to another file system that needs additional cache capacity. This multi-functional approach allows the same physical flash blocks to serve multiple file systems at different times, improving overall system throughput without permanently increasing the cache infrastructure for each file system.
2Productivity
If additional flash blocks are allocated to expand cache capacity, then the I/O request handling capability is improved, but the resource utilization of other file systems deteriorates
Solution Approach 1:
The system dynamically monitors the busy status of caches across different file systems and reallocates flash blocks in real-time. When file system A experiences high I/O load, flash blocks are dynamically transferred from file system B's cache to file system A's cache. This dynamic reallocation ensures that flash blocks are always available to the file system that needs them most, resolving the contradiction between improving one file system's capability and maintaining resources for others.
Solution Approach 2:
The patent changes the allocation parameter of flash blocks from static (dedicated to specific file systems) to dynamic (shared across file systems based on demand). By introducing parameters such as queue depth threshold and busy status detection, the system can adjust flash block allocation ratios between file systems. This parameter-based control allows flexible resource distribution that improves overall I/O handling capability while maintaining fair resource utilization across all file systems.
3Quantity of substance
If the cache is kept small to reduce cost, then the system cost is reduced, but the system performance deteriorates under heavy I/O load
Solution Approach 1:
The patent implements dynamic cache sizing that adapts to workload conditions. During normal operation, the cache maintains a small footprint to reduce cost. When heavy I/O load is detected (through queue depth monitoring and busy status detection), the cache dynamically expands by allocating additional flash blocks from the same pool used by other file systems. This dynamic sizing resolves the contradiction by providing large cache capacity only when performance is needed, while maintaining small capacity during light load to reduce cost.
Solution Approach 2:
The system enables caches to self-regulate their capacity based on their own workload conditions. Each cache monitors its own queue depth and busy status, and automatically requests additional flash blocks when needed without external intervention. This self-service mechanism allows the system to maintain small cache sizes by default (reducing cost) while automatically expanding capacity when performance demands arise, resolving the cost-performance contradiction.
Data Source
AI summary
Embodiments of the present disclosure relate to a method and device and computer readable medium for storage management. The method comprises determining a queuing condition of I/O requests of a cache of a first file system in a storage, the cache including at least one flash block. The method further includes determining a load condition of the cache based on the queuing condition of the I/O requests. Moreover, the method further includes in response to determining that the cache is in a busy status, allocating to the cache at least one additional flash block from a second file system in the storage, the second file system being different from the first file system.


