IO Leveling via Priority Queuing and Exponential Backoff
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems, particularly those using protocols like fiber channel, face issues with handling IO bursts, leading to command timeouts and application crashes due to delayed or unprocessed IO requests, as they are not equipped to manage surges in IO traffic effectively.
Innovation Solution
Implementing a method that uses a machine learning algorithm or similar to prioritize and manage IO requests, where IOs that have been previously rejected are given higher priority, and the system can delay or retry commands to prevent timeouts, using a table to track rejected commands and their retry counts, and sending an IO abort or retry command before the IO times out to smooth out IO spikes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the data storage system processes all IO requests in first-come-first-served order, then the system structure remains simple, but IO bursts cause command timeouts and application crashes
Solution Approach 1:
The patent changes the parameter of IO request handling from simple FIFO ordering to priority-based ordering with retry counts and exponential backoff timing. This allows the system to differentiate between critical and non-critical IOs, ensuring reliable processing during bursts without requiring complete redesign of the IO management architecture
Solution Approach 2:
The patent implements self-service through automatic retry logic where rejected IOs are automatically requeued with increased priority and delayed timing without human intervention. The system monitors its own IO processing state and dynamically adjusts retry behavior based on timeout detection and priority levels, enabling autonomous handling of IO bursts
2Reliability
If the system delays processing of pending IO requests, then IO spikes are smoothed out, but the processing time increases
Solution Approach 1:
The patent applies periodic action through exponential backoff timing where rejected IOs are requeued after progressively increasing delay intervals (e.g., 1 second, 2 seconds, 4 seconds). This periodic retry mechanism smooths IO spikes by spacing out reattempts while ensuring eventual processing without excessive delays for any single IO
Solution Approach 2:
The patent implements dynamics by making the IO processing system adaptive rather than static. Priority levels and retry timing are dynamically adjusted based on real-time system state, allowing the system to respond flexibly to varying IO loads and prevent both timeout crashes and excessive delays
3Reliability
If the system prioritizes previously rejected IO commands, then critical IOs are processed promptly, but the IO management complexity increases
Solution Approach 1:
The patent changes the priority parameter of IO requests dynamically based on their rejection history. Previously rejected IOs receive increased priority levels (e.g., from normal to high priority) and are placed in front of new IOs in the queue, ensuring critical operations are processed promptly without requiring complex manual priority assignment
Solution Approach 2:
The patent implements feedback mechanisms where the system monitors IO processing outcomes and uses this information to adjust future processing behavior. Rejected IOs trigger feedback loops that increase their priority and adjust retry timing, allowing the system to learn from past failures and improve reliability without complex external control
Data Source
AI summary
A method, system, and computer program product for IO leveling comprising receiving an IO, determining if there is a delay for processing IO because of pending IO, based on a positive determination there is a delay for processing IO, determining a priority for the IO, and based on the priority of IO determining whether to process the IO.


