Storage Appliance Command Granularity Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face inefficiencies when processing storage requests that treat entire regions the same, as they are limited by the same size and speed constraints as other requests, leading to redundant cached data and increased overhead.

Innovation Solution

Implementing a method where storage requests treating entire regions are processed at a larger granularity by storing aggregated command records in the cache, which indicate identical changes across a range of blocks, reducing the need for block-level commands and minimizing storage overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If storage requests are processed at block-level granularity, then each block can be individually managed, but storage overhead increases and processing speed decreases for region-wide operations

Engineering Contradiction:
Improveprocessing speedVSAvoidstorage overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments storage requests into two types: block-level commands for individual block operations and region-level commands for operations affecting entire regions. This segmentation allows the system to process different types of requests at appropriate granularities, improving overall productivity while managing complexity through structured command handling

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple block-level operations into single region-level commands when they affect the same region. By combining identical operations across multiple blocks into aggregated commands, the system reduces the number of individual processing operations, thereby decreasing storage overhead and improving processing speed for region-wide operations

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If cached data stores separate block-level commands, then detailed control is maintained, but redundant data increases for region-wide operations

Engineering Contradiction:
Improvecontrol precisionVSAvoidcached data volume
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent applies different caching strategies based on the local characteristics of storage requests. Block-level commands are cached individually when needed for precise control, while region-level commands are cached as aggregated operations. This local quality approach ensures that control precision is maintained where necessary while reducing cached data volume for region-wide operations that affect entire regions uniformly

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent creates a universal command structure that can represent both block-level and region-level operations through a unified command record format. The command record includes a command type field that indicates whether the operation applies to a single block or an entire region, allowing the same caching mechanism to handle both granularities efficiently without requiring separate caching structures

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

Data Source

PatentUS11372767B2Selectively processing storage commands at different granularities based on command types
Publication Date: 2022.06.28 EMC IP HLDG CO LLC
  • US11372767B2 patent drawing
  • US11372767B2 patent drawing
  • US11372767B2 patent drawing

AI summary

A method of operating a storage appliance is provided. The method includes (a) in response to the appliance receiving a first command to perform a first storage operation on a first plurality of blocks, storing a command record for each block of the first plurality in a cache, each command record respectively indicating an address of that block; (b) upon flushing the command record for each block of the first plurality from the cache to persistent storage, storing data of that block at its indicated address; (c) in response to the storage appliance receiving a second command to perform a second storage operation on a second plurality of blocks, storing, in the cache, an aggregated command record that indicates the second storage operation and an address range of the second plurality, the second storage operation representing an identical change to all blocks of the second plurality; and (d) upon flushing the aggregated command record from the cache to the persistent storage, performing the storage operation indicated by the aggregated command record over the address range indicated by the aggregated command record.