Dynamic RAID IO Routing to Balance Drive Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RAID storage arrays face issues with uneven distribution of input/output (IO) requests among drives, leading to performance degradation due to some drives receiving more requests than others or becoming slow/busy, which can cause the entire array to slow down.

Innovation Solution

A controller is configured to monitor IO requests for each drive and skip sending pending requests to drives with higher loads, redistributing them using an AVL tree or queue management to balance the load across drives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If IO requests are distributed to drives in a RAID storage array, then data storage and retrieval operations can be performed, but uneven distribution of IO requests causes some drives to receive more requests than others, leading to performance degradation

Engineering Contradiction:
ImproveIO request processing throughputVSAvoidIO request distribution balance
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements dynamic load balancing by continuously monitoring the number of pending IO requests for each drive and adjusting the distribution strategy in real-time. The controller dynamically selects which drive receives the next IO request based on current load conditions, transforming the static distribution problem into a dynamic adaptation process that maintains balance across drives.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring the pending IO request counts for each drive and using this information to make informed distribution decisions. The controller receives feedback about drive load status and adjusts its request routing accordingly, creating a closed-loop control system that prevents overload conditions and maintains balanced operation.

Inventive Principle:
Principle #23Feedback

2Productivity

If drives receive more IO requests to increase overall array capacity and performance, then storage throughput increases, but drives become slow or busy and take more time to complete requests, causing the entire array to slow down

Engineering Contradiction:
Improvestorage array throughputVSAvoidIO request completion speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system dynamically adjusts IO request routing based on real-time drive performance metrics. When a drive becomes slow or busy, the controller detects increased completion times and automatically redirects subsequent requests to less loaded drives, maintaining optimal throughput while preventing any single drive from becoming a performance bottleneck.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the distribution parameter from static round-robin or hash-based allocation to dynamic allocation based on drive load metrics. The controller monitors completion times and pending request counts, adjusting the distribution strategy by changing which drive receives each request based on current performance parameters, thereby optimizing both throughput and response time.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP4597286A1Dynamic modification of input/output requests for raid devices
Publication Date: 2025.08.06 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • EP4597286A1 patent drawingFigure 1
  • EP4597286A1 patent drawingFigure 2A
  • EP4597286A1 patent drawingFigure 2B

AI summary

Novel tools and techniques are provided for implementing distribution of IO requests to a storage array. In various cases, a controller for a redundant array of independent disks can be configured determine a first drive configured to receive a first input/output (IO) request; detect a first number IO requests pending for the first drive; determine the first number of IO requests pending for the first drive exceeds a first predetermined threshold; and based on a determination the first number of IO requests pending for the first drive exceeds the first predetermined threshold, skip sending the first IO request to the first drive.