Predictive governing of dynamic modification of program execution capacity
First Claim
1. A computer-implemented method for automatically governing dynamic modification of program execution capacity, the method comprising:
- receiving information from a first user of a program execution service that specifies an initial quantity of computing nodes to provide program execution capacity for use in executing an indicated software program for the first user and that specifies one or more capacity modification triggers for use in later initiating automated modifications to the program execution capacity during the executing of the indicated software program, wherein each of the capacity modification triggers includes one or more criteria for use in determining if the capacity modification trigger is satisfied and includes a specified computing node quantity change, wherein the receiving of the information is performed by one or more computing systems that are configured to provide the program execution service, and wherein the program execution service has a plurality of computing nodes that are configurable to execute programs of the users of the program execution service;
automatically generating predictions of future execution capacity that will be used for the executing of the indicated software program for the first user, wherein the automatic generating of the predictions of the future execution capacity includes obtaining historical time-series data indicating prior quantities of computing nodes used to provide program execution capacity at multiple times during multiple prior executions of the indicated software program and includes generating predicted time-series data for multiple future times based on the obtained historical time-series data, and wherein the generating of the predicted time-series data for the multiple future times is performed by the one or more configured computing systems and includes determining for each of the multiple future times a range of authorized computing node quantities for that future time that has a lower bound of the range and an upper bound of the range;
after the automatic generating of the predictions of the future execution capacity, automatically determining a group of multiple of the plurality of computing nodes for use in executing the indicated software program for the first user, wherein the multiple computing nodes of the group are of the initial quantity specified by the first user, and automatically providing the multiple computing nodes of the group at a first time for use in providing the program execution capacity for the executing of the indicated software program by the first user; and
automatically managing the computing nodes of the group during the executing of the indicated software program at each of one or more of the multiple future times, wherein the automatic managing is performed by the one or more configured computing systems and includes;
automatically determining that one of the specified capacity modification triggers is currently satisfied at the future time;
automatically determining a new quantity of computing nodes of the group that would result if the specified computing node quantity change for the one satisfied specified capacity modification trigger is performed;
automatically determining if the new quantity of computing nodes is authorized based on being within the determined range of authorized computing node quantities for the future time from the generated predicted time-series data;
if it is automatically determined that the new quantity of computing nodes is authorized, automatically providing the new quantity of the computing nodes in the group for the first user at the future time by performing the specified computing node quantity change for the one satisfied specified capacity modification trigger; and
if it is not automatically determined that the new quantity of computing nodes is authorized, automatically selecting an altered quantity of computing nodes that is within the range of authorized computing node quantities for the future time, and automatically providing the altered quantity of the computing nodes in the group for the first user at the future time.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for managing program execution capacity or other capacity of computing-related hardware resources used to execute software programs, such as for a group of computing nodes that is in use executing one or more programs for a user. Dynamic modifications to the program execution capacity of the group may include adding or removing computing nodes, such as in response to automated determinations that previously specified triggers are currently satisfied, and may be automatically governed at particular times based on automatically generated predictions of program execution capacity that will be used at those times by the group, such as to verify that requested dynamic execution capacity modifications at a time are within the predicted execution capacity values for that time. 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
27 Claims
-
1. A computer-implemented method for automatically governing dynamic modification of program execution capacity, the method comprising:
-
receiving information from a first user of a program execution service that specifies an initial quantity of computing nodes to provide program execution capacity for use in executing an indicated software program for the first user and that specifies one or more capacity modification triggers for use in later initiating automated modifications to the program execution capacity during the executing of the indicated software program, wherein each of the capacity modification triggers includes one or more criteria for use in determining if the capacity modification trigger is satisfied and includes a specified computing node quantity change, wherein the receiving of the information is performed by one or more computing systems that are configured to provide the program execution service, and wherein the program execution service has a plurality of computing nodes that are configurable to execute programs of the users of the program execution service; automatically generating predictions of future execution capacity that will be used for the executing of the indicated software program for the first user, wherein the automatic generating of the predictions of the future execution capacity includes obtaining historical time-series data indicating prior quantities of computing nodes used to provide program execution capacity at multiple times during multiple prior executions of the indicated software program and includes generating predicted time-series data for multiple future times based on the obtained historical time-series data, and wherein the generating of the predicted time-series data for the multiple future times is performed by the one or more configured computing systems and includes determining for each of the multiple future times a range of authorized computing node quantities for that future time that has a lower bound of the range and an upper bound of the range; after the automatic generating of the predictions of the future execution capacity, automatically determining a group of multiple of the plurality of computing nodes for use in executing the indicated software program for the first user, wherein the multiple computing nodes of the group are of the initial quantity specified by the first user, and automatically providing the multiple computing nodes of the group at a first time for use in providing the program execution capacity for the executing of the indicated software program by the first user; and automatically managing the computing nodes of the group during the executing of the indicated software program at each of one or more of the multiple future times, wherein the automatic managing is performed by the one or more configured computing systems and includes; automatically determining that one of the specified capacity modification triggers is currently satisfied at the future time; automatically determining a new quantity of computing nodes of the group that would result if the specified computing node quantity change for the one satisfied specified capacity modification trigger is performed; automatically determining if the new quantity of computing nodes is authorized based on being within the determined range of authorized computing node quantities for the future time from the generated predicted time-series data; if it is automatically determined that the new quantity of computing nodes is authorized, automatically providing the new quantity of the computing nodes in the group for the first user at the future time by performing the specified computing node quantity change for the one satisfied specified capacity modification trigger; and if it is not automatically determined that the new quantity of computing nodes is authorized, automatically selecting an altered quantity of computing nodes that is within the range of authorized computing node quantities for the future time, and automatically providing the altered quantity of the computing nodes in the group for the first user at the future time. - View Dependent Claims (2)
-
-
3. A computer-implemented method for automatically governing dynamic modification of program execution capacity, the method comprising:
-
receiving information that specifies an initial amount of program execution capacity for a first user of a program execution service to use in executing one or more software programs and that specifies one or more capacity modification triggers for use in later initiating modifications to the program execution capacity for the first user during the executing of the one or more software programs, wherein the receiving of the information is performed by one or more computing systems that are configured to provide the program execution service, and wherein the program execution service has a plurality of computing nodes that are configurable to execute programs of multiple users; automatically generating predictions of future execution capacity that will be used for the executing of the one or more software programs for the first user at each of multiple future times, wherein the automatic generating of the predictions of the future execution capacity is performed by the one or more configured computing systems and includes determining for each of the multiple future times a range of authorized execution capacity amounts for that future time that has a lower bound of the range and an upper bound of the range; and automatically providing the program execution capacity for the first user for use in the executing of the one or more software programs, wherein the automatic providing of the program execution capacity is performed by the one or more configured computing systems and includes, at a first time, using a group of multiple of the plurality of computing nodes for the first user to provide the initial amount of program execution capacity and includes, at one of the multiple future times that is after the first time and is during the executing of the one or more software programs, automatically governing the program execution capacity based on the generated predictions by; automatically determining that one or more of the specified capacity modification triggers are satisfied, wherein the one or more satisfied specified capacity modification triggers correspond to an indicated modification to the program execution capacity for the first user that would produce a resulting new amount of the program execution capacity if the indicated modification is performed; automatically determining if the new amount of the program execution capacity is approved for the first user, wherein the new amount of the program execution capacity is determined to be approved if the new amount is within the range of authorized execution capacity amounts for the one future time; and automatically providing the new amount of the program execution capacity for the first user only if it is automatically determined that the new amount of the program execution capacity is approved for the first user, wherein the providing of the new amount of the program execution capacity includes performing the indicated modification to the program execution capacity for the first user at the one future time by modifying the computing nodes included in the group for the first user. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable medium whose contents configure a computing system to automatically govern dynamic modification of execution capacity, by performing a method comprising:
-
automatically providing execution capacity for use in executing a software program, wherein the automatic providing of the program execution capacity includes using a group of multiple computing nodes at a first time to provide an initial amount of execution capacity; automatically obtaining predictions of future execution capacity that will be used for the executing of the software program at each of one or more future times after the first time, wherein the automatic obtaining is performed by the configured computing system, wherein the obtained predictions include a determined lower execution capacity amount and a determined upper execution capacity amount for each of the one or more future times, and wherein the upper execution capacity amount at each of the one or more future times is larger than the lower execution capacity amount at that future time; and during the executing of the software program, automatically using the obtained predictions to govern the provided execution capacity by; obtaining an indication of a requested modification to the provided execution capacity for use in the executing of the software program that would produce a resulting new amount of the execution capacity if the requested modification is performed; automatically determining if the new amount of the execution capacity is approved for the executing of the software program, wherein the new amount of the execution capacity is determined to be approved if the new amount is within a range from the determined lower execution capacity amount for one of the future times to the determined upper execution capacity amount for the one future time; and automatically providing the new amount of the execution capacity only if it is automatically determined that the new amount of the execution capacity is approved for the executing of the software program, wherein the providing of the new amount of the execution capacity includes performing at the one future time the requested modification to the execution capacity for use in the executing of the software program by modifying the computing nodes included in the group. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A system configured to automatically govern dynamic modification of execution capacity, comprising:
-
one or more processors; and one or more modules that are configured to, when executed by at least one of the one or more processors, manage execution capacity by; automatically obtaining predictions of future resource usage capacity that will be used by a first user at each of one or more future times for executing one or more software programs, wherein the one or more future times are after a first time, wherein the obtained predictions include a determined lower resource usage capacity amount and a determined upper resource usage capacity amount for each of the one or more future times, and wherein the upper resource usage capacity amount at each of the one or more future times is larger than the lower resource usage capacity amount at that future time; automatically providing resource usage capacity at the first time for use by the first user in executing at least one of the one or more software programs, wherein the providing of the resource usage capacity includes using a group of multiple computing nodes to provide an initial amount of resource usage capacity; and automatically using the obtained predictions to govern the provided resource usage capacity after the first time by; obtaining an indication of a requested modification to the provided resource usage capacity for the first user that would produce a resulting new amount of the resource usage capacity if the requested modification is performed; automatically determining if the new amount of the resource usage capacity is approved for the first user, wherein the new amount of the resource usage capacity is determined to be approved if the new amount is within a range from the determined lower resource usage capacity amount for one of the future times to the determined upper resource usage capacity amount for the one future time; and automatically providing the new amount of the resource usage capacity only if it is automatically determined that the new amount of the resource usage capacity is approved for the first user, wherein the providing of the new amount of the resource usage capacity includes performing the requested modification to the resource usage capacity for the first user by modifying the computing nodes included in the group. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
Specification