Skip to main content

Push- versus Pull-Based Loop Fusion in Query Engines

Amir Shaikhha ( University of Oxford )

Database query engines use push-based or pull-based approaches to avoid the materialization of data across query operators. In this talk, we study these two types of query engines in depth and present the limitations and advantages of each engine. Similarly, the programming languages community has developed loop fusion (deforestation) techniques to remove intermediate collections in the context of functional collection programming. We draw parallels between databases (DB) and programming language (PL) research by demonstrating the connection between pipelined query engines and loop fusion techniques. Based on this connection, we propose a new type of pull-based engine, inspired by a loop fusion technique, which combines the benefits of both approaches. Then, we experimentally evaluate the various engines, in the context of query compilation, in a fair environment, eliminating the biasing impact of ancillary optimizations that have traditionally only been used with one of the approaches. We show that for realistic analytical workloads, there is no considerable advantage for either form of pipelined query engine, as opposed to what recent research suggests.



Share this: