Abstract:
Systems and methods for predicting query execution time for concurrent and dynamic database workloads include decomposing each query into a sequence of query pipelines based on the query plan from a query optimizer, and predicting an execution time of each pipeline with a progress predictor for a progress chart of query pipelines.
Abstract:
Systems and methods for prioritizing queries in a cloud based database by determining a priority score in real time under an imprecise query execution time; and incrementally maintaining query priority scores.
Abstract:
Methods and systems for database migration from a multitenant database include taking a snapshot of an original database to be migrated with a hot backup process, such that the database is still capable of answering queries during the hot backup process; maintaining a query log of all queries to the tenant database after the hot backup process begins; initializing a new database at a target server using the snapshot; replaying the query log synchronize the new database with the original database; and answering new queries with the new database and not the original database.
Abstract:
A method for automatic database design for scalability by receiving a database schema and database workload; applying transaction chopping to split a large transaction into smaller transactions; select one or more transactions using dynamic programming based on transaction weights; deriving a database design that covers the selected transactions; and generating a transaction class design that is scalable.
Abstract:
Systems and methods for consolidating workload on one or more computing devices, comprising: generating tenant performance profiles for at least one of a buffer memory size and a buffer warmness; assigning one or more tenants to a database management system (DBMS) instance; configuring the one or more tenants to minimize a total server count needed to host the one or more tenants; and reducing the total server count by adjusting of buffer sizes while satisfying Service Level Agreement (SLA) requirements.
Abstract:
Systems and methods for consolidating workload on one or more computing devices, comprising: generating tenant performance profiles for at least one of a buffer memory size and a buffer warmness; assigning one or more tenants to a database management system (DBMS) instance; configuring the one or more tenants to minimize a total server count needed to host the one or more tenants; and reducing the total server count by adjusting of buffer sizes while satisfying Service Level Agreement (SLA) requirements.
Abstract:
Systems and methods are disclosed for selecting a query plan in a database by monitoring network state information and flow information; and selecting an adaptive plan for execution with a query manager that receives the network state information and flow information, including: receiving a query, parsing the query, generating and optimizing a global query plan; dividing the global query plan into local plans; sending the local plans to corresponding data store sites for execution with separate threads; and orchestrating data flows among the data store sites and forwarding a final result to a user.
Abstract:
A method for tenant placement in a multi-tenant system is shown that includes creating a weighted graph of tenants and sharing relationships between tenants, where a weight for each tenant and each sharing relationship represents an associated degree of resource consumption; and adding one or more tenants to a database using a processor based on said weighted graph and a database capacity, such that the combined weight of the added tenants and the sharing relationships belonging to the added tenants are within the database capacity. If a tenant cannot be added to the database without exceeding the database capacity, a new database is created and the one or more tenants are added to the new database, subject to a new database capacity. The adding and creating steps are repeated until all tenants have been added to a database.
Abstract:
There are provided a system and method for predicting query execution time in a database system. A cost model determination device determines a cost model of a database query optimizer for the database system. The cost model models costs of queries applied to the database system. A profiling device determines profiling queries for profiling input/output cost units and processor cost units relating to the database system, and profiles the cost units using the profiling queries to output profiled cost units. A calibrating device calibrates cost units in the cost model responsive to the profiled cost units to output calibrated cost units. A sampling re-estimator samples and re-estimates a cardinality estimation of a final query plan to output an updated cardinality estimation. A predictor applies the calibrated cost units and the updated cardinality estimation in the cost model to generate a prediction of an execution time of a given query.
Abstract:
A method for tenant placement in a multi-tenant system is shown that includes creating a weighted graph of tenants and sharing relationships between tenants, where a weight for each tenant and each sharing relationship represents an associated degree of resource consumption; and adding one or more tenants to a database using a processor based on said weighted graph and a database capacity, such that the combined weight of the added tenants and the sharing relationships belonging to the added tenants are within the database capacity. If a tenant cannot be added to the database without exceeding the database capacity, a new database is created and the one or more tenants are added to the new database, subject to a new database capacity. The adding and creating steps are repeated until all tenants have been added to a database.