IP Library › Granted Patent US 12,645,478
Granted Patent B1
US 12,645,478 · App. 17/935,898 · Granted Jun 2, 2026

Implementing debugging snapshots in a serverless computing environment

Inventors: Meiwen Li (Mercer Island, WA); Philip Daniel Piwonka (Seattle, WA); Christopher Magee Greenwood (Seattle, WA); Sushant Bhatia (Kirkland, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45558G06F2009/45562G06F2009/45575G06F2009/45591
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,645,478
App. No.
17/935,898
Granted
Jun 2, 2026
Kind
B1
Abstract

Systems and methods are described for implementing debugging snapshots on a serverless computing system. A serverless computing system executes user-submitted code in sandboxed execution environments such as virtual machines or containers, and the user who requests execution of the code does not have direct access to these execution environments for debugging or other purposes. To support debugging of code, the serverless computing system thus implements a debugging snapshot service that generates snapshots of the environment in which the user-submitted code is executing. Snapshots are generated accordance with criteria that may be specified by the user, and may include any or all of the information needed to resume execution of the code from the point at which the snapshot was taken. The service includes user interfaces that enable inspection and comparison of snapshots, as well as setting snapshot generation and retention policies.

Claims (56)

1 . A system comprising:

a data store configured to store computer-executable instructions; and

one or more processors in communication with the data store, wherein the computer-executable instructions, when executed by the one or more processors, configure the one or more processors to perform operations including:

receiving a task execution request to execute a task on a serverless computing system;

obtaining a criterion for generating a debugging snapshot;

in response to the task execution request, initiating execution of the task in a virtual machine instance of the serverless computing system;

determining, based at least in part on the execution of the task, that the criterion for generating a debugging snapshot has been satisfied;

generating a snapshot of the virtual machine instance as the debugging snapshot;

suspending execution of the task in the virtual machine instance;

causing display of a user interface, the user interface including first controls that enable user inspection of the debugging snapshot and at least one second control requesting resumption of execution of the task;

for at least a threshold period of time, maintaining resources associated with execution of the task in the virtual machine instance;

subsequent to the threshold period of time elapsing:

releasing the virtual machine instance;

obtaining an input to the at least one second control requesting resumption of execution of the task;

configuring a second virtual machine instance according to the snapshot; and

in response to the input being received subsequent to the threshold period of time elapsing, resuming execution of the task in the second virtual machine instance configured according to the snapshot.

2 . The system of claim 1 , wherein the debugging snapshot captures an execution state that includes one or more of memory content, filesystem content, CPU registers, variables, network connections, or configuration information.

3 . The system of claim 1 , wherein the criterion comprises one or more of reaching a specified line of code, throwing an unhandled exception, the task ceasing execution, a variable satisfying a threshold, a specified event occurring, receiving specified input, or the task executing for a threshold duration.

4 . The system of claim 1 , wherein the user interface includes further controls that enable resuming execution of the task by restoring the debugging snapshot.

5 . The system of claim 4 , wherein resuming execution of the task includes restoring at least one network connection established during the execution of the task.

6 . A computer-implemented method comprising:

obtaining one or more criteria for generating a debugging snapshot, the debugging snapshot associated with executing a task on a serverless computing system;

initiating execution of the task in an execution environment of the serverless computing system;

determining, based at least in part on the execution of the task, that the one or more criteria for generating the debugging snapshot have been satisfied;

generating the debugging snapshot, wherein the debugging snapshot includes at least a portion of an execution state of the execution environment;

suspending execution of the task in the execution environment;

causing display of a user interface, the user interface including first controls that enable user inspection of the debugging snapshot and at least one second control requesting resumption of the execution of the task;

for at least a threshold period of time, maintaining resources associated with execution of the task in the execution environment;

subsequent to the threshold period of time elapsing:

releasing the execution environment;

obtaining an input to the at least one second control requesting resumption of execution of the task;

configuring a second execution environment instance according to the debugging snapshot; and

in response to the input being received subsequent to the threshold period of time elapsing, resuming execution of the task in the second execution environment instance configured according to the debugging snapshot.

7 . The computer-implemented method of claim 6 , wherein the one or more criteria are obtained from a request to execute the task on the serverless computing system.

8 . The computer-implemented method of claim 6 , wherein the one or more criteria are obtained from a previous execution of the task on the serverless computing system.

9 . The computer-implemented method of claim 6 , wherein the execution environment comprises a container, and wherein the debugging snapshot comprises a checkpoint of the container.

10 . The computer-implemented method of claim 6 , wherein the one or more criteria include a quantity of debugging snapshots to generate for executions of the task.

11 . The computer-implemented method of claim 6 , wherein the user interface enables interaction with a plurality of debugging snapshots.

12 . The computer-implemented method of claim 11 , wherein the user interface enables comparisons between individual snapshots of the plurality of debugging snapshots.

13 . The computer-implemented method of claim 11 , wherein the user interface identifies a first snapshot of the plurality of debugging snapshots as containing different content than other snapshots of the plurality of debugging snapshots.

14 . The computer-implemented method of claim 6 , wherein the user interface enables specifying a snapshot retention policy.

15 . One or more non-transitory computer-readable media including computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

initiating execution of a task in an execution environment of a serverless computing system;

determining, based at least in part on the execution of the task, that one or more criteria for generating a debugging snapshot have been satisfied;

generating the debugging snapshot, wherein the debugging snapshot includes at least a portion of an execution state of the execution environment;

suspending execution of the task in the execution environment;

causing display of a user interface, the user interface including first controls that that enable user inspection of the debugging snapshot and at least one second control requesting resumption of execution of the task;

for at least a threshold period of time, maintaining resources associated with execution of the task in the execution environment;

subsequent to the threshold period of time elapsing:

releasing the execution environment;

obtaining an input to the at least one second control requesting resumption of execution of the task;

configuring a second execution environment instance according to the debugging snapshot; and

in response to the input being received subsequent to the threshold period of time elapsing, resuming execution of the task in the second execution environment instance configured according to the debugging snapshot.

16 . The one or more non-transitory computer-readable media of claim 15 , wherein the one or more criteria are included in a request to execute the task on the serverless computing system.

17 . The non-transitory computer-readable media of claim 15 , wherein the one or more criteria are obtained from the serverless computing system.

18 . The one or more non-transitory computer-readable media of claim 15 , wherein the execution of the task comprises execution of the task for a specified length of time, wherein the specified length of time comprises a time limit imposed by the serverless computing system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2026
From: LI, MEIWEN; PIWONKA, PHILIP DANIEL; GREENWOOD, CHRISTOPHER MAGEE; BHATIA, SUSHANT
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 074611/0507 →
References Cited (14)
US 10503631B1 · Talluri · 2019 [cited by examiner]
US 12360817B1 · Sathe · 2025 [cited by examiner]
US 20110225459A1 · Fahrig · 2011 [cited by examiner]
US 20150052400A1 · Garrett · 2015 [cited by examiner]
US 20150052403A1 · Garrett · 2015 [cited by examiner]
US 20150052406A1 · Garrett · 2015 [cited by examiner]
US 20150143344A1 · Davis · 2015 [cited by examiner]
US 20170300394A1 · Raut · 2017 [cited by examiner]
US 20180004556A1 · Marriner · 2018 [cited by examiner]
US 20180113793A1 · Fink · 2018 [cited by examiner]
US 20210117308A1 · Burgos · 2021 [cited by examiner]
US 20210326301A1 · Vutukuri · 2021 [cited by examiner]
US 20220091969A1 · Han · 2022 [cited by examiner]
US 20220091970A1 · Han · 2022 [cited by examiner]