OS-Level I/O Management for Flash Storage Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional storage systems face inefficiencies in managing I/O operations due to the involvement of lower-level processes and storage controllers, leading to unnecessary write operations and reduced reliability.

Innovation Solution

Implementing a direct-mapped flash storage system where the operating system initiates and controls processes, offloading device management from storage drives by using non-volatile RAM as a buffer for write operations and employing erasure coding and mirroring for data redundancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If storage controllers and lower-level processes manage I/O operations, then device management is handled, but write operations become redundant and reliability decreases

Engineering Contradiction:
Improvedata integrityVSAvoidI/O management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts device management functions from storage controllers and transfers them to the operating system. The OS directly manages I/O operations, data buffering, and write processes, eliminating the need for storage controllers to perform these functions. This extraction reduces redundant write operations and improves data integrity while simplifying the overall system architecture.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If traditional storage controllers manage I/O operations, then device management is performed, but latency increases and productivity decreases

Engineering Contradiction:
ImproveI/O operation efficiencyVSAvoidI/O latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the I/O management functionality into distinct OS-level components: an I/O interface for receiving operations, a buffer manager for data buffering, and a write manager for coordinating write operations. This segmentation allows each component to operate independently and efficiently, reducing latency and improving overall I/O productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a buffer manager as an intermediary between the I/O interface and the storage device. This buffer manager holds data temporarily, coordinates write operations, and manages the flow of data between the OS and storage device, reducing latency and improving I/O efficiency by eliminating direct controller mediation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If storage controllers perform write operations, then data is written to storage, but redundant writes occur and reliability is reduced

Engineering Contradiction:
Improvewrite operation reliabilityVSAvoidwrite operation overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements preliminary actions by having the OS buffer and prepare data before writing to storage. The buffer manager pre-processes data, validates it, and organizes write operations in advance, preventing redundant writes and reducing the energy overhead associated with repeated write operations to the same data.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240370190A1Optimizing Computing Resource Configurations For Input/Output (‘I/O’) Operations
Publication Date: 2024.11.07 PURE STORAGE INC
  • US20240370190A1 patent drawing
  • US20240370190A1 patent drawing
  • US20240370190A1 patent drawing

AI summary

Methods, apparatuses, and products for optimizing computing resource configurations for I/O operations, including: determining a change in performance of a plurality of computing resources that are currently servicing I/O queues over one or more connections to one or more client computing devices in a first I/O configuration; determining, in response to the determined change in performance, a second I/O configuration for the plurality of computing resources; and applying the second I/O configuration to the plurality of computing resources.