Database virtual partitioning
AssigneeSalesforce, Inc.
InventorSimon Y. Wong
Life of this patent
Estimating the term…
Abstract
A database with virtual partitioning. A computer system used to implement the database receives a request for a database operation to be performed on data stored in a portion of the database, where the data has a group of logical partitions (e.g., tenants of a multi-tenant database), and where the portion of the database is not further physically partitioned. The computer system identifies a virtual partitioning scheme for the database operation, the virtual partitioning scheme defining sub-groups of the group of logical partitions. The computer system then performs the database operation for the sub-groups defined by the virtual partitioning scheme. Multiple virtual partitioning schemes can be active at the same time, and virtual partitioning schemes can be created dynamically in some instances.
Claims20
A method, comprising:
- receiving, by a computer system, a request for a database operation to be performed on a set of logical partitions within a given physical partition of a database, wherein a given logical partition is dedicated to storing an entirety of data for a single tenant of the database, wherein a virtual partitioning scheme is active within the given physical partition for the request, the virtual partitioning scheme specifying a plurality of virtual partitions comprised of logical partitions, wherein at least one of the virtual partitions includes multiple logical partitions, and wherein the virtual partitioning scheme includes boundary points for the set of logical partitions that attempt to divide the set of logical partitions equally between the plurality of virtual partitions, and wherein the virtual partitioning scheme is changeable to a different virtual partition scheme having a different assignment of logical partitions to virtual partitions within the given physical partition;
- performing, by the computer system, the database operation for logical partitions within a first of the plurality of virtual partitions;
- and
- repeating, by the computer system, performance of the database operation for logical partitions in another virtual partition in the plurality of virtual partitions, wherein the repeating continues for remaining ones of the plurality of virtual partitions until the database operation has been performed on all of the set of logical partitions in the given physical partition.
A non-transitory, computer-readable storage medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising:
- receiving a request for a database operation to be performed on a set of logical partitions within a given physical partition of a database, wherein a given logical partition is dedicated to storing an entirety of data for a single tenant of the database;
- identifying, for the request, a virtual partitioning scheme that specifies a plurality of virtual partitions of the set of logical partitions within the given physical partition, wherein at least one of the plurality of virtual partitions includes multiple logical partitions, wherein the virtual partitioning scheme specifies boundary points for the set of logical partitions that attempt to divide the set of logical partitions equally between the plurality of virtual partitions, and wherein the virtual partitioning scheme is changeable to a different virtual partition scheme having a different assignment of logical partitions to virtual partitions within the given physical partition;
- performing the database operation for logical partitions within a first of the plurality of virtual partitions;
- and
- repeating the performing of the database operation for logical partitions in remaining ones of the plurality of virtual partitions until the database operation has been performed on all of the set of logical partitions in the given physical partition.
A system, comprising:
- a computer system configured to implement:
- a database server configured to access a database having at least one fixed physical partition that stores data for a set of tenants of the database in a plurality of logical partitions, wherein a given logical partition is dedicated to storing an entirety of data for a single tenant of the database;
- an application server configured to implement an application executable to:
- receive a request for a database operation to be performed on the stored data for the set of tenants;
- identify, for the request, a virtual partitioning scheme that specifies a plurality of virtual partitions for the plurality of logical partitions within the fixed physical partition, wherein at least one of the plurality of virtual partitions includes multiple logical partitions, wherein the virtual partitioning scheme specifies boundary points for the plurality of logical partitions that attempt to divide the plurality of logical partitions equally between the plurality of virtual partitions, and wherein the virtual partitioning scheme is changeable to a different virtual partition scheme having a different assignment of logical partitions to virtual partitions within the fixed physical partition;
- communicate with the database server to perform the database operation for logical partitions within an initial one of the plurality of virtual partitions;
- and
- repeat performing of the database operation for logical partitions in remaining ones of the plurality of virtual partitions until the database operation has been performed on all of the set of tenants within the fixed physical partition.
Dependencies are inferred from the claim text.