Managing use of program execution capacity
First Claim
1. A computer-implemented method for a program execution service to manage execution of programs for users, the method comprising:
- after receiving a request from a first user of the program execution service to reserve a computing node to provide guaranteed availability for the first user to execute one or more programs, allocating, by one or more configured computing systems of the program execution service, one of a plurality of computing nodes provided by the program execution service to be reserved for guaranteed use by the first user;
in response to a request from the first user, initiating, by the one or more configured computing systems, execution at a first time of a first program on the allocated one computing node reserved for the first user;
receiving, by the one or more configured computing systems, a request to execute a second program of a second user on a computing node of the program execution service in a non-guaranteed manner such that the non-guaranteed execution of the second program may be terminated by the program execution service at any time;
monitoring, by the one or more configured computing systems, the execution of the first program on the allocated one computing node reserved for the first user and determining that the allocated one computing node is not currently executing any programs for the first user at a second time after the first time;
initiating, by the one or more configured computing systems, the non-guaranteed execution of the second program at the second time on the allocated one computing node on behalf of the second user; and
after receiving a request from the first user at a third time after the second time to execute one or more indicated programs on the allocated one computing node reserved for the first user,determining to terminate execution of the second program on the allocated one computing node;
terminating execution of the second program on the allocated one computing node; and
initiating execution of the one or more indicated programs on the allocated one computing node on behalf of the first user.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for managing execution of programs. In some situations, program execution is managed for multiple users using excess program execution capacity of one or more computing systems. In some such situations, excess or otherwise unused program execution capacity may be made available to execute programs on a temporary basis, such that the programs executing using the excess program execution capacity may be terminated at any time if other preferred use for the excess program execution capacity arises. The excess program execution capacity may in some situations be provided in conjunction with other dedicated program execution capacity that is allocated to particular users, such as to use unused dedicated capacity of some users as excess capacity for other users. In some situations, the techniques are used in conjunction with a fee-based program execution service that executes multiple programs on behalf of multiple users of the service.
-
Citations
31 Claims
-
1. A computer-implemented method for a program execution service to manage execution of programs for users, the method comprising:
-
after receiving a request from a first user of the program execution service to reserve a computing node to provide guaranteed availability for the first user to execute one or more programs, allocating, by one or more configured computing systems of the program execution service, one of a plurality of computing nodes provided by the program execution service to be reserved for guaranteed use by the first user; in response to a request from the first user, initiating, by the one or more configured computing systems, execution at a first time of a first program on the allocated one computing node reserved for the first user; receiving, by the one or more configured computing systems, a request to execute a second program of a second user on a computing node of the program execution service in a non-guaranteed manner such that the non-guaranteed execution of the second program may be terminated by the program execution service at any time; monitoring, by the one or more configured computing systems, the execution of the first program on the allocated one computing node reserved for the first user and determining that the allocated one computing node is not currently executing any programs for the first user at a second time after the first time; initiating, by the one or more configured computing systems, the non-guaranteed execution of the second program at the second time on the allocated one computing node on behalf of the second user; and after receiving a request from the first user at a third time after the second time to execute one or more indicated programs on the allocated one computing node reserved for the first user, determining to terminate execution of the second program on the allocated one computing node; terminating execution of the second program on the allocated one computing node; and initiating execution of the one or more indicated programs on the allocated one computing node on behalf of the first user. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for a program execution service to manage execution of programs for users, the method comprising:
-
allocating, by one or more configured computing systems of a program execution service, one or more computing nodes of the program execution service to a first user of the program execution service to provide the first user with priority access to the allocated computing nodes; determining, by the one or more configured computing systems, a group including at least one computing node of the program execution service to satisfy a request to execute a program for a second user, the at least one computing node of the determined group including one of the allocated computing nodes; initiating, by the one or more configured computing systems, execution of the program of the second user on the at least one computing node of the determined group; and after receiving an indication to execute one or more programs of the first user, determining, by the one or more configured computing systems, to terminate execution of the program of the second user on the included one allocated computing node;
terminating, by the one or more configured computing systems, execution of the program of the second user on the included one allocated computing node; andmaking the included one allocated computing node available, by the one or more configured computing systems, to execute the one or more programs of the first user based at least in part on the terminating. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computing system configured to manage execution of programs for users, comprising:
-
one or more processors; and a system manager component that is configured to, when executed by at least one of the one or more processors, manage execution of programs for users of a program execution service by; receiving an indication to execute a first program of a first user using a specified first amount of computing capacity of the program execution service; initiating execution of the first program of the first user using a group of computing resources of the program execution service that is determined to provide the first amount of computing capacity; receiving an indication of a second amount of computing capacity of the program execution service for executing a second program of a second user, the second amount of computing capacity being dedicated for executing programs of the second user in accordance with priority access of the second user to the program execution service; determining that at least some of the group of computing resources used for executing the first program of the first user is needed to provide the second amount of computing capacity to execute the second program; terminating use of the at least some computing resources to execute the first program of the first user; and initiating execution of the second program of the second user using the at least some computing resources. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A non-transitory computer-readable medium whose contents configure a computing system of a program execution service to perform a method for managing execution of programs for users, the method comprising:
-
allocating one or more computing nodes of the program execution service to a first user of the program execution service to provide the first user with priority access to the allocated computing nodes during a specified period of time; determining a group including at least one computing node of the program execution service to satisfy a request to execute a program for a second user, the at least one computing node of the determined group including one of the allocated computing nodes; initiating execution of the program of the second user on the at least one computing node of the determined group; and after receiving an indication to execute one or more programs of the first user, determining to terminate execution of the program of the second user on the included one allocated computing node; terminating execution of the program of the second user on the included one allocated computing node; and making the included one allocated computing node to be available to execute the one or more programs of the first user. - View Dependent Claims (28, 29, 30, 31)
-
Specification