Reducing execution times in an on-demand network code execution system using saved machine states

US2022012083A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2022012083-A1
Application numberUS-202117445699-A
CountryUS
Kind codeA1
Filing dateAug 23, 2021
Priority dateJul 25, 2018
Publication dateJan 13, 2022
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods are described for reducing latency to service requests to execute code on an on-demand code execution system by maintaining snapshots of virtual machine instances in a ready state to execute such code. A user may submit code to the on-demand code execution system, which code depends on other software, such as an operating system or runtime. The on-demand code execution system can generate a virtual machine instance provisioned with the other software, and initialize the instance into a state at which it is ready to execute the code. The on-demand code execution system can then generate a snapshot of the state of the instance, and halt the instance. When a request to execute the code is received, the snapshot can be used to quickly restore the instance. The code can then be executed within the instance, reducing the need to initialize the instance or maintain the instance in an executing state.

First claim

Opening claim text (preview).

1 . (canceled) 2 . A computer-implemented method comprising: generating a first software container provisioned with (i) code submitted by a user for execution on an on-demand code execution system and (ii) a runtime on which execution of the code depends; initializing the runtime on the first software container into a ready state for execution of the code; generating a checkpoint of the first software container at a time that the runtime on the first software container is initialized into the ready state for execution of the code; storing the checkpoint as an execution-ready checkpoint for the code; obtaining a request to execute the code, the request corresponding to the user of the on-demand code execution system; and in response to the request to execute the code, generating, from the execution-ready checkpoint for the code that reflects the checkpoint of the first software container at a time that the runtime on the first software container is initialized into the ready state for execution of the code, a second software container in the ready state for execution of the code, including the initialized runtime, and executing the code within the second software container. 3 . The computer-implemented method of claim 2 , further comprising halting execution of the first software container after generating the checkpoint, wherein generating the second software container from the execution-ready checkpoint for the code comprises generating a new software container and updating the new software container, using the execution-ready checkpoint for the code, to match the ready state. 4 . The computer-implemented method of claim 2 , wherein generating the second software container from the execution-ready checkpoint for the code comprises modifying an executing software container, using the execution-ready checkpoint for the code, to match the ready state. 5 . The computer-implemented method of claim 2 , wherein generating the first software container provisioned with the runtime comprises provisioning the first software container with additional dependency data required to place the runtime into the ready state for execution of the code. 6 . The computer-implemented method of claim 2 , wherein generating the first software container provisioned with the runtime comprises: obtaining a second checkpoint, the second checkpoint reflecting state of a third software container provisioned with the runtime; generating the first software container from the second checkpoint of the third software container; and provisioning the first software container with additional dependency data required to place the runtime into the ready state for execution of the code. 7 . The computer-implemented method of claim 6 , wherein the second checkpoint of is selected from a plurality of checkpoints based at least in part on one or more dependencies on which execution of the code depends, that are initialized on the third software container whose state is captured within the second checkpoint. 8 . The computer-implemented method of claim 2 , wherein initializing the runtime on the first software container into the ready state for execution of the code comprises executing an initialization portion of the code within the first software container. 9 . One or more non-transitory computer-readable media comprising instructions that, when executed by a computing system, cause the computing system to: generate a first software container provisioned with (i) code submitted by a user for execution on an on-demand code execution system and (ii) a runtime on which execution of the code depends; initialize the runtime on the first software container into a ready state for execution of the code; generate a checkpoint of the first software container at a time that the runtime on the first software container is initialized into the ready state for execution of the code; store the check as an execution-ready checkpoint for the code; obtain a request to execute the code; and in response to the request to execute the code, generate, from the execution-ready checkpoint, a second software container in the ready state for execution of the code, including the initialized runtime, and execute the code within the second software container. 10 . The non-transitory computer-readable media of claim 9 , wherein the instructions cause the computing system to generate the first software container at least partly by: identifying one or more dependencies on which execution of the code depends; selecting a second checkpoint storing a state of a software container initialized with the one or more dependencies; and generating the first software container based on the second checkpoint. 11 . The non-transitory computer-readable media of claim 10 , wherein the second checkpoint is selected from a plurality of checkpoints based at least in part on the one or more dependencies on which execution of the code depends, that are initialized on the software container whose state is captured within the second checkpoint. 12 . The non-transitory computer-readable media of claim 9 , wherein the instructions cause the computing system to initialize the runtime on the first checkpoint into the ready state for execution of the code based at least partly on executing an initialization portion of the code. 13 . The non-transitory computer-readable media of claim 12 , wherein the request to execute the code comprises parameters to be passed to an execution of the code, and wherein executing an initialization portion of the code places the execution of the code in a state corresponding to a location, within the code, at which the parameters are processed by the execution. 14 . The non-transitory computer-readable media of claim 9 , wherein the instructions cause the computing system to generate the second software container from the execution-ready snapshot for the code at least partly by at least one of generating a new software container and updating the new software container to match the ready state or modifying an executing software container to match the ready state. 15 . A system comprising: a data store including an execution-ready checkpoint for code submitted by a user for execution on an on-demand code execution system, wherein execution of the code depends on a runtime, and wherein the execution-ready checkpoint for the code records a state of a first software container provisioned with the code at a time that the runtime on the first software container is initialized into a ready state for executing the code; and one or more computing devices configured with specific executable instructions to: obtain a request to execute the code, the request corresponding to the user of the on-demand code execution system; and in response to the request to execute the code, generate, from the execution-ready checkpoint, a second software container including the initialized runtime and execute the code within the second virtual machine instance. 16 . The system of claim 15 , wherein the one or more computing devices are further configured to generate the execution-ready checkpoint for code, and wherein to generate the execution-ready snapshot for the code, the one or more computing devices are configured with specific executable instructions to: identify one or more dependencies on which execution of the code depends; select a second checkpoint, the second checkpoint storing a state of a container initialized with the one or more dependencies; generate the first software container based on the second checkpoint; and generate the execution-ready

Assignees

Inventors

Classifications

  • Starting, stopping, suspending or resuming virtual machine instances · CPC title

  • involving virtual machines · CPC title

  • Using snapshots, i.e. a logical point-in-time copy of the data · CPC title

  • Point-in-time backing up or restoration of persistent data · CPC title

  • Virtual · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2022012083A1 cover?
Systems and methods are described for reducing latency to service requests to execute code on an on-demand code execution system by maintaining snapshots of virtual machine instances in a ready state to execute such code. A user may submit code to the on-demand code execution system, which code depends on other software, such as an operating system or runtime. The on-demand code execution syste…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/1446. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).