Data Relay Device Command Queue Overflow Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage systems, the I/O performance deteriorates when the number of simultaneously transmissible I/O commands exceeds the capacity of the command queue, leading to unstable behavior and frequent retry requests due to overflow, which limits the system's performance to that of the storage device or lower.
Innovation Solution
A data relay device with a storage circuit to manage an upper limit number of I/O commands for each storage device, a relay circuit for data transmission, and a control circuit that counts unresponsive commands and adjusts the upper limit number to prevent command queue overflow by discarding excess commands and requesting retries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of simultaneously transmissible I/O commands is increased to improve I/O performance, then the I/O performance may be improved, but the command queue may overflow causing unstable behavior and frequent retry requests
Solution Approach 1:
The relay device performs preliminary counting of the number of I/O commands transmitted to each storage device before allowing new commands to be transmitted. By maintaining a command count for each storage device and comparing it against an upper limit, the system proactively prevents command queue overflow before it occurs, ensuring stable operation while maximizing I/O performance.
Solution Approach 2:
The system implements feedback control by continuously monitoring the number of transmitted I/O commands for each storage device and using this information to control whether additional commands should be transmitted. When the command count reaches the upper limit, the relay device stops transmitting new commands until the count decreases, creating a self-regulating mechanism that maintains system stability.
2Productivity
If the upper limit number of commands is set high to allow more parallel I/O operations, then throughput increases, but command queue overflow occurs leading to performance degradation
Solution Approach 1:
The system dynamically adjusts the effective upper limit of transmissible commands based on the current command count for each storage device. Rather than using a fixed high limit that could cause overflow, the relay device modifies the effective limit in real-time by comparing the cumulative command count against a predetermined upper limit, allowing maximum throughput while preventing overflow conditions.
Solution Approach 2:
The relay device acts as an intermediary between control devices and storage devices, controlling the flow of I/O commands. It monitors the command count for each storage device and selectively allows or blocks command transmission based on whether the upper limit has been reached, preventing overflow while maintaining high throughput when capacity is available.
3Reliability
If the relay device monitors and controls the number of I/O commands for each storage device, then command queue overflow is prevented, but the device complexity increases
Solution Approach 1:
The relay device maintains separate command counts for each storage device individually, rather than using a single aggregate counter. This segmentation allows precise control over each storage device's command queue utilization, preventing overflow for any individual device while keeping the control mechanism simple and modular, with each storage device being managed independently.
4Productivity
If the system allows multiple control devices to transmit I/O commands simultaneously to storage devices, then I/O performance improves, but it becomes difficult to track and manage the number of transmitted commands
Solution Approach 1:
The relay device merges the command counting function into its existing data relay operation. Rather than implementing separate tracking systems for each control device, the relay device consolidates the counting mechanism at a single point where all commands pass through, simplifying tracking while maintaining support for multiple control devices transmitting commands in parallel to multiple storage devices.
Data Source
AI summary
A data relay device including: a storage circuit that stores, for each of storages, an upper limit number indicating a number of input/output (I/O) commands that are transmittable; a relay circuit that relays data transmitted and received between one or more control devices and the storages; and a control circuit that performs: counting, for each storage, a number of commands indicating a number of the I/O commands that have been transmitted via the relay circuit and for which no response has been returned from transmission destination storages among the storages; in response to a request to retry transmission of the I/O commands from one storage among the storages, registering a first number in the storage circuit as the upper limit number of commands that corresponds to the one storage, the first number being a number obtained by subtracting one from a counted value of the number of commands.


