I/O Command Scheduling Using Resource Thresholds for QoS Stability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage devices face challenges in meeting quality of service (QoS) requirements due to insufficient hardware resources, leading to traffic collisions and bandwidth issues, resulting in jitter and delayed processing of I/O commands.
Innovation Solution
A system and method for resource-based scheduling of I/O commands that monitor and synchronize hardware and software resources, allocating tokens and buffers based on availability and QoS expectations, using a software token manager to manage resource allocation and adjust thresholds dynamically.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If I/O commands are scheduled without considering hardware resource availability, then command processing speed may be increased, but QoS requirements cannot be met due to traffic collisions and bandwidth collisions
Solution Approach 1:
The system performs preliminary checks of hardware resource availability (tokens, buffers, DMA descriptors) before scheduling I/O commands. The traffic controller evaluates current resource states and predicts future availability to determine whether to accept or reject incoming commands, preventing resource exhaustion and ensuring QoS compliance.
Solution Approach 2:
The system continuously monitors hardware resource utilization and uses this feedback to dynamically adjust scheduling decisions. The traffic controller receives real-time information about token availability, buffer states, and DMA descriptor status, and uses this feedback to make informed scheduling decisions that balance throughput with QoS requirements.
2Productivity
If multiple I/O commands are scheduled simultaneously, then system throughput is improved, but traffic collisions increase causing jitter
Solution Approach 1:
The system dynamically adjusts the traffic threshold value based on current hardware resource availability and observed collision patterns. When resources are abundant, the threshold allows higher traffic rates; when resources are constrained or collisions are detected, the threshold is reduced to maintain stable processing and minimize jitter.
Solution Approach 2:
The system changes the parameter of traffic threshold dynamically based on resource conditions. The traffic controller monitors resource utilization and adjusts the threshold parameter to optimize the balance between throughput and jitter, allowing the system to adapt to varying workloads and resource availability.
3Reliability
If hardware resources are allocated conservatively to meet QoS requirements, then QoS compliance is improved, but resource utilization efficiency decreases
Solution Approach 1:
The system uses partial resource allocation by implementing a traffic threshold that allows only a portion of incoming I/O commands to be scheduled when resources are constrained. This partial action ensures that critical QoS requirements are met while still allowing some system throughput, rather than completely blocking traffic when resources are limited.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for scheduling input/output, I/O, commands is described. The method includes receiving, by an I/O scheduler, an I/O command from an application; generating, by the I/O controller, an I/O resource requirement based on the I/O command; determining, by a traffic controller, that an amount of available resources satisfies a criteria based on the I/O resource requirement; and sending, by the traffic controller, the I/O command to a queue in response to the criteria being satisfied.