Cache Management Device Parallel Flushing Storage Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing storage systems face performance degradation due to size inconsistency between cache pages and storage blocks, leading to inefficient data flushing and increased response times.

Innovation Solution

A method and device for cache management that identifies a set of target cache pages associated with a target storage block, allowing simultaneous writing of data from these pages into the storage block, thereby optimizing flushing efficiency and reducing the impact of size inconsistencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is flushed from cache to storage device in traditional sequential manner, then data reliability is maintained, but cache flushing efficiency deteriorates and response time increases

Engineering Contradiction:
Improvedata reliabilityVSAvoidcache flushing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple cache page flush operations into a single unified operation. When multiple cache pages map to the same storage block, the system combines these flush operations and writes all data simultaneously in one I/O operation, rather than performing sequential writes. This merging approach maintains data reliability while significantly improving cache flushing efficiency by reducing the number of I/O operations and eliminating redundant storage block locking.

Inventive Principle:
Principle #5Merging (Combining)

2Measurement precision

If cache page size is made smaller to improve granularity, then data access precision is improved, but device complexity increases due to size inconsistency between cache pages and storage blocks

Engineering Contradiction:
Improvedata access precisionVSAvoiddevice complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent changes the parameter of cache page granularity by introducing the concept of cache line as the fundamental unit of data access. Instead of working with fixed-size cache pages that may not align with storage block sizes, the system uses cache lines (smaller granular units) and dynamically groups them based on their mapping relationships with storage blocks. This parameter change allows fine-grained data access while simplifying the flushing mechanism by using size-adaptive page merging.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If sequential flushing of cache pages is used to simplify management, then device complexity is reduced, but response time increases due to inability to perform parallel operations

Engineering Contradiction:
Improvecache management complexityVSAvoidresponse time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-establishing a mapping relationship between cache pages and storage blocks before the flushing operation begins. The system uses a page-to-block mapping table that is maintained and updated during normal cache operations. When flushing is needed, the system queries this pre-established mapping to identify which cache pages map to the same storage block, enabling immediate parallel flush operations without complex runtime analysis. This preliminary preparation reduces both management complexity and response time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11210228B2Method, device and computer program product for cache management
Publication Date: 2021.12.28 EMC IP HLDG CO LLC
  • US11210228B2 patent drawing
  • US11210228B2 patent drawing
  • US11210228B2 patent drawing

AI summary

Techniques perform cache management. Such techniques involve: obtaining a first cache page of the cache to be flushed, the first cache page being associated with a target storage block in a storage device; determining from the cache a set of target cache pages to be flushed, each of the set of target cache pages being associated with the target storage block; and writing data in the first cache page and data in each of the set of target cache pages into the target storage block simultaneously.