Partitioning and rebalancing data storage
First Claim
Patent Images
1. A device comprising:
- a processor; and
a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor, cause the processor to control the device to perform operations for repartitioning a database to increase a storage capacity, the operations including;
creating a first membership record of a plurality of first keys corresponding to a plurality of first data entries, respectively, in a first partition associated with a first partition function, wherein the first data entries represent the database existing prior to adding a new partition;
adding, to the database of the first partition, a second partition associated with a second partition function; and
implementing a composite partition function to the database such that the first data entries existed in the first partition prior to adding the second partition keep their respective locations in the first partition, wherein, upon implementing the composite partition function, the device is controlled to perform operations of;
receiving a first request for a first requested data entry in the database;
applying the first partition function to locate the first requested data entry in the first partition when the first membership record includes a first key corresponding to the first requested data entry; and
applying the second partition function to locate the first requested data entry in the second partition when the first membership record does not include a first key corresponding to the first requested data entry.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for partitioning and rebalancing data storage, such as through management of database partitions. In one or more implementations, a database that includes existing partitions is repartitioned to include new partitions. A balancing function that uses a skew factor is implemented that skews new data allocation to the new partitions. In at least some implementations, the skew factor can be removed from new data allocation, such as in response to an indication that data allocation between the new partitions and the existing partitions is unbalanced.
17 Citations
20 Claims
-
1. A device comprising:
-
a processor; and a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor, cause the processor to control the device to perform operations for repartitioning a database to increase a storage capacity, the operations including; creating a first membership record of a plurality of first keys corresponding to a plurality of first data entries, respectively, in a first partition associated with a first partition function, wherein the first data entries represent the database existing prior to adding a new partition; adding, to the database of the first partition, a second partition associated with a second partition function; and implementing a composite partition function to the database such that the first data entries existed in the first partition prior to adding the second partition keep their respective locations in the first partition, wherein, upon implementing the composite partition function, the device is controlled to perform operations of; receiving a first request for a first requested data entry in the database; applying the first partition function to locate the first requested data entry in the first partition when the first membership record includes a first key corresponding to the first requested data entry; and applying the second partition function to locate the first requested data entry in the second partition when the first membership record does not include a first key corresponding to the first requested data entry. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for repartitioning a database, comprising:
-
creating a first membership record of a plurality of first keys corresponding to a plurality of first data entries, respectively, in a first partition associated with a first partition function, wherein the first data entries represent the database existing prior to adding a new partition; adding, to the database of the first partition, a second partition associated with a second partition function; and implementing a composite partition function to the database such that the first data entries existed in the first partition prior to adding the second partition keep their respective locations in the first partition, wherein implementing the composite partition function comprises; receiving a first request for a first requested data entry in the database; applying the first partition function to locate the first requested data entry in the first partition when the first membership record includes a first key corresponding to the first requested data entry; and applying the second partition function to locate the first requested data entry in the second partition when the first membership record does not include a first key corresponding to the first requested data entry. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A device comprising:
-
a processor; and a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor, cause the processor to control the device to perform functions for implementing a composite partition function to a database such that data entries existed in a first partition of the database prior to adding a second partition keep their respective locations in the first partition, the functions comprising; creating a membership record of a plurality of keys corresponding to a plurality of data entries, respectively, in the first partition, the data entries representing the database existing prior to adding the second partition; receiving a request for a data entry in the database; determining whether a key corresponding to the requested data entry is found in the membership record; searching the first partition to locate the requested data entry when it is determined that a key corresponding to the requested data entry is found in the membership record; and searching the second partition to locate the requested data entry when it is determined that a key corresponding to the requested data entry is not found in the membership record. - View Dependent Claims (18, 19, 20)
-
Specification