Title
To Partition, or Not to Partition, That is the Join Question in a Real System
Abstract
ABSTRACTAn efficient implementation of a hash join has been a highly researched problem for decades. Recently, the radix join has been shown to have superior performance over the alternatives (e.g., the non-partitioned hash join), albeit on synthetic microbenchmarks. Therefore, it is unclear whether one can simply replace the hash join in an RDBMS or use the radix join as a performance booster for selected queries. If the latter, it is still unknown when one should rely on the radix join to improve performance. In this paper, we address these questions, show how to integrate the radix join in Umbra, a code-generating DBMS, and make it competitive for selective queries by introducing a Bloom-filter based semi-join reducer. We have evaluated how well it runs when used in queries from more representative workloads like TPC-H. Surprisingly, the radix join brings a noticeable improvement in only one out of all 59 joins in TPC-H. Thus, with an extensive range of microbenchmarks, we have isolated the effects of the most important workload factors and synthesized the range of values where partitioning the data for the radix join pays off. Our analysis shows that the benefit of data partitioning quickly diminishes as soon as we deviate from the optimal parameters, and even late materialization rarely helps in real workloads. We thus, conclude that integrating the radix join within a code-generating database rarely justifies the increase in code and optimizer complexity and advise against it for processing real-world workloads.
Year
DOI
Venue
2021
10.1145/3448016.3452831
International Conference on Management of Data
Keywords
DocType
ISSN
Performance Evaluation, Partitioning, Join Processing, Modern Hardware, In-Memory Databases
Conference
0730-8078
Citations 
PageRank 
References 
0
0.34
0
Authors
3
Name
Order
Citations
PageRank
M Bandle101.35
J Giceva200.34
Thomas Neumann32523156.50