Adaptive Storage-Service Traffic Throttling Under Shared Capacity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage services face issues with capacity overload due to shared resources among multiple clients, leading to request failures and unnecessary costs, as users are unaware of the varying available capacity and are not provided with a mechanism to manage their requests effectively.
Innovation Solution
A method for adaptive throttling of storage service traffic by dynamically determining the available capacity based on request success and failure, using techniques like token-based approaches to manage request rates and introduce jitter to prevent synchronized retries, ensuring efficient utilization of shared storage resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If clients send requests to storage service without adaptive throttling, then clients can maximize their usage of storage service, but storage service becomes overwhelmed leading to request failures and wasted costs
Solution Approach 1:
The client application monitors the responses from storage service requests and uses this feedback to dynamically adjust its request rate. When requests succeed, the client may increase throughput; when failures occur, the client reduces the rate, creating a closed-loop control system that adapts to actual service capacity
Solution Approach 2:
The system transitions from static request patterns to dynamic adaptive throttling where the request rate continuously adjusts based on observed service responses. This dynamic behavior allows the system to optimize throughput while avoiding overload conditions
2Speed
If clients send high volume requests to storage service, then data transfer speed increases, but storage service capacity is exceeded causing failures
Solution Approach 1:
The client application proactively implements throttling mechanisms before service overload occurs by monitoring response patterns and pre-adjusting request rates based on observed capacity limits, preventing harmful overload conditions rather than reacting after they occur
Solution Approach 2:
The system dynamically changes request parameters such as rate limits, batch sizes, and timing intervals based on observed service capacity, allowing optimization of transfer speed while adapting to varying service conditions
3Quantity of substance
If multiple clients share storage service capacity, then resource utilization efficiency improves, but individual client capability varies dynamically without visibility
Solution Approach 1:
Each client application independently monitors its own request outcomes and self-adjusts its throughput without requiring external notification or visibility into other clients' usage, allowing the system to function autonomously with incomplete information
Data Source
AI summary
A computer program product, system, and computer implemented method for adaptive throttling of storage service traffic within a client application. The approaches provided herein allow a client or user of a storage service to dynamically and adaptively determine the capability of a storage service to service requests even when the client is not provided with a fixed reserved capacity and when other user may cause the unused capacity to vary. For instance, the approach may include maintaining a computing cluster that accesses a storage service, wherein the remote storage service has limited capacity to service requests, the limited capacity is share among a plurality of clients that access the storage service. Repeatedly determining, at the computing cluster, an available capacity of the storage service based on success or failure of requests, and adaptively throttling requests to the storage service based on at least a then current available capacity.


