Versioning of database partition maps
First Claim
1. A computing system, comprising:
- a plurality of physical computing nodes that implement a distributed data store configured to;
receive a request to store data on behalf of one of a plurality of clients; and
in response to said receiving, create a virtual relational database in which to store the data, wherein in creating the virtual relational database, the plurality of computing nodes are collectively configured to;
divide the data into two or more partitions, andstore each partition of the data in a respective relational database on one of the plurality of computing nodes; and
subsequent to said creating;
monitor accesses to at least one of the partitions of the data that is stored in the virtual relational database;
determine, based at least in part on said monitoring, whether to change the partitioning of the data that is stored in the virtual relational database;
in response to determining that the partitioning of the data should be changed, automatically change the partitioning of at least a portion of the data that is stored in the virtual relational database.
1 Assignment
0 Petitions
Accused Products
Abstract
System and methods for managing versions of partition maps in a distributed data store are disclosed. A relational database may use partition maps to indicate the location of data in a particular partition, or in a replica thereof. These partition maps may be versioned using a two-stage mechanism in which partition map updates are communicated to all nodes, or to affected nodes only, and in which operation may continue without waiting for acknowledgment of their application to each node. The system may handle minor partition changes differently than major partition changes. For example, if a replica of a partition is promoted to be a primary copy due to hardware or network failures, partition map changes may only be propagated to nodes in the same replica group. For major partition changes (e.g., splits, moves, mergers, added partitions, or size change), a new partition map may be made available to all nodes.
-
Citations
19 Claims
-
1. A computing system, comprising:
a plurality of physical computing nodes that implement a distributed data store configured to; receive a request to store data on behalf of one of a plurality of clients; and in response to said receiving, create a virtual relational database in which to store the data, wherein in creating the virtual relational database, the plurality of computing nodes are collectively configured to; divide the data into two or more partitions, and store each partition of the data in a respective relational database on one of the plurality of computing nodes; and subsequent to said creating; monitor accesses to at least one of the partitions of the data that is stored in the virtual relational database; determine, based at least in part on said monitoring, whether to change the partitioning of the data that is stored in the virtual relational database; in response to determining that the partitioning of the data should be changed, automatically change the partitioning of at least a portion of the data that is stored in the virtual relational database. - View Dependent Claims (2, 3, 4, 5)
-
6. A computer-implemented method, comprising:
-
receiving a request to store data; subsequent to said receiving, creating a virtual relational database in which to store the data, wherein said creating the virtual relational database comprises; dividing data into two or more partitions; storing each partition of the data in a respective relational database on one of a plurality of computing nodes; and subsequent to said creating; monitoring accesses to at least one of the partitions of the data stored in the virtual relational database; determining that partitioning of the data stored in the virtual relational database should be changed, said determining that the partitioning of the data should be changed is based, at least in part, on said monitoring; and in response to determining that the partitioning of the data stored in the virtual relational database should be changed, automatically changing the partitioning of at least a portion of the data stored in the virtual relational database. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. 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 perform:
-
creating a virtual relational database in which to store data on behalf of one or more clients, wherein said creating the virtual relational database comprises; dividing the data into two or more partitions; and storing each of the two or more partitions in a respective relational database; and subsequent to said creating; monitoring accesses to at least one of the partitions of the data stored in the virtual relational database; determining that the data stored in the virtual relational database should be re-partitioned, said determining that the data stored in the virtual relational database should be re-partitioned is based, at least in part, on said monitoring; and in response to determining that the data stored in the virtual relational database should be re-partitioned, automatically initiating a re-partitioning of at least a portion of the data stored in the virtual relational database. - View Dependent Claims (18, 19)
-
Specification