US 12,443,424 B1
Generational management of compute resource pools
Malcolm Featonby, Sammamish, WA (US); Saloni Sonpal, Seattle, WA (US); and Axel David Velazquez, Renton, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 30, 2021, as Appl. No. 17/301,258.
Int. Cl. G06F 9/455 (2018.01); G06F 9/50 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 9/5077 (2013.01); G06F 2009/45562 (2013.01); G06F 2209/5011 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A cloud provider system comprising:
a pool of virtual machines, wherein each virtual machine in the pool is usable to execute a task in response to an incoming request to execute the task, and the pool is divided into a plurality of sub-pools, wherein the plurality of sub-pools include at least a first sub-pool and a second sub-pool; and
a container service comprising computer hardware, wherein the container service is configured to manage and utilize the pool of virtual machines and is further configured to at least:
receive a request to execute a user code on a virtual machine in the pool on behalf of a user, wherein the request includes capacity configuration information indicating a type of computing resource and an amount of computing resource corresponding to the type of computing resource requested for executing the user code;
determine, based at least partly on (i) the amount of computing resource indicated by the capacity configuration information exceeding a first amount or range of amounts of computing resource provided by one or more individual compute instances within the first sub-pool and also exceeding a second amount or range of amounts of computing resource provided by one or more individual compute instances within the second sub-pool and different from the first amount or range of amounts provided by the one or more individual compute instances within the first sub-pool, or (ii) the type of computing resource indicated by the capacity configuration information not being supported by one or more individual compute instances within the first sub-pool and one or more individual compute instances within the second sub-pool, that a condition for adding an additional sub-pool to the pool of compute instances such that a total amount of computing resource in the pool is increased is satisfied;
create an additional sub-pool having a generational indicator that indicates that the additional sub-pool is new, wherein the generational indicator of the additional sub-pool is different from a generational indicator of at least one of the plurality of sub-pools;
update capacity configuration mapping information associated with the pool such that at least one code execution request that would have been directed to one of the plurality of sub-pools prior to the creation of the additional sub-pool would now be directed to the additional sub-pool;
initialize an additional virtual machine having a capacity configuration that is different from at least one of the virtual machines in the pool; and
cause the user code to be executed on the additional virtual machine.