IP Library › Granted Patent US 10,853,112
Granted Patent B2
US 10,853,112 · App. 16/544,696 · Granted Dec 1, 2020

Stateful virtual compute system

Inventors: Timothy Allen Wagner (Seattle, WA); Sean Philip Reque (Everett, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45533G06F9/45558G06F9/4881G06F11/3668H04L67/10G06F2009/4557G06F2009/45562G06F2009/45575G06F2009/45591
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,853,112
App. No.
16/544,696
Granted
Dec 1, 2020
Kind
B2
Abstract

A system for providing a stateful virtual compute system is provided. The system may be configured to maintain a plurality of virtual machine instances. The system may be further configured to receive a request to execute a program code and select a virtual machine instance to execute the program code on the selected virtual machine instance. The system may further associate the selected virtual machine instance with shared resources and allow program codes executed in the selected virtual machine instance to access the shared resources.

Claims (39)

1. A system, comprising:

one or more hardware computing devices configured to execute specific computer-executable instructions to at least:

determine that a first event configured to trigger execution of a first program code has occurred;

initiate a first execution of the first program code on a first virtual machine instance, wherein the first virtual machine instance is associated with a first shared resource in a first state, and wherein the first program code causes the first state of the first shared resource to be modified during the first execution of the first program code on the first virtual machine instance to a second state of the first shared resource different from the first state of the first shared resource;

determine that a second event configured to trigger execution of the first program code has occurred; and

subsequent to the first execution of the first program code on the first virtual machine instance, initiate a second execution of the first program code on one of the first virtual machine instance or a second virtual machine instance different from the first virtual machine instance, wherein the first program code accesses, during the second execution of the first program code on one of the first virtual machine instance or the second virtual machine instance, the second state of the first shared resource.

2. The system of claim 1 , wherein the first event is an upload of a file, and wherein the upload of the file is configured to trigger execution of the first program code.

3. The system of claim 1 , wherein the one or more hardware computing devices are further configured to execute the specific computer-executable instructions to determine that the first event has occurred in response to receiving a code execution request identifying the first program code.

4. The system of claim 1 , wherein the one or more hardware computing devices are further configured to execute the specific computer-executable instructions to release one or more resources allocated to the first virtual machine instance after a threshold amount of time has passed without executing one or more program codes.

5. The system of claim 1 , wherein the second execution of the first program code is initiated on the second virtual machine instance different from the first virtual machine instance on which the first execution of the first program code was initiated.

6. The system of claim 1 , wherein the one or more hardware computing devices are further configured to execute the specific computer-executable instructions to remove, in response to terminating the first virtual machine instance, data created or modified by the first program code from the first shared resource.

7. The system of claim 1 , wherein the first program code is no longer able to access the second state of the first shared resource after the first virtual machine instance is terminated.

8. The system of claim 1 , wherein the one or more hardware computing devices are further configured to execute the specific computer-executable instructions to:

determine, based on account metadata associated with the first program code, the first shared resource is to be made accessible during execution of the first program code; and

associate the first virtual machine instance with the first shared resource such that the first shared resource is accessible during execution of the first program code.

9. The system of claim 8 , wherein associating the first virtual machine instance with the first shared resource comprises one of attaching the first shared resource to the first virtual machine instance, establishing a connection between the first virtual machine instance and the first shared resource, or recording an association between the first virtual machine instance and the first shared resource in a database.

10. A computer-implemented method, as implemented by one or more computing devices configured with specific executable instructions, the computer-implemented method comprising:

determining that a first event configured to trigger execution of a first program code has occurred;

initiating a first execution of the first program code on a first virtual machine instance, wherein the first virtual machine instance is associated with a first shared resource in a first state, and wherein the first program code causes the first state of the first shared resource to be modified during the first execution of the first program code on the first virtual machine instance to a second state of the first shared resource different from the first state of the first shared resource;

determining that a second event configured to trigger execution of the first program code has occurred; and

subsequent to the first execution of the first program code on the first virtual machine instance, initiating a second execution of the first program code on one of the first virtual machine instance or a second virtual machine instance different from the first virtual machine instance, wherein the first program code accesses, during the second execution of the first program code on one of the first virtual machine instance or the second virtual machine instance, the second state of the first shared resource.

11. The computer-implemented method of claim 10 , wherein the first event is an upload of a file, and wherein the upload of the file is configured to trigger execution of the first program code.

12. The computer-implemented method of claim 10 , further comprising determining that the first event has occurred in response to receiving a code execution request identifying the first program code.

13. The computer-implemented method of claim 10 , further comprising releasing one or more resources allocated to the first virtual machine instance after a threshold amount of time has passed without executing one or more program codes.

14. The computer-implemented method of claim 10 , wherein the second execution of the first program code is initiated on the second virtual machine instance different from the first virtual machine instance on which the first execution of the first program code was initiated.

15. The computer-implemented method of claim 10 , further comprising:

determining, based on account metadata associated with the first program code, the first shared resource is to be made accessible during execution of the first program code; and

associating the first virtual machine instance with the first shared resource such that the first shared resource is accessible during execution of the first program code.

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

determine that a first event configured to trigger execution of a first program code has occurred;

initiate a first execution of the first program code on a first virtual machine instance, wherein the first virtual machine instance is associated with a first shared resource in a first state, and wherein the first program code causes the first state of the first shared resource to be modified during the first execution of the first program code on the first virtual machine instance to a second state of the first shared resource different from the first state of the first shared resource;

determine that a second event configured to trigger execution of the first program code has occurred; and

subsequent to the first execution of the first program code on the first virtual machine instance, initiate a second execution of the first program code on one of the first virtual machine instance or a second virtual machine instance different from the first virtual machine instance, wherein the first program code accesses, during the second execution of the first program code on one of the first virtual machine instance or the second virtual machine instance, the second state of the first shared resource.

17. The non-transitory physical computer storage of claim 16 , wherein the first event is an upload of a file, and wherein the upload of the file is configured to trigger execution of the first program code.

18. The non-transitory physical computer storage of claim 16 , wherein the computer executable instructions, when executed by the one or more computing devices, further configure the one or more computing devices to determine that the first event has occurred in response to receiving a code execution request identifying the first program code.

19. The non-transitory physical computer storage of claim 16 , wherein the second execution of the first program code is initiated on the second virtual machine instance different from the first virtual machine instance on which the first execution of the first program code was initiated.

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

determine, based on account metadata associated with the first program code, the first shared resource is to be made accessible during execution of the first program code; and

associate the first virtual machine instance with the first shared resource such that the first shared resource is accessible during execution of the first program code.

Continuity (3)
Continuation 15450795 · Mar 6, 2017
Continuation 14614141 · Feb 4, 2015
Related Publication 20200142724A1 · May 7, 2020
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