Probabilistic Aging Command Sorting for Storage Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing devices with command queues, such as hard disc drives, commands can 'starve' due to non-uniform selection criteria, leading to timeouts that disrupt system performance, especially in workloads with high queue depth and low time-out limits, causing delays and re-submissions.
Innovation Solution
A probabilistic aging module calculates the probability of commands timing out and adjusts their access times, allowing for earlier execution to prevent timeouts, thereby optimizing system performance by reducing disruptions and delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If commands are executed based on standard queue ordering, then system throughput is maintained, but commands may timeout causing performance disruptions
Solution Approach 1:
The system performs preliminary action by calculating the probability of timeout for each command in the queue before execution. This allows the system to proactively identify commands at risk of timeout and adjust their execution priority accordingly, preventing timeouts before they occur rather than reacting after they happen.
Solution Approach 2:
The command selection mechanism is made dynamic by continuously recalculating timeout probabilities as commands are executed and queue conditions change. The system adapts execution priorities in real-time based on current queue depth, command ages, and timeout thresholds, rather than using static queue ordering.
2Reliability
If commands with high timeout probability are prioritized, then timeout disruptions are reduced, but access time variability increases
Solution Approach 1:
The system calculates expected access times in advance for different command selection scenarios, incorporating timeout probability into the decision-making process. This allows comparison of time costs before committing to a command selection, enabling informed trade-offs between timeout prevention and access time optimization.
Solution Approach 2:
The system changes the parameter used for command selection from simple queue position to a composite metric that includes timeout probability. By modifying the selection criterion to factor in timeout risk, the system can prioritize commands that are more likely to timeout while still considering access time implications.
3Reliability
If probabilistic aging is implemented, then command timeout is reduced, but computational complexity increases
Solution Approach 1:
The queue management system performs self-service by automatically calculating timeout probabilities and adjusting execution priorities without external intervention. The system monitors its own queue conditions, computes risk metrics, and makes autonomous decisions about command prioritization, reducing the need for complex external control mechanisms.
Solution Approach 2:
The system implements feedback by continuously monitoring command execution outcomes and using this information to refine timeout probability calculations. Actual timeout events and execution patterns feed back into the probabilistic model, allowing the system to learn and improve its predictions over time without increasing structural complexity.
Data Source
AI summary
Systems and methods are disclosed for probabilistic aging command sorting, including adjusting an execution order for a command based on a probability of the command reaching a time out threshold. Various example embodiments are directed to selecting a command for execution from a queue of commands awaiting execution, in which the commands have non-uniform attributes influencing their selection and a time limit within which to execute them. In some embodiments, an apparatus may comprise a circuit configured to calculate a first estimated access time to execute a selected command from a command queue, modify the first estimated access time based on a probability of the selected command reaching a time-out age threshold to determine a time out-adjusted access time, and execute the selected command in an order based on the time out-adjusted access time.


