On-Demand Code Execution Resource Allocation Under Scarcity
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Productivity
If resources are allocated to multiple users simultaneously, then system throughput increases, but fair distribution becomes difficult to achieve
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
3Adaptability or versatility
If resource allocation is allowed without constraints, then user autonomy is maximized, but resource scarcity and errors occur
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
Data Source
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.


