Dynamic Token Bucket Throttling for Cloud Resource Overload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cloud computing environments, managing concurrent requests for shared resources can lead to overload situations, resulting in reduced request handling rates and customer dissatisfaction, as data servers may need to throttle incoming requests to prevent overload, affecting performance and resource utilization.

Innovation Solution

Implementing a token bucket system where each customer is allocated a number of tokens representing work units, with a dynamic fill rate adjusted based on monitored system performance metrics to ensure fair resource allocation and maintain performance within acceptable ranges, using a 'floating' maximum I/O rate to balance resource utilization and customer demands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the data server increases the rate of handling concurrent requests to improve productivity, then the request handling rate improves, but the system becomes overloaded and performance deteriorates

Engineering Contradiction:
Improverequest handling rateVSAvoidsystem performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic throttling where the token bucket fill rate is adjusted in real-time based on system conditions. The throttling mechanism transitions from static to dynamic control, allowing the system to adapt the request handling rate according to current load, resource availability, and performance metrics, thereby resolving the contradiction between maximizing productivity and maintaining reliability

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring system performance metrics and using this information to adjust the token bucket fill rate. The throttling controller continuously receives feedback about system state and modifies the admission rate accordingly, creating a closed-loop control system that balances request handling rate with system stability

Inventive Principle:
Principle #23Feedback

2Reliability

If the data server throttles incoming requests to prevent overload and maintain reliability, then system stability improves, but the request handling rate decreases affecting productivity

Engineering Contradiction:
Improvesystem stabilityVSAvoidrequest handling rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The throttling mechanism is made dynamic by adjusting the token bucket fill rate based on real-time system conditions. Rather than applying fixed throttling, the system adapts the admission rate to match current capacity, ensuring stability while maximizing the request handling rate under varying load conditions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of token bucket fill rate dynamically based on system state. By adjusting this parameter in response to monitoring data, the system optimizes the balance between maintaining stability and preserving productivity, allowing the throttling behavior to adapt to changing conditions

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the system allocates more resources to handle increased concurrent requests to improve productivity, then request handling capacity improves, but resource utilization efficiency decreases

Engineering Contradiction:
Improveconcurrent request capacityVSAvoidresource utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The token bucket mechanism performs preliminary action by pre-allocating tokens that represent available work units. This allows the system to control the rate of request admission in advance, preventing resource waste by only admitting requests when capacity is available, thereby maintaining productivity while improving resource utilization efficiency

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10892998B2Adaptive throttling for shared resources
Publication Date: 2021.01.12 AMAZON TECH INC
  • US10892998B2 patent drawing
  • US10892998B2 patent drawing
  • US10892998B2 patent drawing

AI summary

Customers of shared resources in a multi-tenant environment can have token buckets allocated that have an associated depth and fill rate, with each token enabling the customer to obtain an amount of work from a shared resource. A resource management system can monitor one or more system or output metrics, and can adjust a global fill rate based at least in part upon values of the monitored metrics. Such an approach can provide a fair distribution of work among the customers, while ensuring that the metrics stay within acceptable ranges and there are no drastic changes in performance levels of the system. The fill rate can update dynamically with changes in the monitored parameters, such that the system can float near an equilibrium point. Commitments for specific minimum service levels also can be met.