Weighted I/O Scheduling for Resource-Constrained Storage Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face inefficiencies in resource utilization and management, particularly in flash storage systems, due to unnecessary write operations and lack of centralized control over storage processes, leading to reduced reliability and increased wear on storage devices.

Innovation Solution

Implementing a direct-mapped flash storage system where higher-level processes manage data operations without lower-level storage controllers, utilizing non-volatile RAM for buffering and proactive data management across multiple storage nodes, and employing erasure coding and mirroring to ensure data integrity and redundancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional storage controllers manage data operations at lower levels, then storage devices can operate independently, but resource utilization becomes inefficient and redundant write operations increase

Engineering Contradiction:
Improveresource utilizationVSAvoidredundant writes
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts the storage controller functionality from the storage device and places it in the host system. The host processor directly manages flash storage operations, eliminating the need for separate storage controllers. This extraction allows the host to optimize write operations and avoid redundant writes by directly controlling when and how data is written to flash memory, thereby improving resource utilization and reducing energy waste from unnecessary write operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a buffer memory as an intermediary between the host and flash storage devices. This buffer serves as a mediator that decouples the host's data operations from the flash storage's write operations, allowing the host to initiate writes without immediately transferring data. The buffer enables batch processing and optimization of write operations, reducing redundant writes and improving overall resource utilization while extending flash storage lifespan.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If storage systems perform write operations frequently to maintain data, then data integrity is maintained, but storage device wear increases and lifespan decreases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage device lifespan
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent implements preliminary actions by maintaining data in buffer memory before committing it to flash storage. The system prepares data in the buffer, validates it, and optimizes write operations before actually writing to the flash storage devices. This preliminary processing in the buffer reduces the frequency of write operations to flash memory while ensuring data integrity is maintained through proper buffer management and error checking mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses buffer memory as a temporary copy location for data before it is written to flash storage. Instead of repeatedly writing to flash storage to maintain data integrity, the system maintains a copy in the buffer and only writes to flash when necessary. This copying approach reduces flash write operations and extends device lifespan while maintaining data integrity through the buffer's persistent storage capabilities.

Inventive Principle:
Principle #26Copying

3Productivity

If centralized control is implemented to manage storage operations, then resource utilization improves, but system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the host processor universal by giving it direct control over storage operations in addition to its primary computing functions. The host processor performs both general-purpose computing and specialized storage management tasks, eliminating the need for dedicated storage controllers. This multi-functionality approach centralizes control to improve resource utilization while avoiding the additional complexity of separate storage controller hardware and firmware.

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

Solution Approach 2:

The patent enables the host system to self-manage storage operations without requiring complex external storage controllers. The host processor directly manages buffer memory and flash storage devices, performing data validation, error checking, and write optimization itself. This self-service approach centralizes control for improved resource utilization while keeping the system relatively simple by eliminating dedicated storage controller components.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12585599B2Resource-sensitive scheduling of time-independent operations
Publication Date: 2026.03.24 PURE STORAGE INC
  • US12585599B2 patent drawing
  • US12585599B2 patent drawing
  • US12585599B2 patent drawing

AI summary

Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling, including: receiving an I/O request associated with an entity; determining whether an amount of system resources required to service the I/O request is greater than an amount of available system resources in a storage system; responsive to determining that the amount of system resources required to service the I/O request is greater than the amount of available system resources in the storage system: queueing the I/O request in an entity-specific queue for the entity; detecting that additional system resources in the storage system have become available; and issuing an I/O request from an entity-specific queue for an entity that has a highest priority, where a priority for each entity is determined based on the amount of I/O requests associated with the entity and a weighted proportion of resources designated for use by the entity.