Including Bloom Filters in Bottom-up Optimization
By: Tim Zeyl , Qi Cheng , Reza Pournaghi and more
Potential Business Impact:
Makes computer searches faster by guessing what's needed.
Bloom filters are used in query processing to perform early data reduction and improve query performance. The optimal query plan may be different when Bloom filters are used, indicating the need for Bloom filter-aware query optimization. To date, Bloom filter-aware query optimization has only been incorporated in a top-down query optimizer and limited to snowflake queries. In this paper, we show how Bloom filters can be incorporated in a bottom-up cost-based query optimizer. We highlight the challenges in limiting optimizer search space expansion, and offer an efficient solution. We show that including Bloom filters in cost-based optimization can lead to better join orders with effective predicate transfer between operators. On a 100 GB instance of the TPC-H database, our approach achieved a 32.8% further reduction in latency for queries involving Bloom filters, compared to the traditional approach of adding Bloom filters in a separate post-optimization step. Our method applies to all query types, and we provide several heuristics to balance limited increases in optimization time against improved query latency.
Similar Papers
Learned LSM-trees: Two Approaches Using Learned Bloom Filters
Data Structures and Algorithms
Makes computer storage faster and use less memory.
Optimizing Bloom Filters for Modern GPU Architectures
Distributed, Parallel, and Cluster Computing
Makes computers check information much faster and more accurately.
Pruning in Snowflake: Working Smarter, Not Harder
Databases
Skips unneeded data, making searches much faster.