Providing consistent tenant experiences for multi-tenant databases
First Claim
1. A distributed database system, the distributed database system comprising:
- one or more processors;
system memory;
a plurality of nodes;
a plurality of databases distributed across the plurality of nodes;
a virtualization module, using the one or more processors, configured to;
initiate import of a one or more data portions into the distributed database system, the one or more data portions associated with a first tenant of the distributed database system, including for each of the one or more data portions;
schedule the data portion for insertion into an appropriate database for the first tenant through reference to a partition map for the distributed database system, the appropriate database for the first tenant included in the plurality of databases;
prior to completely importing the one or more data portions, suspend importing of the one or more data portions to free up resources for importing one or more other data portions to the distributed database system, the one or more other data portions associated with a second different tenant of the distributed database system;
subsequent to suspending import of the one or more data portions, initiate import of the one or more other data portions into the distributed database system, including for each of the one or more other data portions;
schedule the other data portion for insertion into an appropriate database for the second tenant through reference to the partition map, the appropriate database for the first tenant included in the plurality of databases.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for providing consistent tenant experiences at multi-tenant database. Embodiments of the invention include an import service that facilitates data imports without any distribution logic on a tenant. A tenant (caller) provides data in essentially any order. The import service understands the distribution of data across multiple databases and determines for any given piece of import data what database the import data is to be inserted into. Accordingly, the tenant (caller) is relieved from having to know how the data is distributed across a set (of potentially hundreds or thousands) of databases. The import service can optimize an import process to provide load balancing and fairness across a dynamic distributed database system. For example, the import service can insure that a large import by one tenant does not deprive the import other tenants of appropriate resources.
10 Citations
20 Claims
-
1. A distributed database system, the distributed database system comprising:
-
one or more processors; system memory; a plurality of nodes; a plurality of databases distributed across the plurality of nodes; a virtualization module, using the one or more processors, configured to; initiate import of a one or more data portions into the distributed database system, the one or more data portions associated with a first tenant of the distributed database system, including for each of the one or more data portions; schedule the data portion for insertion into an appropriate database for the first tenant through reference to a partition map for the distributed database system, the appropriate database for the first tenant included in the plurality of databases; prior to completely importing the one or more data portions, suspend importing of the one or more data portions to free up resources for importing one or more other data portions to the distributed database system, the one or more other data portions associated with a second different tenant of the distributed database system; subsequent to suspending import of the one or more data portions, initiate import of the one or more other data portions into the distributed database system, including for each of the one or more other data portions; schedule the other data portion for insertion into an appropriate database for the second tenant through reference to the partition map, the appropriate database for the first tenant included in the plurality of databases. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for use at a computer system, the computer system including a processor and system memory, the method for providing a consistent user experience when importing data into databases maintained by a distributed database system, the method comprising:
-
initiating import of a one or more data portions into the distributed database system, the one or more data portions associated with a first tenant of the distributed database system, including for each of the one or more data portions; scheduling the data portion for insertion into an appropriate database for the first tenant through reference to a partition map for the distributed database system; prior to completely importing the one or more data portions, suspending importing of the one or more data portions to free up resources for importing one or more other data portions to the distributed database system, the one or more other data portions associated with a second different tenant of the distributed database system; subsequent to suspending importing the one or more data portions, initiating import of the one or more other data portions into the distributed database system, including for each of the one or more other data portions; scheduling the other data portion for insertion into an appropriate database for the second tenant through reference to the partition map. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for use at a computer system, the computer system including a processor and system memory, the method for providing a consistent user experience when importing data into databases maintained by a distributed database system, the method comprising:
-
initiating import of a one or more data portions into the distributed database system, the one or more data portions associated with a first tenant of the distributed database system, including for each of the one or more data portions; scheduling the data portion for insertion into an appropriate database for the first tenant through reference to a partition map for the distributed database system; prior to completely importing the one or more data portions, throttling import of the one or more data portions to free up resources for importing one or more other data portions to the distributed database system, the one or more other data portions associated with a second different tenant of the distributed database system; subsequent to throttling import the one or more data portions, initiating import of the one or more other data portions into the distributed database system, including for each of the one or more other data portions; scheduling the other data portion for insertion into an appropriate database for the second tenant through reference to the partition map. - View Dependent Claims (19, 20)
-
Specification