On-Demand Code Execution Resource Allocation Under Scarcity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

On-demand code execution systems face challenges in allocating resources fairly across multiple users and host devices, leading to resource scarcity issues where a single user's intensive resource usage can 'crowd out' others, causing errors and limiting available resources, especially in multi-tenanted environments.

Innovation Solution

Implementing a 'constrained equal awards' rule that allocates resources based on current usage levels, revoking resources from top consumers when thresholds are met to ensure fair distribution, allowing each group to use resources until scarcity conditions are reached, and halting new resource allocations to prevent overutilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If resources are allocated freely to on-demand code executions, then individual users can utilize maximum resources for their tasks, but resource scarcity occurs where intensive usage by single users crowds out other users

Engineering Contradiction:
Improveresource utilizationVSAvoidservice availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system continuously monitors resource usage levels and dynamically adjusts allocations based on real-time feedback. When resource consumption exceeds thresholds, the system detects this condition and automatically revokes allocations, creating a closed-loop control system that prevents resource scarcity while maintaining high utilization

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The resource allocation system transitions from static pre-allocated resources to dynamic on-demand allocations that can be granted or revoked based on current system state. This dynamic approach allows resources to flow to where they are most needed while preventing any single user from monopolizing them

Inventive Principle:
Principle #15Dynamics

2Productivity

If resources are allocated to multiple users simultaneously, then system throughput increases, but fair distribution becomes difficult to achieve

Engineering Contradiction:
Improvesystem throughputVSAvoidfair resource distribution
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system changes the parameter of resource allocation from fixed user-specific allocations to flexible, condition-based allocations. By monitoring usage parameters and adjusting allocations dynamically, the system achieves fair distribution while maintaining high throughput for all users

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If resource allocation is allowed without constraints, then user autonomy is maximized, but resource scarcity and errors occur

Engineering Contradiction:
Improveuser autonomyVSAvoidresource sufficiency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system establishes resource allocation rules and monitoring mechanisms in advance, before scarcity conditions occur. These pre-configured constraints guide resource distribution to prevent errors while allowing users maximum autonomy within the established framework

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11188391B1Allocating resources to on-demand code executions under scarcity conditions
Publication Date: 2021.11.30 AMAZON TECH INC
  • US11188391B1 patent drawing
  • US11188391B1 patent drawing
  • US11188391B1 patent drawing

AI summary

Systems and methods are described for allocating resources on an on-demand code execution system under conditions of scarcity, when demand for resources exceeds threshold limits. Under such conditions, a single high-demand resource consumer—such as a function or an account on the system—might monopolize available resources, denying access to the system to other resource consumers. Embodiments of the present disclosure prevent that monopolization by implementing constrained equal awards allocation, whereby resource consumers with relatively low-demand are allocated their requested resources, and remaining resources are divided substantially equally among remaining consumers of relatively high demand. The allocation techniques described herein may be implemented even under varying demand levels, without requiring each consumer to positively state their desired portion prior to allocation.