Low latency computational capacity provisioning
AssigneeAmazon Technologies, Inc.
InventorsTimothy Allen Wagner, Dylan Chandler Thomas, Sean Philip Reque
Life of this patent
Estimating the term…
Abstract
A system for providing low latency computational capacity is provided. The system may be configured to maintain a pool of virtual machine instances, which may be assigned to users to service the requests associated with the users. The system may further be configured to receive a request to acquire compute capacity for executing a program code associated with a particular user, determine whether the pool of virtual machine instances includes a container that may be used to execute the program code therein, and cause the program code of the particular user to be executed in the container.
Claims20
A computer-implemented method comprising:
- as implemented by one or more computing devices configured with specific executable instructions,
- maintaining an active pool of virtual machine instances assigned to one or more users, wherein each virtual machine instance in the active pool has one or more software components loaded thereon;
- receiving a request to acquire compute capacity for executing a program code of a user on the virtual compute system, the request including metadata indicating the program code, the user associated with the program code, and a first amount of computing resources to be allocated for executing the program code on the virtual compute system;
- determining whether the active pool contains a container that has the program code loaded thereon;
- in response to determining that the active pool does not contain a container that has the program code loaded thereon, determining whether the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code;
- in response to determining that the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code, creating a container having at least the first amount of computing resources on the virtual machine instance and assigning the container to handle the request to execute the program code on the virtual compute system;
- and
- causing the program code of the user to be executed in the container created on the virtual machine instance.
A system for providing low-latency computational capacity, the system comprising:
- an electronic data store configured to store one or more program codes associated with one or more users;
- and
- a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions, said virtual compute system in communication with the data store, and configured to at least:
- maintain a plurality of virtual machine instances on one or more physical computing devices, the plurality of virtual machine instances comprising (i) a warming pool comprising unassigned virtual machine instances having one or more software components loaded thereon waiting to be assigned to a user, and (ii) an active pool comprising virtual machine instances assigned to one or more users;
- receive a request to execute a program code associated with a particular user of the virtual compute system, the request including metadata indicating information regarding the program code, the particular user associated with the program code, and a first amount of computing resources to be allocated for executing the program code on the virtual compute system;
- determine whether the active pool contains a container that has the program code loaded thereon;
- in response to determining that the active pool does not contain a container that has the program code loaded thereon, determine whether the active pool contains a virtual machine instance that has the program code stored thereon;
- in response to determining that the active pool does not contain a virtual machine instance that has the program code stored thereon, determine whether the active pool contains a virtual machine instance that is assigned to the particular user and has at least the first amount of computing resources available to handle the request;
- in response to determining that the active pool does not contain a virtual machine instance that is assigned to the particular user and has at least the first amount of computing resources available to handle the request, select a virtual machine instance from the warming pool;
- create a container having at least the first amount of computing resources on the selected virtual machine instance and assign the container to handle the request to execute the program code on the virtual compute system;
- and
- cause the program code associated with the particular user to be loaded and executed in the container.
A system, comprising:
- a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least:
- maintain an active pool of virtual machine instances assigned to one or more users, wherein each virtual machine instance in the active pool has one or more software components loaded thereon;
- receive a request to acquire compute capacity for executing a program code of a user on the virtual compute system, the request including metadata indicating the program code, the user associated with the program code, and a first amount of computing resources to be allocated for executing the program code on the virtual compute system;
- determine whether the active pool contains a container that has the program code loaded thereon;
- in response to determining that the active pool does not contain a container that has the program code loaded thereon, determine whether the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code;
- in response to determining that the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code, create a container having at least the first amount of computing resources on the virtual machine instance and assign the container to handle the request to execute the program code on the virtual compute system;
- and
- cause the program code of the user to be executed in the container created on the virtual machine instance.
A computer-readable, non-transitory storage medium storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising:
- maintaining an active pool of virtual machine instances assigned to one or more users, wherein each virtual machine instance in the active pool has one or more software components loaded thereon;
- receiving a request to acquire compute capacity for executing a program code of a user on the virtual compute system, the request including metadata indicating the program code, the user associated with the program code, and a first amount of computing resources to be allocated for executing the program code on the virtual compute system;
- determining whether the active pool contains a container that has the program code loaded thereon;
- in response to determining that the active pool does not contain a container that has the program code loaded thereon, determining whether the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code;
- in response to determining that the active pool contains a virtual machine instance that is assigned to the user and has at least the first amount of computing resources available for executing the program code, creating a container having at least the first amount of computing resources on the virtual machine instance and assigning the container to handle the request to execute the program code on the virtual compute system;
- and
- causing the program code of the user to be executed in the container on the virtual machine instance.
A system, comprising:
- a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least:
- maintain an active pool of virtual machine instances currently assigned to one or more users, wherein each virtual machine instance in the active pool has one or more software components loaded thereon;
- receive a request to acquire compute capacity for executing a program code of a user on the virtual compute system, the request including metadata indicating the program code, the user associated with the program code, and a first amount of computing resources to be allocated for executing the program code on the virtual compute system;
- acquire a container having at least the first amount of computing resources, based on an execution priority, for executing the program code of the user, the container created on one of the virtual machine instances in the active pool;
- and
- cause the program code of the user to be executed in the container created on the virtual machine instance.
Dependencies are inferred from the claim text.