Bandwidth Ceiling for Background Tasks in Shared Ports
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data storage systems, background tasks such as data copying can consume excessive bandwidth, leading to starvation of host I/O operations, as existing systems lack effective mechanisms to manage port accesses and ensure sufficient bandwidth allocation for foreground processes.
Innovation Solution
Implementing a mechanism that allocates a percentage of the communication resource's bandwidth to background processes, dynamically adjusts the delay between I/O operations based on actual throughput, and recalculates this delay to maintain optimal bandwidth utilization, ensuring foreground processes receive sufficient bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If background tasks use high bandwidth for data copying, then data copying speed is improved, but host I/O operations are starved of bandwidth
Solution Approach 1:
The patent segments the port bandwidth into two distinct portions: a first portion allocated to background tasks for data copying operations, and a second portion reserved for host I/O operations. This segmentation ensures that background tasks can operate at high speed without starving host I/O operations of bandwidth, directly resolving the technical contradiction between copying speed and I/O availability.
Solution Approach 2:
The patent introduces a mediator mechanism that monitors and controls bandwidth allocation between background tasks and host I/O operations. This intermediary ensures fair sharing of the communication resource, allowing both background data copying and host I/O operations to proceed simultaneously without mutual interference or starvation.
2Reliability
If delay between I/O operations is increased to limit background task bandwidth, then host I/O starvation is prevented, but background task throughput is reduced
Solution Approach 1:
Instead of using a single delay mechanism that uniformly throttles all I/O operations, the patent segments the bandwidth control into two separate portions with different delay characteristics. The first portion for background tasks allows higher throughput while the second portion for host I/O ensures minimum guarantees, eliminating the need for excessive delays.
Solution Approach 2:
The patent dynamically adjusts the delay amounts for different I/O operations based on real-time conditions. The delay for background tasks is optimized to maximize throughput, while the delay for host I/O operations is adjusted to ensure sufficient bandwidth allocation. This dynamic adaptation allows the system to maintain both high background task throughput and reliable host I/O service.
3Productivity
If dynamic delay adjustment is implemented to optimize bandwidth allocation, then bandwidth utilization is improved, but system complexity increases
Solution Approach 1:
The patent implements a feedback mechanism that periodically monitors actual I/O throughput and adjusts delay amounts accordingly. The system measures the performance of background tasks and host I/O operations, compares it against target thresholds, and dynamically modifies delay parameters to optimize bandwidth utilization. This feedback loop enables efficient adaptive bandwidth management.
Solution Approach 2:
The patent changes key parameters (delay amounts, bandwidth allocation percentages) dynamically based on system conditions. By adjusting these parameters in response to monitored throughput, the system optimizes bandwidth utilization without requiring complex hardware modifications, achieving improved efficiency through software-based parameter adaptation.
Data Source
AI summary
Controlling communication through a communication resource includes allocating a percentage of a maximum bandwidth of the communication resource to a subset of processes that communicate using the resource, determining a delay amount between I/O operations, where the delay amount corresponds to the percentage of bandwidth allocated to the subset of processes, and waiting an amount of time corresponding to the delay amount between I/O operations for the subset of processes. The delay amount may be increased in response to the actual I/O throughput being greater than an amount corresponding to the percentage of the maximum bandwidth allocated to the subset of processes. The delay amount may be decreased in response to the actual I/O throughput being less than an amount corresponding to the percentage of the maximum bandwidth allocated to the subset of processes.


