Providing robust query performance with adaptive query execution
In a database system, query performance depends heavily on how well the actual characteristics of the data have been anticipated when planning its execution. During query optimisation, sophisticated models are being deployed and a multitude of optimisation decisions are being made based on estimates. This is a crucial step because right decisions during optimisation can improve query execution performance by several orders of magnitude.
A fundamental decision taken during query optimisation is on the type of physical operators (i.e., the actual algorithms) to be used during query execution. These operators are chosen based on a number of parameters such as estimated predicate selectivities of a query and anticipated resource availability. However, typically, some parameters are unknown or inaccurate at optimisation time (e.g., cardinality information) or their values may simply change between the optimisation time and the execution time. This leads to the choice of sub-optimal plans, which in turn result in non-robust and sub-optimal query execution performance.
In this project, we address the problem of sub-optimal query performance by shifting part of the decisions from query optimisation to query execution. In particular, we consider adaptive query operators as building units of fully dynamic query execution strategies. Adaptive query operators automatically adjust to observed runtime conditions achieving near-optimal query performance as a result.
This project is done in collaboration with Harvard University.
Leader: Renata Borovica-Gajic
Collaborators: Harvard University
Computing and Information Systems
Networks and data in society
data structures; database systems