Idempotent task execution in on-demand network code execution systems

    公开(公告)号:US10528390B2

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

    申请号:US16113887

    申请日:2018-08-27

    Abstract: Systems and methods are described for handling requests to execute idempotent code in an on-demand code execution system or other distributed code execution environment. Idempotent code can generally include code that produces the same outcome even when executed multiple times, so long as dependencies for the code are in the same state as during a prior execution. Due to this feature, multiple executions of idempotent code may inefficiently use computing resources, particularly in on-demand code execution system (which may require, for example, generation and provisioning of an appropriate execution environment for the code). Aspects of the present disclosure enable the on-demand code execution system to process requests to execute code by verifying whether dependency states associated with the code have changed since a prior execution. If dependency states have not changed, no execution need occur, and the overall computing resource us of the on-demand code execution system is decreased.

    EXECUTION OF AUXILIARY FUNCTIONS IN AN ON-DEMAND NETWORK CODE EXECUTION SYSTEM

    公开(公告)号:US20190391841A1

    公开(公告)日:2019-12-26

    申请号:US16017970

    申请日:2018-06-25

    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning sidecar virtual machine instances that work in conjunction with the virtual machine instance executing the submitted code. The sidecars may provide auxiliary functions on a per-task, per-user, or per-request basis, and the lifecycles of the sidecars may be determined based on the lifecycles of the virtual machine instances that execute submitted code. Auxiliary functions may thus be provided only when needed, and may be provided securely by preventing a user from accessing the sidecars of other users.

    On-demand code execution in a localized device coordinator

    公开(公告)号:US10452439B2

    公开(公告)日:2019-10-22

    申请号:US15362696

    申请日:2016-11-28

    Abstract: Systems and methods are described for implementing a coordinator within a coordinated environment, which environment includes set of coordinated devices managed by the coordinator. The coordinator can be provisioned with a set of tasks, each task corresponding to a segment of code that can be executed by the coordinator, such as to manage the coordinated devices. To assist in execution of the tasks, the coordinator can include a resource manager that generates execution environments corresponding to an individual task execution, which environments may be isolated from other execution environments. The coordinator can further include a scheduler to obtain calls to execute tasks, and implement a queue from which to select tasks for execution. On selecting a task, the scheduler may interact with the resource manager to generate an execution environment for the task, and cause execution of the task within the execution environment.

    Pre-triggers for code execution environments

    公开(公告)号:US10437629B2

    公开(公告)日:2019-10-08

    申请号:US16025694

    申请日:2018-07-02

    Abstract: Systems and methods are described for managing initialization of virtual machine instances within an on-demand code execution environment or other distributed code execution environment. Such environments utilize pre-initialized virtual machine instances to enable execution of user-specified code in a rapid manner, without delays typically caused by initialization of the virtual machine instances. However, because the number of pre-initialized virtual machine instances maintained at an on-demand code execution environment is typically limited, insufficient number of pre-initialized virtual machine instances may be available at the on-demand code execution environment during times of heavy use. Embodiments described herein utilize pre-trigger notifications to indicate to the on-demand code execution environment that subsequent requests to execute user-specified code are likely to occur. The on-demand code execution environment may therefore pre-initialize additional virtual machine instances in preparation for the subsequent requests, reducing delay that would be required to initialize the instances after obtaining to the requests.

    Processing packet data using an offload engine in a service provider environment

    公开(公告)号:US10412002B1

    公开(公告)日:2019-09-10

    申请号:US14668557

    申请日:2015-03-25

    Abstract: A method for processing packet data in a service provider environment includes, by a network-enabled data processing device within a server computer of the service provider environment, receiving packet data comprising header information and payload information. The header information is separated from the payload information. The separated header information is forwarded to a processor of the server computer for processing, without forwarding at least a portion of the payload information. At least one address of a storage location is received from the processor. The at least one address is associated with a logical-to-physical address mapping based on the header information. The payload information is stored in the storage location based on the at least one address.

    Adjusting variable limit on concurrent code executions

    公开(公告)号:US10402231B2

    公开(公告)日:2019-09-03

    申请号:US16160674

    申请日:2018-10-15

    Abstract: Systems and methods are described for adjusting a number of concurrent code executions allowed to be performed for a given user on an on-demand code execution environment or other distributed code execution environments. Such environments utilize pre-initialized virtual machine instances to enable execution of user-specified code in a rapid manner, without delays typically caused by initialization of the virtual machine instances. However, to improve utilization of computing resources, such environments may temporarily restrict the number of concurrent code executions performed on behalf of the given user to a number less than the maximum number of concurrent code executions allowed for the given user. Such environments may adjust the temporary restriction on the number of concurrent code executions based on the number of incoming code execution requests associated with the given user.

    PROGRAM CODE ALLOCATION BASED ON PROCESSOR FEATURES

    公开(公告)号:US20190166228A1

    公开(公告)日:2019-05-30

    申请号:US16264492

    申请日:2019-01-31

    Abstract: Methods, systems, and computer-readable media for program code allocation based on processor features are disclosed. Analysis of program code is performed using static analysis and/or runtime analysis. The analysis determines one or more processor features invoked by the program code. One or more program execution servers are selected from a plurality of program execution servers based at least in part on the one or more processor features invoked by the program code. One or more selected program execution servers comprise the one or more processor features invoked by the program code, and an additional one or more of the program execution servers lack the one or more processor features invoked by the program code. The program code is executed using the one or more selected program execution servers.

    Distributed transactions across multiple consensus groups

    公开(公告)号:US10282457B1

    公开(公告)日:2019-05-07

    申请号:US15016192

    申请日:2016-02-04

    Abstract: Methods, systems, and computer-readable media for distributed transactions across multiple consensus groups are disclosed. A distributed transaction system comprises a proposer and a plurality of consensus groups, including a first consensus group comprising a first plurality of members and a second consensus group comprising a second plurality of members. The proposer proposes a transaction to at least a portion of the first consensus group and at least a portion of the second consensus group. A majority of the members in the first consensus group agree to perform the transaction, where the transaction is selected from a plurality of proposed transactions involving the first consensus group. A majority of the members in the second consensus group also agree to perform the transaction. The members of the first and second consensus groups perform the transaction to update a plurality of stored replicas.

    Code execution request routing
    130.
    发明授权

    公开(公告)号:US10248467B2

    公开(公告)日:2019-04-02

    申请号:US15912273

    申请日:2018-03-05

    Abstract: A system for providing low-latency compute capacity is provided. The system may be configured to route incoming code execution requests based on user indications to use specific containers running on a plurality of virtual machine instances. The system may be configured to process a code execution request, identify, based on the user indication that a specific container previously used to handle a request of similar type is to be used for handling the code execution request, and cause the code execution request to be handled using the specific container.

Patent Agency Ranking