Utility-driven adaptive query workload execution
Workload management coordinates access to and use of shared computational resources; adaptive workload execution revises resource allocation decisions dynamically in response to feedback about the progress of the workload or the behavior of the resources. Where the workload contains or consists of database queries, adaptive query processing (AQP) changes the way in which a query is being evaluated while the query is running. In parallel environments, available adaptations may change the allocation of query fragments to a machine, for example to remove load imbalance or change the parallelism level. Most AQP strategies act on individual queries with the objective of reducing response times. However, where adaptations affect the usage of shared resources, or the principal goal is to meet quality of service targets rather than to minimize overall response times, locally beneficial decisions may have globally detrimental effects. This paper describes the use of utility functions to coordinate adaptations that assign resources to query fragments from multiple queries, and demonstrates how a common framework can be used to support different objectives, specifically to minimize overall query response times and to maximize the number of queries meeting quality of service goals. Experiments using simulation compare the use of utility functions with the more common heuristic control strategies, demonstrating situations in which significant benefits can be obtained.
adaptive query processing utility function autonomic computing