On-demand Code Execution Resource Scaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional on-demand code execution systems struggle to efficiently manage long-running background processes alongside synchronous operations, often requiring separate execution environments and reducing the deployment and management benefits of using such systems.
Innovation Solution
The system provisions a baseline quantity of computing resources that can be dynamically scaled up to meet the performance requirements of synchronous processes, while maintaining a minimum level of resources for continuous or asynchronous background processes, allowing for efficient execution of both types of operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate execution environments are used for synchronous and asynchronous processes, then each process type can be optimized independently, but device complexity and deployment overhead increase
Solution Approach 1:
The patent merges synchronous and asynchronous process execution into a single execution environment. The system provisions computing resources that can be dynamically scaled to handle both process types simultaneously, eliminating the need for separate execution environments while maintaining optimization for each process type through dynamic resource allocation.
Solution Approach 2:
The execution environment is designed to be universal, capable of handling both synchronous request-response processes and asynchronous long-running background processes. The system provisions baseline computing resources that can be dynamically scaled up to meet synchronous performance requirements while maintaining capacity for asynchronous operations, making the environment multi-functional.
2Productivity
If computing resources are dynamically scaled up for synchronous processes, then synchronous performance requirements are met, but resource management complexity increases
Solution Approach 1:
The system implements dynamic resource scaling where computing resources are automatically adjusted based on workload demands. Baseline resources are provisioned for asynchronous operations, and resources can be scaled up when synchronous processes require additional capacity, then scaled back down when demand decreases, creating a flexible and adaptive resource management system.
Solution Approach 2:
The system changes resource allocation parameters dynamically based on process type and demand. Computing resources are provisioned at a baseline level and can be scaled up to meet synchronous performance requirements, with the scaling parameter adjusted according to real-time workload conditions, allowing efficient resource utilization without manual intervention.
3Duration of action of stationary object
If baseline computing resources are provisioned for background processes, then asynchronous operations can execute continuously, but resource utilization efficiency decreases when synchronous demand is low
Solution Approach 1:
The system implements periodic resource allocation adjustments where baseline resources are maintained for asynchronous operations, but additional resources are allocated periodically when synchronous demand arises and released when demand subsides. This periodic scaling allows continuous background process execution while minimizing resource waste during low-demand periods.
Data Source
AI summary
Systems and methods are provided for an on-demand code execution service comprising a set of computing devices for on-demand execution of function code while continuing to facilitate executing long-running background processes. A subset of resources may be initialized based, at least in part, on the application configuration data including at least a request-response process, a background process, and a lesser set of computing resources for the background process. After the execution of the background process has begun, a first request may be received. The on-demand code execution service may increase computing resources to a larger set of computing resources to generate a first response to the first request. The first response may then be provided to an external set of computing resources. After determining that the queue contains no additional requests, the on-demand code execution service may decrease the level of computing resources to the lesser set of computing resources.


