US 11,714,675 B2
Virtualization-based transaction handling in an on-demand network code execution system
Marc John Brooker, Seattle, WA (US); and Mikhail Danilov, Sammamish, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 10, 2021, as Appl. No. 17/472,380.
Application 17/472,380 is a continuation of application No. 16/447,797, filed on Jun. 20, 2019, granted, now 11,119,809.
Prior Publication US 2022/0004423 A1, Jan. 6, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/46 (2006.01); H04L 67/02 (2022.01)
CPC G06F 9/466 (2013.01) [H04L 67/02 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
obtaining a request to execute user-submitted code on an on-demand code execution system, wherein the user-submitted code is associated with metadata that identifies a portion of the user-submitted code as including a transaction;
causing the on-demand code execution system to configure a virtual computing environment to execute the user-submitted code;
generating a snapshot of the virtual computing environment when execution of the user-submitted code reaches a first statement in the user-submitted code, the first statement associated with a start of the transaction;
causing the on-demand code execution system to perform a first execution of the transaction within the virtual computing environment;
determining, based at least in part on a result obtained from the first execution, that the first execution was not successful, wherein the result is generated based at least in part on the execution of the user-submitted code reaching a second statement associated with an end of the transaction;
causing the on-demand code execution system to restore the snapshot of the virtual computing environment, wherein restoring the snapshot of the virtual computing environment changes an execution state of the user-submitted code from a state corresponding to the second statement to a state corresponding to the first statement; and
causing the on-demand code execution system to perform a second execution of the transaction within the virtual computing environment.