Nova Patents
CA2964461C

Composite partition functions

Abstract

Composite partition function techniques are described herein that may be used to repartition a database without moving existing data. In one or more implementations, a database is partitioned in a first arrangement associated with a first partition function. The database is repartitioned to form a second arrangement associated with a second partition function. A record of key membership for data entries in the partitions existing at the time of repartitioning is created, which can be used to recognize data corresponding to the first arrangement. A composite partition function is defined for subsequent database operations that is configured to apply the first partition function for data having keys found in the record of key membership and apply the second partition function for other data having keys that are not found in the record of key membership.

CA2964461C, drawing sheet 1
Sheet 1 of 8

Term

9.1 yearsleft in the term

Expires 14 October 2035.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

41 claims: 8 independent, 33 dependent

  1. 1
    A method implemented by a computing device comprising:partitioning a database with a first partition function;and repartitioning the database by: creating a record of key membership for data entries located in partitions existing at a time of repartitioning;adding one or more new partitions associated with a second partition function;defining a composite partition function for subsequent database operations configured to: apply the first partition function for data having key values found in the record of key membership;and apply the second partition function for data having key values not found in the record of key membership, wherein the repartitioning is performed such that the data entries located in partitions existing at the time of repartitioning keep their respective locations.
  2. 10
    A computing device comprising:a processing system;and one or more modules that, when executed by the processing system, perform operations for repartitioning of a database to increase storage capacity including: creating a record of key membership for data entries located in partitions of the database existing at the time of repartitioning, partitions of the database existing at a time of repartitioning associated with a first partition function;Date Reçue/Date Received 2020-10-01 83988716 adding a new partition associated with a second partition function;and defining a composite partition function for handling of subsequent database requests configured to: apply the first partition function for data requests including key values found in the record of key membership;and apply the second partition function for data requests including key values not found in the record of key membership, such that data entries located in partitions existing at the time of repartitioning keep their respective locations in the partitions existing at the time of repartitioning.
  3. 15
    A method implemented by a computing device comprising:establishing a record of identifiers for data corresponding to a first partition function associated with a first arrangement of one or more partitions for a database;reconfiguring the arrangement of partitions for the database to add at least one additional partition to increase storage capacity in a reconfigured arrangement;generating a composite partition function that combines the first partition function associated with the first arrangement and a second partition function associated with the reconfigured arrangement, the composite partition function configured to use the record of identifiers to ascertain whether to apply the first partition function or the second partition function for routing of data requests between partitions for the database;and routing data requests using the composite partition function.
  4. 20
    A non-transitory computer-readable storage medium having stored thereon computer executable instructions, that when executed by a computer, perform the methods of any one of claims 1 to 9 and 15 to 19.
  5. 21
    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: Date Reçue/Date Received 2020-10-01 83988716 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.
  6. 29
    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 Date Reçue/Date Received 2020-10-01 83988716 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.
  7. 37
    A device comprising:a processor;and Date Reçue/Date Received 2020-10-01 83988716 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.
  8. 41
    A non-transitory computer-readable storage medium having stored thereon computer executable instructions, that when executed by a computer, perform the methods of any one of claims 29 to 36.