Utility-driven adaptive query workload execution

Norman W. Paton, Marcelo A T De Aragão, Alvaro A A A Fernandes

    Research output: Contribution to journalArticlepeer-review


    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. © 2011 Elsevier B.V. All rights reserved.
    Original languageEnglish
    Pages (from-to)1070-1079
    Number of pages9
    JournalFuture Generation Computer Systems
    Issue number7
    Publication statusPublished - Jul 2012


    • Adaptive query processing
    • Autonomic computing
    • Utility function


    Dive into the research topics of 'Utility-driven adaptive query workload execution'. Together they form a unique fingerprint.

    Cite this