Managing contingency capacity of pooled resources in multiple availability zones
First Claim
1. A computing system, comprising:
- a plurality of computing nodes, each of which comprises at least one processor and a memory;
wherein one or more reserved resource instances executing on the plurality of computing nodes implement a database service, and wherein the database service comprises a database engine head node and two or more server nodes of a distributed storage service that stores portions of database tables as respective data pages on one or more storage devices;
wherein one or more other resource instances in a resource instance pool are designated as contingency resource instances for the database service, but are not reserved for the exclusive use of the database service;
wherein, while the database engine head node is operating as expected;
the database engine head node is configured to;
receive, from a client of the database service, one or more write requests, each directed to a respective data record in a database table and specifying a modification to be made to the respective data record; and
route information about the specified modifications to particular ones of the server nodes of the distributed storage service;
the server nodes of the distributed storage service are configured to;
apply the specified modifications; and
a resource management component executing on one of the computing nodes is configured to lease one or more of the contingency resource instances to a client under a spot market model, wherein leases for the contingency resource instances are revocable by the resource management component when they are needed for the use of the database service; and
wherein, in response to determining that the database engine head node is no longer operating as expected, the resource management component is configured to;
revoke a lease for at least one of the one or more contingency resource instances;
reserve the at least one of the contingency resource instances for the exclusive use of the database service; and
instantiate another database engine head node using the at least one of the contingency resource instances.
1 Assignment
0 Petitions
Accused Products
Abstract
A network-based services provider may reserve and provision primary resource instance capacity for a given service (e.g., enough compute instances, storage instances, or other virtual resource instances to implement the service) in one or more availability zones, and may designate contingency resource instance capacity for the service in another availability zone (without provisioning or reserving the contingency instances for the exclusive use of the service). For example, the service provider may provision resource instance(s) for a database engine head node in one availability zone and designate resource instance capacity for another database engine head node in another availability zone without instantiating the other database engine head node. While the service operates as expected using the primary resource instance capacity, the contingency resource capacity may be leased to other entities on a spot market. Leases for contingency instance capacity may be revoked when needed for the given service (e.g., during failover).
-
Citations
22 Claims
-
1. A computing system, comprising:
-
a plurality of computing nodes, each of which comprises at least one processor and a memory; wherein one or more reserved resource instances executing on the plurality of computing nodes implement a database service, and wherein the database service comprises a database engine head node and two or more server nodes of a distributed storage service that stores portions of database tables as respective data pages on one or more storage devices; wherein one or more other resource instances in a resource instance pool are designated as contingency resource instances for the database service, but are not reserved for the exclusive use of the database service; wherein, while the database engine head node is operating as expected; the database engine head node is configured to; receive, from a client of the database service, one or more write requests, each directed to a respective data record in a database table and specifying a modification to be made to the respective data record; and route information about the specified modifications to particular ones of the server nodes of the distributed storage service; the server nodes of the distributed storage service are configured to; apply the specified modifications; and a resource management component executing on one of the computing nodes is configured to lease one or more of the contingency resource instances to a client under a spot market model, wherein leases for the contingency resource instances are revocable by the resource management component when they are needed for the use of the database service; and wherein, in response to determining that the database engine head node is no longer operating as expected, the resource management component is configured to; revoke a lease for at least one of the one or more contingency resource instances; reserve the at least one of the contingency resource instances for the exclusive use of the database service; and instantiate another database engine head node using the at least one of the contingency resource instances. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
performing, by one or more computers; receiving a request for database services, wherein the request specifies that a database should be deployed on the one or more computers; reserving primary resource instance capacity for the database, wherein the primary resource instance capacity is sufficient to implement the requested database; designating contingency resource instance capacity for the database; while the database operates as expected using the primary resource instance capacity; receiving and routing database queries to one or more storage nodes using the primary resource instance capacity; and leasing at least a portion of the contingency resource instance capacity on a spot market, wherein said leasing comprises providing the at least a portion of the contingency resource instance capacity for a use by an entity other than the database until and unless a trigger condition is detected indicating that it is needed by the database; detecting a trigger condition warranting use of the at least a portion of the contingency resource instance capacity by the database; and in response to said detecting the trigger condition, revoking a least on the at least a portion of the contingency resource instance capacity. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
15. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to collectively implement one or more web-based services, wherein the program instructions cause the one or more computers to perform:
-
provisioning a plurality of resource instances as a pool of reserved resource instances for one of the one or more web-based services; designating one or more other resource instances as a pool of contingency resource instances for the one of the one or more web-based services; providing the one of the one or more web-based services using resource instances in the pool of reserved resource instances; leasing at least a portion of the resource instances in the pool of contingency resource instances for use by another one of the one or more web-based services; detecting a condition warranting use of the at least a portion of the resource instances in the pool of contingency resource instances by the one of the one or more web-based services; in response to said detecting; revoking a lease on the at least a portion of the resource instances in the pool of contingency resource instances; removing the at least a portion of the resource instances in the pool of contingency resource instances from the pool of contingency resource instances; and provisioning the at least a portion of the resource instances removed from the pool of contingency resource instances as reserved resource instances for the one of the one or more web-based services. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
Specification