Execution plan generation and scheduling for network-accessible resources
First Claim
1. A system, comprising:
- a plurality of computing devices configured to implement a plurality of resources of a provider network, wherein the resources are organized into a plurality of resource pools, wherein each resource pool of the plurality of resource pools has an associated pricing policy and an associated resource usage interruptibility policy, and wherein at least one resource pool of the plurality of resource pools has a different resource usage interruptibility policy than another one of the plurality of resource pools; and
one or more computing devices configured to implement a resource manager;
wherein the resource manager is configured to;
receive a task execution query comprising a specification of a task to be performed for a client using one or more resources of the plurality of resources, wherein the specification has an associated target deadline for completion of the task and an associated budget constraint for completion of the task;
determine an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted;
in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generate an execution plan for the task, wherein the execution plan comprises using a resource of a selected resource pool to perform the at least a portion of the task, wherein the resource pool is selected from among the plurality of resource pools based at least in part on the associated pricing policy of the resource pool, the associated resource usage interruptibility policy of the resource pool, and the interruptibility characteristic of the at least a portion of the task;
provide an indication of the execution plan to the client; and
in response to a task implementation request from the client, schedule the at least a portion of the task using a particular resource from the selected resource pool.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for deadline-based pricing and scheduling of network-accessible resources are disclosed. A system includes resources organized into a plurality of pools, and a resource manager. The resource manager receives a task execution query comprising a specification of a task to be performed for the client. The specification includes the task'"'"'s deadline and a budget constraint. In response, the resource manager generates a task execution plan comprising using a resource from a selected pool to perform at least part of the task, where the pool is selected based at least partly on a pricing policy of the pool. In response to an implementation request for the task, the resource manager schedules at least a part of the task using a particular resource from the selected pool.
-
Citations
24 Claims
-
1. A system, comprising:
-
a plurality of computing devices configured to implement a plurality of resources of a provider network, wherein the resources are organized into a plurality of resource pools, wherein each resource pool of the plurality of resource pools has an associated pricing policy and an associated resource usage interruptibility policy, and wherein at least one resource pool of the plurality of resource pools has a different resource usage interruptibility policy than another one of the plurality of resource pools; and one or more computing devices configured to implement a resource manager; wherein the resource manager is configured to; receive a task execution query comprising a specification of a task to be performed for a client using one or more resources of the plurality of resources, wherein the specification has an associated target deadline for completion of the task and an associated budget constraint for completion of the task; determine an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted; in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generate an execution plan for the task, wherein the execution plan comprises using a resource of a selected resource pool to perform the at least a portion of the task, wherein the resource pool is selected from among the plurality of resource pools based at least in part on the associated pricing policy of the resource pool, the associated resource usage interruptibility policy of the resource pool, and the interruptibility characteristic of the at least a portion of the task; provide an indication of the execution plan to the client; and in response to a task implementation request from the client, schedule the at least a portion of the task using a particular resource from the selected resource pool. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
-
receiving a task execution query comprising a specification of a task to be performed for a client using one or more resources of a plurality of resources, wherein the specification has an associated target deadline for completion of the task, and wherein each resource of the plurality of resources has an associated pricing policy and an associated resource usage interruptibility policy, wherein at least one of the plurality of resources has a different resource usage interruptibility policy than another one of the plurality of resources; determining an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted; in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generating an execution plan for the task, wherein the execution plan comprises using a resource of the plurality of resources to perform the at least a portion of the task, and wherein the resource is selected from the plurality of resources based at least in part on the associated pricing policy of the resource, the resource usage interruptibility policy of the resource, the associated target deadline, and the interruptibility characteristic of the at least a portion of the task; and in response to a task implementation request from the client, scheduling the at least a portion of the task in accordance with the execution plan. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
receive a task execution query comprising a specification of a task to be performed for a client using one or more resources of a plurality of resources, wherein the specification has an associated target deadline for completion of the task, and wherein each resource of the plurality of resources has an associated pricing policy and an associated resource usage interruptibility policy, wherein at least one of the resources of the plurality of resources has a different resource usage interruptibility policy than another one of the plurality of resources; determine an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted; in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generate an execution plan for the task, wherein the execution plan comprises using a resource of the plurality of resources to perform the at least a portion of the task, wherein the resource is selected from the plurality of resources based at least in part on the associated target deadline, the associated resource usage interruptibility policy of the resource, and the interruptibility characteristic of the at least a portion of the task; and in response to a task implementation request from the client, schedule the at least a portion of the task in accordance with the execution plan. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A system, comprising:
-
a plurality of computing devices configured to implement a plurality of resources of a provider network, wherein the plurality of resources are organized into a plurality of resource pools, wherein each resource pool of the plurality of resource pools has an associated pricing policy and an associated resource usage interruptibility policy, wherein at least one of the plurality of resource pools has a different resource usage interruptibility policy than another one of the plurality of resource pools; and one or more computing devices configured to implement a resource manager; wherein the resource manager is configured to; receive a task execution query comprising a specification of a task to be performed for a client using one or more resources of the plurality of resources, wherein the query comprises a request to generate a lowest-estimated-cost execution plan for the task; determine an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted; in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generate an execution plan for the task, wherein the execution plan comprises using a resource of a selected resource pool to perform the at least a portion of the task, wherein the resource pool is selected based at least in part on the associated pricing policy of the resource pool, the associated resource usage interruptibility policy of the resource pool, and the interruptibility characteristic of the at least a portion of the task; provide an indication of an estimated cost of the plan to the client; and in response to a task implementation request from the client, schedule the at least a portion of the task using a particular resource from the selected resource pool.
-
-
24. A system, comprising:
-
a plurality of computing devices configured to implement a plurality of resource instances of a provider network; and one or more computing devices configured to implement a resource manager; wherein the resource manager is configured to; receive a task execution query comprising a specification of a task to be performed for a client using one or more of;
(a) at least a specified number of resource instances of the plurality of resources, or (b) a network transfer of at least a specified data set;determine an interruptibility characteristic of at least a portion of the task, wherein the interruptibility characteristic describes a suitability of the at least a portion of the task for being interrupted; in response to receiving the task execution query and determining the interruptibility characteristic of the at least a portion of the task, generate an execution plan for the task, wherein the execution plan comprises using one or more resource instances of the plurality of resource instances to perform the at least a portion of the task, wherein the one or more resource instances are selected based at least in part on respective pricing policies of the one or more resource instances, respective resource usage interruptibility policies of the one or more resource instances, and the interruptibility characteristic of the at least a portion of the task, wherein at least one of the plurality of resources has a different resource usage interruptibility policy than another one of the plurality of resource instances; and in response to a task implementation request from the client, schedule the at least a portion of the task using the one or more resource instances.
-
Specification