Continuously Re-optimizing Query Processor
Abstract:
We worked on a Continuously Re-optimizing Query Processor (CRQP). Rather than using a query optimizer to choose a static ordering for the operators that make up a query, the CRQP adapts to the performance of the operators as they process the data, without requiring any statistics gathering. We built an infrastructure for the CRQP on top of River, a programming environment for clusters of computers. Our performance study focused on selection operators and pipelining join operators. In particular, we looked at index-joins and hash ripple-joins. We found that, for a wide range of query operator behavior, the CRQP met our goal of detecting and preferring to send data tuples to the most efficient query operators.
Citations
| 126 | Ripple joins for online aggregation – Haas, Hellerstein - 1999 |
| 90 | Efficient Mid-Query Re-Optimization of Sub-Optimal Query Execution Plans – Kabra, DeWitt - 2005 |
| 83 | Cluster I/O with River: Making the fast case common – Arpaci-Dusseau, Anderson, et al. - 1999 |
| 46 | Cost-based query scrambling for initial delays – Urhan, Franklin, et al. - 1998 |
| 24 | XJoin: Getting Fast Answers from Slow and Bursty Networks – Urhan, Franklin - 1999 |
| 5 | and Younkyung Cha Kang. Randomized Algorithms for Optimizing Large Join Queries – Ioannidis - 1990 |

