IP Library › Granted Patent US 10,248,467
Granted Patent B2
US 10,248,467 · App. 15/912,273 · Granted Apr 2, 2019

Code execution request routing

Inventors: Scott Daniel Wisniewski (Edmonds, WA); Marc John Brooker (Seattle, WA); Timothy Allen Wagner (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F9/5055G06F9/45558G06F9/5027G06F9/5077G06F2009/4557G06F2009/45562G06F2209/5011G06F2209/5013
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,248,467
App. No.
15/912,273
Granted
Apr 2, 2019
Kind
B2
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.

Claims (36)

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:

maintain a plurality of virtual machine instances on one or more physical computing devices;

in response to a first request to execute a program code, cause the program code to be executed in a container created on one of the plurality of virtual machine instances, the execution of the program code modifying one or more computing resources associated with the container;

determine, based on an amount of information stored by the execution in response to the first request, that the container is not to be shut down for at least a period of time after completion of the execution in response to the first request;

in response to the determination, refrain from shutting down the container prior to receiving a second request to execute the program code; and

in response to the second request, cause the program code to be executed in the container using the one or more computing resources associated with the container.

2. The system of claim 1 , wherein the one or more computing resources associated with the container include at least the information stored in the container by the execution in response to the first request.

3. 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 the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on an amount of information stored by the execution in response to the second request.

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 determine that the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on a frequency at which requests to execute the program code are received.

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 the container is not to be shut down for a predefined time period after completing the execution in response to the second request.

6. The system of claim 5 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to cause the container to be shut down in response to not receiving another request to execute the program code for the predefined time period.

7. A computer-implemented method comprising:

maintaining a plurality of virtual machine instances on one or more physical computing devices;

in response to a first request to execute a program code, executing the program code in a container created on one of the plurality of virtual machine instances, the execution of the program code modifying one or more computing resources associated with the container;

determining, based on an amount of information stored by the execution in response to the first request, that the container is not to be shut down for at least a period of time after completion of the execution in response to the first request;

in response to the determination, refraining from shutting down the container prior to receiving a second request to execute the program code; and

in response to the second request, executing the program code in the container using the one or more computing resources associated with the container.

8. The method of claim 7 , wherein the one or more computing resources associated with the container include at least the information stored in the container by the execution in response to the first request.

9. The method of claim 7 , further comprising determining that the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on an amount of information stored by the execution in response to the second request.

10. The method of claim 7 , further comprising determining that the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on a frequency at which requests to execute the program code are received.

11. The method of claim 7 , further comprising determining that the container is not to be shut down for a predefined time period after completing the execution in response to the second request.

12. The method of claim 11 , further comprising shutting down the container in response to not receiving another request to execute the program code for the predefined time period.

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

maintain a plurality of virtual machine instances on one or more physical computing devices;

in response to a first request to execute a program code, cause the program code to be executed in a container created on one of the plurality of virtual machine instances, the execution of the program code modifying one or more computing resources associated with the container;

determine, based on an amount of information stored by the execution in response to the first request, that the container is not to be shut down for at least a period of time after completion of the execution in response to the first request;

in response to the determination, refrain from shutting down the container prior to receiving a second request to execute the program code; and

in response to the second request, cause the program code to be executed in the container using the one or more computing resources associated with the container.

14. The non-transitory physical computer storage of claim 13 , wherein the one or more computing resources associated with the container include at least the information stored in the container by the execution in response to the first request.

15. The non-transitory physical computer storage of claim 13 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to determine that the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on an amount of information stored by the execution in response to the second request.

16. The non-transitory physical computer storage of claim 13 , wherein the instructions, when executed by the one or more processors, further configure the one or more processors to determine that the container is not to be shut down for a specific time period after completing the execution in response to the second request, wherein the specific time period is based on a frequency at which requests to execute the program code are received.

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

determine that the container is not to be shut down for a predefined time period after completing the execution in response to the second request; and

cause the container to be shut down in response to not receiving another request to execute the program code for the predefined time period.

Continuity (2)
Continuation 14977544 · Dec 21, 2015
Related Publication 20180210760A1 · Jul 26, 2018
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