Mapping Driver I/O Command Segmentation for Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data storage systems (DSSs) face inefficiencies when handling Input/Output (I/O) operations, as they are limited by the fixed number of tracking data structures, leading to maximum I/O size constraints and increased processing complexity, especially when using finer granularities like 512-byte sectors, which can reduce the maximum permitted I/O size significantly.

Innovation Solution

A mapping driver in the DSS splits incoming I/O operations into smaller constituent parts, allowing these to be processed internally without exceeding the fixed number of provisioned tracking data structures, enabling any sized I/O to be processed by issuing the smaller parts sequentially or in parallel, thus eliminating the need for a maximum I/O size constraint.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the DSS uses a fixed number of tracking data structures to process I/O commands, then the system structure remains simple and manageable, but the maximum permitted I/O size is limited

Engineering Contradiction:
Improvetracking data structures managementVSAvoidmaximum I/O size
Core Design Contradiction:
Device complexityVSLength of moving object

Solution Approach 1:

The patent divides a large I/O command into multiple smaller sub-I/O commands, each of which can be processed by the fixed number of tracking data structures. This segmentation allows the system to handle I/O operations larger than the maximum permitted size by processing them in chunks, thereby resolving the contradiction between limited tracking structures and large I/O size requirements.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the DSS enforces a maximum permitted I/O size based on fixed tracking data structures, then the system operates within resource constraints, but I/O operations exceeding this size fail or require complex host-side splitting

Engineering Contradiction:
ImproveI/O operation success rateVSAvoidI/O processing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The mapping driver automatically performs the splitting of large I/O commands into smaller sub-commands without requiring host intervention. This self-service approach eliminates the need for the host to know about or handle the maximum I/O size limitation, improving reliability while keeping the host-side complexity low.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If the DSS uses finer granularity (e.g., 512-byte sectors) for storing data, then storage precision and flexibility improve, but the maximum permitted I/O size is reduced due to the fixed number of tracking data structures

Engineering Contradiction:
Improvedata storage granularityVSAvoidmaximum I/O size
Core Design Contradiction:
Manufacturing precisionVSLength of moving object

Solution Approach 1:

The patent applies segmentation to divide large I/O operations into smaller sub-operations that can be tracked using the fixed number of tracking data structures. This allows the system to maintain fine granularity (512-byte sectors) for precise data management while still supporting large I/O sizes by processing them as sequences of smaller tracked operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10635330B1Techniques for splitting up I/O commands in a data storage system
Publication Date: 2020.04.28 EMC IP HLDG CO LLC
  • US10635330B1 patent drawing
  • US10635330B1 patent drawing
  • US10635330B1 patent drawing

AI summary

A method performed by a mapping driver executing on a DSS includes (a) receiving a data storage command that identifies a portion of storage of the DSS having a given size to which the data storage command is directed, (b) generating a plurality of derived data storage (DDS) instructions from the received data storage command, each DDS instruction of the plurality of DDS instructions identifying a respective sub-portion of the portion to which that DDS instruction is directed, each sub-portion having a respective sub-portion size smaller than the given size, and (c) issuing each DDS instruction separately to a data storage coordination driver also executing on the DSS, the data storage coordination driver being configured to cause each DDS instruction to be performed with respect to storage of the DSS. An apparatus, system, and computer program product for performing a similar method are also provided.