Design Trade-offs for a Robust Dynamic Hybrid Hash Join
Shiva Jahangiri, Michael J. Carey, Johann-Christoph Freytag
Abstract
The Join operator, as one of the most expensive and commonly used operators in database systems, plays a substantial role in Database Management System (DBMS) performance. Among the many different Join algorithms studied over the last decades, Hybrid Hash Join (HHJ) has proven to be one of the most efficient and widelyused join algorithms. While HHJ's performance depends largely on accurate statistics and information about the input relations, it may not always be practical or possible for a system to have such information available. HHJ's design depends on many details to perform well. This paper is an experimental and analytical study of the trade-offs in designing a robust and dynamic HHJ operator. We revisit the design and optimization techniques suggested by previous studies through extensive experiments, comparing them with other algorithms designed by us or used in related studies. We explore the impact of the number of partitions on HHJ's performance and propose a lower bound and a default value for the number of partitions. We continue by designing and evaluating different partition insertion techniques to maximize memory utilization with the least CPU cost. In addition, we consider a comprehensive set of algorithms for dynamically selecting a partition to spill and compare the results against previously published studies. We then present two alternative growth policies for spilled partitions and study their effectiveness using experimental and model-based analyses. These algorithms have been implemented in the context of Apache AsterixDB and evaluated under different scenarios such as variable record sizes, different distributions of join attributes, and different storage types, including HDD, SSD, and Amazon Elastic Block Store (Amazon EBS) [2] .
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext ebbceab5-b6f8-4758-a803-c51660d0a9e0Cited by top-tier papers3
- High-Performance Query Processing with NVMe Arrays: Spilling without Killing PerformanceMaximilian Kuschewski, Jana Giceva, Thomas Neumann, Viktor LeisSIGMOD 2025 · 11 citations
- NOCAP: Near-Optimal Correlation-Aware Partitioning JoinsZichen Zhu, Xiao Hu, Manos AthanassoulisSIGMOD 2024 · 4 citations
- Saving Private Hash JoinLaurens Kuiper, Paul Gross, Peter Boncz, Hannes MühleisenVLDB 2025
Builds on1
Related papers
- To Partition, or Not to Partition, That is the Join Question in a Real SystemMaximilian Bandle, Jana Giceva, Thomas NeumannSIGMOD 2021 · 43 citations
- A Design Space Exploration and Evaluation for Main-Memory Hash Joins in Storage Class MemoryWentao Huang, Yunhong Ji, Xuan Zhou, Bingsheng He et al.VLDB 2023 · 9 citations
- Adopting Worst-Case Optimal Joins in Relational Database SystemsMichael J. Freitag, Maximilian Bandle, Tobias Schmidt, Alfons Kemper et al.VLDB 2020 · 79 citations
- FUDJ: Flexible User-Defined Distributed JoinsAkil Sevim, Ahmed Eldawy, E. Preston Carman, Michael J. Carey et al.ICDE 2024 · 1 citation
- Are Joins over LSM-trees Ready: Take RocksDB as an ExampleWeiping Yu, Fan Wang, Xuwei Zhang, Siqiang LuoVLDB 2025 · 2 citations
