US 12,321,769 B1
Incremental snapshots of state information in an on-demand network code execution system
Mihir Sathe, Seattle, WA (US); and Newton Jain, Toronto (CA)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 14, 2021, as Appl. No. 17/447,663.
Int. Cl. G06F 9/455 (2018.01); G06F 9/50 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 9/5022 (2013.01); G06F 2009/4557 (2013.01); G06F 2009/45575 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A system comprising:
a non-transitory data store configured to store computer-executable instructions; and
a computing device in communication with the non-transitory data store, wherein the computer-executable instructions, when executed by the computing device, configure the computing device to:
receive a first input indicating a first set of code for execution in an execution environment;
generate a first virtual machine instance provisioned with the execution environment;
initialize the execution environment on the first virtual machine instance;
execute the first set of code in the execution environment initialized on the first virtual machine instance, wherein execution of the first set of code causes a first modification to a state of one or more provisioned resources in the execution environment from a first state to a second state;
generate a snapshot of the state of the one or more provisioned resources as modified based on the first modification;
store the snapshot of the state of the one or more provisioned resources as modified based on the first modification;
receive a second input indicating 1) a second set of code, 2) an identifier of the state of the one or more provisioned resources as modified based on the first modification, and 3) a request to execute the second set of code using the state of the one or more provisioned resources as modified based on the first modification, wherein the first set of code is at least partially different from the second set of code;
generate a second virtual machine instance provisioned with the execution environment, wherein the state of the one or more provisioned resources as modified based on the first modification is associated with the snapshot of the state of the one or more provisioned resources as modified based on the first modification;
initialize the execution environment on the second virtual machine instance based on the state of the one or more provisioned resources associated with the snapshot of the state of the one or more provisioned resources as modified based on the first modification; and
execute the second set of code in the execution environment initialized on the second virtual machine instance based on the state of the one or more provisioned resources as modified based on the first modification, wherein execution of the second set of code causes a second modification of the state of the one or more provisioned resources from the second state to a third state.