Virtualization-based transaction handling in an on-demand network code execution system

    公开(公告)号:US11119809B1

    公开(公告)日:2021-09-14

    申请号:US16447797

    申请日:2019-06-20

    Abstract: Systems and methods are described for providing virtualized transaction retries in an on-demand network code execution system. A user may generate a task on the system by submitting code. The task may include a transaction that can succeed or fail depending on external factors, such as accessing a resource that other processes are also trying to access. The system may obtain success criteria for evaluating whether the transaction was successful, and may configure a virtual machine instance to execute the submitted code. The system may generate a “snapshot” or otherwise capture information regarding the state of the virtual machine instance prior to executing the code, and may then execute the code or a portion of it to attempt the transaction. The system may then apply the success criteria to determine whether the transaction was successful, and if not may retry the transaction by restoring the snapshot and re-executing the code.

    Facilitating service connections in serverless code executions

    公开(公告)号:US11115404B2

    公开(公告)日:2021-09-07

    申请号:US16457537

    申请日:2019-06-28

    Abstract: Systems and methods are described for facilitating service connections by user-defined code executing on an on-demand code execution system. Rather than hard code state information used by network services into the code, the code can be provided with an interface that augments requests for network services with state information. When the user-defined code is executed by the on-demand code execution system, additional code can also be executed that provides the interface. The user-defined code may access the target network service through the interface, as if the target network service existed locally to an environment of the code. The interface can then augment requests to the target network service with state information. Because state information is maintained outside the user-defined code, portability of the user-defined code can be increased.

    Execution guarantees in an on-demand network code execution system

    公开(公告)号:US10884787B1

    公开(公告)日:2021-01-05

    申请号:US15275181

    申请日:2016-09-23

    Abstract: Systems and methods are described for implementing execution guarantees in an on-demand code execution system or other distributed code execution environment, such that the on-demand code execution system attempts to execute code only a desired number of times. The on-demand code execution system can utilize execution identifiers to distinguish between new and duplicative requests, and can decline to allocate computing resources for duplicative requests. The on-demand code execution system can further detect errors during execution, and rollback the execution to undo the execution's effects. The on-demand code execution system can then restart execution until the code has been execute the desired number of times.

    Event-driven computing
    116.
    发明授权

    公开(公告)号:US10824484B2

    公开(公告)日:2020-11-03

    申请号:US15595774

    申请日:2017-05-15

    Abstract: A service manages a plurality of virtual machine instances for low latency execution of user codes. The service can provide the capability to execute user code in response to events triggered on various event sources and initiate execution of other control functions to improve the code execution environment in response to detecting errors or unexpected execution results. The service may maintain or communicate with a separate storage area for storing code execution requests that were not successfully processed by the service. Requests stored in such a storage area may subsequently be re-processed by the service.

    Request-based virtual machine memory transitioning in an on-demand network code execution system

    公开(公告)号:US10713080B1

    公开(公告)日:2020-07-14

    申请号:US16045584

    申请日:2018-07-25

    Abstract: Systems and methods are described for selectively transitioning execution environments in an on-demand code execution system based on a timing of a next request to execute code within such environments. The system can predict, from a history of requests to the system, when a next call to execute code in an environment, such as a virtual machine instance, will occur. The system can then calculate and compare the relative costs of maintaining the environment in an executing state or of halting the environment and moving the environment to a lower tier of memory, each of which can be based on the predicted next call to execute code within the environment. If the relative cost of maintaining the environment in an executing state exceeds that of halting the environment and moving the environment to a lower tier of memory, the virtual machine is halted and transitioned to secondary memory.

    Dependency handling in an on-demand network code execution system

    公开(公告)号:US10564946B1

    公开(公告)日:2020-02-18

    申请号:US15841143

    申请日:2017-12-13

    Abstract: Systems and methods are described for managing dependencies among code in an on-demand code execution system in a manner that enables efficient execution of the code. A user may generate a task on the system by submitting code, which may reference additional code on the system. The system can determine a dependency graph for the submitted code, and generate packages for the task based at least partly on the dependency graph. On receiving a request to execute the task, the system can provision an execution environment with the packages, and execute the code of the task. The packages may be selected based on analysis of the dependency graph, such that execution of the task on the on-demand code execution system is expected to satisfy a desired execution metric, which may include a maximum time to begin executing code of a task subsequent to receiving a request to execute the task.

Patent Agency Ranking