Dynamic Flash Cache Allocation Across File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveI/O throughputVSAvoidcache capacity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
ImproveI/O request handling capabilityVSAvoidflash block availability
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvecache sizeVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10747672B2Managing a datalog space of a data cache
Publication Date: 2020.08.18 EMC IP HLDG CO LLC
  • US10747672B2 patent drawing
  • US10747672B2 patent drawing
  • US10747672B2 patent drawing

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.