IP Library › Granted Patent US 10,824,484
Granted Patent B2
US 10,824,484 · App. 15/595,774 · Granted Nov 3, 2020

Event-driven computing

Inventors: Timothy Allen Wagner (Seattle, WA); Ajay Nair (Seattle, WA); Marc John Brooker (Seattle, WA); Scott Daniel Wisniewski (Edmonds, WA)
Assignee: AMAZON TECHNOLOGIES, INC.
G06F9/542G06F9/45508G06F9/45533G06F9/45558G06F9/5077G06F9/547G06F11/301G06F11/3006H04L41/06G06F2009/4557G06F2009/45562G06F2009/45575G06F2209/544G06F2209/548
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 10,824,484
App. No.
15/595,774
Granted
Nov 3, 2020
Kind
B2
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.

Claims (40)

1. A system, comprising:

one or more processors; and

one or more memories, the one or more memories having stored thereon instructions, which, when executed by the one or more processors, configure the one or more processors to:

receive, from a user computing device over a network, a request to execute a user-provided program code on behalf of a user associated with the user computing device, the request including one or more parameters;

cause a virtual machine instance to initiate execution of the user-provided program code based on the one or more parameters included in the request;

prior to completion of the execution in response to the request received from the user computing device, modify at least one of the user-provided program code or the one or more parameters included in the request; and

subsequent to the modification of the at least one of the user-provided program code or the one or more parameters, cause the user-provided program code to be executed based on the one or more parameters,

wherein the modification comprises modifying the one or more parameters such that an amount of computing resource allocated for executing the user-provided program code is adjusted.

2. The system of claim 1 , wherein the modification comprises performing a rollback of the user-provided program code to an older version.

3. The system of claim 1 , wherein the modification comprises performing an update of the user-provided program code to a newer version.

4. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to cause the request to be stored in a storage area such that the request can be processed again at a later time.

5. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to:

determine that a first amount of computing resource specified by the one or more parameters is insufficient for executing the user-provided program code; and

modify the one or more parameters to specify a second amount of computing resource greater than the first amount.

6. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to throttle requests to execute the user-provided program code such that a rate at which computing resources are used to execute the user-provided program code is decreased.

7. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to increase a frequency at which one or more metrics are logged.

8. A computer-implemented method comprising:

receiving, from a user computing device over a network, a request to execute a user-provided program code on behalf of a user associated with the user computing device, wherein the user-provided program code is associated with one or more parameters;

causing a virtual machine instance to initiate execution of the user-provided program code based on the one or more parameters included in the request;

prior to completion of the execution in response to the request received from the user computing device, modifying at least one of the user-provided program code or the one or more parameters included in the request; and

subsequent to the modification of the at least one of the user-provided program code or the one or more parameters, executing the user-provided program code based on the one or more parameters,

wherein the modification comprises modifying the one or more parameters such that an amount of computing resource allocated for executing the user-provided program code is adjusted.

9. The computer-implemented method of claim 8 , wherein the modification comprises performing a rollback or an update of the user-provided program code to another version.

10. The computer-implemented method of claim 8 , further comprising storing the request in a storage area such that the request can be processed again at a later time.

11. The computer-implemented method of claim 8 , further comprising:

determining that a first amount of computing resource specified by the one or more parameters is insufficient for executing the user-provided program code; and

modifying the one or more parameters to specify a second amount of computing resource greater than the first amount.

12. The computer-implemented method of claim 8 , further comprising throttling requests to execute the user-provided program code such that a rate at which computing resources are used to execute the user-provided program code is decreased.

13. Non-transitory physical computer storage storing instructions, which, when executed by one or more computing devices, configure the one or more computing devices to:

receive, from a user computing device over a network, a request to execute a user-provided program code on behalf of a user associated with the user computing device, wherein the user-provided program code is associated with one or more parameters;

cause a virtual machine instance to initiate execution of the user-provided program code based on the one or more parameters included in the request;

prior to completion of the execution in response to the request received from the user computing device, modify at least one of the user-provided program code or the one or more parameters included in the request; and

subsequent to the modification of the at least one of the user-provided program code or the one or more parameters, cause the user-provided program code to be executed based on the one or more parameters,

wherein the modification comprises modifying the one or more parameters such that an amount of computing resource allocated for executing the user-provided program code is adjusted.

14. The non-transitory physical computer storage of claim 13 , wherein the modification comprises performing a rollback or an update of the user-provided program code to another version.

15. The non-transitory physical computer storage of claim 13 , wherein the instructions, when executed by the one or more computing devices, further configure the one or more computing devices to cause the request to be stored in a storage area such that the request can be processed again at a later time.

16. The non-transitory physical computer storage of claim 13 , wherein the instructions, when executed by the one or more computing devices, further configure the one or more computing devices to:

determine that a first amount of computing resource specified by the one or more parameters is insufficient for executing the user-provided program code; and

modifying the one or more parameters to specify a second amount of computing resource greater than the first amount.

17. The non-transitory physical computer storage of claim 13 , wherein the instructions, when executed by the one or more computing devices, further configure the one or more computing devices to throttle requests to execute the user-provided program code such that a rate at which computing resources are used to execute the user-provided program code is decreased.

Continuity (2)
Continuation 14869879 · Sep 29, 2015
Related Publication 20170371724A1 · Dec 28, 2017
Cited By (8)
US 12,314,752 US 12,321,766 US 12,327,133 US 12,381,878 US 12,476,978 US 12,671,671 US 12,724,647 US 12,726,444