Scalable relational database service
First Claim
1. A computer-implemented method, comprising:
- an administrative server receiving a request, made on behalf of a user of a service that provides relational database management services, for at least one of the relational database management services, wherein the request comprises data to be maintained by the service, a namespace identifier, and a partition key;
in response to said receiving, the administrative server automatically creating a virtual relational database associated with the namespace identifier, wherein said creating comprises;
dividing the data to be maintained by the service into two or more partitions, wherein the data is divided into the two or more partitions according to the partition key;
storing each partition of the data in a respective relational database on one of a plurality of computing nodes; and
storing a replica of each partition of the data in a respective relational database on a respective other one of the plurality of computing nodes;
a client library receiving a query request directed to the virtual relational database, wherein the query request comprises information usable to generate a value of the partition key for the query; and
in response to said receiving a query request, the client library;
generating the partition key value for the query; and
automatically routing the query request to at least one of the plurality of computing nodes dependent, at least in part, on the generated partition key value.
1 Assignment
0 Petitions
Accused Products
Abstract
System and methods for providing a Scalable Relational Database Service (SRDBS) are disclosed. SRDBS may allow a subscriber to lease/rent a virtual relational database (a.k.a. namespace) with a specified allocation of disk space, CPU resources and/or I/O resources. The namespace may resemble a physical RDBMS, and may allow client applications to perform SQL queries. SRDBS may partition a subscriber'"'"'s database across multiple database servers automatically and may replicate each partition automatically. SRDBS may provide automatic routing of client queries to the appropriate database server holding the required data. The routing process may mask temporary data outages due to database replica failures, network failures, and/or repartitioning operations. SRDBS may employ partition maps to convey the location of data to client-side routing functions. These partition maps may use a multi-versioning scheme. SRDBS may provide a resource isolation mechanism that limits the resource utilization of each namespace to its specified allocation.
-
Citations
45 Claims
-
1. A computer-implemented method, comprising:
-
an administrative server receiving a request, made on behalf of a user of a service that provides relational database management services, for at least one of the relational database management services, wherein the request comprises data to be maintained by the service, a namespace identifier, and a partition key; in response to said receiving, the administrative server automatically creating a virtual relational database associated with the namespace identifier, wherein said creating comprises; dividing the data to be maintained by the service into two or more partitions, wherein the data is divided into the two or more partitions according to the partition key; storing each partition of the data in a respective relational database on one of a plurality of computing nodes; and storing a replica of each partition of the data in a respective relational database on a respective other one of the plurality of computing nodes; a client library receiving a query request directed to the virtual relational database, wherein the query request comprises information usable to generate a value of the partition key for the query; and in response to said receiving a query request, the client library; generating the partition key value for the query; and automatically routing the query request to at least one of the plurality of computing nodes dependent, at least in part, on the generated partition key value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computing system, comprising one or more computing nodes configured to implement:
-
a plurality of database servers; an administrative server; and a client library; wherein the administrative server is configured to; receive a request, made on behalf of a user of a service that provides relational database management services, for at least one of the relational database management services, wherein the request comprises data to be maintained by the service, a namespace identifier, and a partition key; in response to said receiving, automatically create a virtual relational database associated with the namespace identifier, wherein said creating comprises; dividing the data to be maintained by the service into two or more partitions, wherein the data is divided into the two or more partitions according to the partition key; initiating storage of each partition of the data in a respective relational database on one of the plurality of database servers; and initiating storage of a replica of each partition of the data in a respective relational database on a respective other one of the plurality of database servers; wherein the client library is configured to; receive a query request directed to the virtual relational database, wherein the query request comprises information usable to generate a value of the partition key for the query; and in response to said receiving a query request; generate the partition key value for the query; and automatically route the query request to at least one of the plurality of database servers dependent, at least in part, on the generated partition key value. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computing system, comprising:
-
one or more processors; and a memory coupled to the processor and configured to store program instructions executable by the one or more processors to implement; an administrative server receiving a request, made on behalf of a user of a service that provides relational database management services, for at least one of the relational database management services, wherein the request comprises data to be maintained by the service, a namespace identifier, and a partition key; in response to said receiving, the administrative server automatically creating a virtual relational database associated with the namespace identifier, wherein said creating comprises; dividing the data to be maintained by the service into two or more partitions, wherein the data is divided into the two or more partitions according to the partition key; initiating storage of each partition of the data in a respective relational database on one of a plurality of computing nodes; and initiating storage of a replica of each partition of the data in a respective relational database on a respective other one of the plurality of computing nodes; a client library receiving a query request directed to the virtual relational database, wherein the query request comprises information usable to generate a value of the partition key for the query; and in response to said receiving a query request, the client library; generating the partition key value for the query; automatically routing the query request to at least one of the plurality of computing nodes dependent, at least in part, on the generated partition key value; and returning results of the query request. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38)
-
-
39. A non-transitory, computer-readable storage medium storing program instructions computer-executable to implement:
-
an administrative server receiving a request, made on behalf of a user of a service that provides relational database management services, for at least one of the relational database management services, wherein the request comprises data to be maintained by the service, a namespace identifier, and a partition key; in response to said receiving, the administrative server automatically creating a virtual relational database associated with the namespace identifier, wherein said creating comprises; dividing the data to be maintained by the service into two or more partitions, wherein the data is divided into the two or more partitions according to the partition key; initiating storage of each partition of the data in a respective relational database on one of a plurality of computing nodes; and initiating storage of a replica of each partition of the data in a respective relational database on a respective other one of the plurality of computing nodes; a client library receiving a query request directed to the virtual relational database, wherein the query request comprises information usable to generate a value of the partition key for the query; and in response to said receiving the query request, the client library; generating the partition key value for the query; automatically routing the query request to at least one of the plurality of computing nodes dependent, at least in part, on the generated partition key value; and returning results of the query request. - View Dependent Claims (40, 41, 42, 43, 44, 45)
-
Specification