Managing custom runtimes in an on-demand code execution system
First Claim
1. A system comprising:
- a non-transitory data store including a plurality of runtimes, individual runtimes including software that, when provisioned into an execution environment on an on-demand code execution system, enable execution of user-submitted code within the execution environment;
one or more computing devices providing a plurality of execution environments of the on-demand code execution system;
a computing device implementing a management system, wherein the management system is configured to;
provision individual execution environments, of the plurality of execution environments, with a runtime from the plurality of runtimes;
maintain instruction queues for individual runtimes of the plurality of runtimes, wherein an instruction queue for an individual runtime enqueues one or more execution instructions awaiting distribution to an execution environment provisioned with the individual runtime, an execution instruction corresponding to an instruction to execute user-submitted code within an individual execution environment;
determine, based at least partly on a number of execution instructions within the instruction queue for a first runtime of the plurality of runtimes, a number of the plurality of execution environments to be provisioned with the first runtime; and
modify provisioning of the individual execution environments to cause the determined number of execution environments to be provisioned with the first runtime.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described for managing provisioning of runtimes to execution environments within an on-demand code execution system. Different runtimes can include various software enabling execution of user-submitted code within the on-demand code execution system, potentially written in different programming languages. Each runtime can implement a pull-based request handler, such that when the runtime is provisioned within an execution environment, the runtime requests execution instructions from a management system on the on-demand code execution system. The management system can maintain a queue of execution instructions for each runtime, and can use a depth of each queue to manage the provisioning of environments with runtimes.
-
Citations
20 Claims
-
1. A system comprising:
-
a non-transitory data store including a plurality of runtimes, individual runtimes including software that, when provisioned into an execution environment on an on-demand code execution system, enable execution of user-submitted code within the execution environment; one or more computing devices providing a plurality of execution environments of the on-demand code execution system; a computing device implementing a management system, wherein the management system is configured to; provision individual execution environments, of the plurality of execution environments, with a runtime from the plurality of runtimes; maintain instruction queues for individual runtimes of the plurality of runtimes, wherein an instruction queue for an individual runtime enqueues one or more execution instructions awaiting distribution to an execution environment provisioned with the individual runtime, an execution instruction corresponding to an instruction to execute user-submitted code within an individual execution environment; determine, based at least partly on a number of execution instructions within the instruction queue for a first runtime of the plurality of runtimes, a number of the plurality of execution environments to be provisioned with the first runtime; and modify provisioning of the individual execution environments to cause the determined number of execution environments to be provisioned with the first runtime. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method comprising:
-
provisioning individual execution environments, of a plurality of execution environments in an on-demand code execution system, with a runtime from a plurality of runtimes maintained at the on-demand code execution system, wherein individual runtimes include software that, when provisioned into an execution environment of the plurality of execution environments, enable execution of user-submitted code within the execution environment; maintaining instruction queues for individual runtimes of the plurality of runtimes, wherein an instruction queue for an individual runtime enqueues one or more execution instructions awaiting distribution to an execution environment provisioned with the individual runtime, an execution instruction corresponding to an instruction to execute user-submitted code within an individual execution environment; determining, based at least partly on a number of execution instructions within an instruction queue of a first runtime, of the plurality of runtimes, a number of the plurality of execution environments to be provisioned with the first runtime; and modifying provisioning of the individual execution environments to cause the determined number of execution environments to be provisioned with the first runtime. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. Non-transitory computer-readable media comprising computer-executable instructions that, when executed by a computing system, cause the computing system to:
-
maintain instruction queues for individual runtimes of a plurality of runtimes in an on-demand code execution system, wherein an instruction queue for an individual runtime enqueues one or more execution instructions awaiting distribution to an execution environment, among a plurality of execution environments on the on-demand code execution system, provisioned with the individual runtime, the one or more execution instructions corresponding to instructions to execute user-submitted code within the execution environment, wherein individual runtimes include software that, when provisioned into the execution environment, enable execution of user-submitted code within the execution environment; determine, based at least partly on a number of execution instructions within an instruction queue of a first runtime of the plurality of runtimes, a number of the plurality of execution environments to be provisioned with the first runtime; and cause the determined number of execution environments to be provisioned with the first runtime. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification