Design Trade-offs for a Robust Dynamic Hybrid Hash Join
Design Trade-offs for a Robust Dynamic Hybrid Hash Join
复制标题
DOI:
10.14778/3547305.3547327
复制
发表时间:
2021-12
期刊:
影响因子:
--
通讯作者:
Shiva Jahangiri;M. Carey;J. Freytag
中科院分区:
文献类型:
--
作者:
Shiva Jahangiri;M. Carey;J. Freytag
Hybrid Hash Join (HHJ) has proven to be one of the most efficient and widely-used 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 new lower bound for the number of partitions. We design and evaluate different partition insertion techniques to maximize memory utilization with the least CPU cost. Additionally, 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 and evaluate two alternative growth policies for spilled partitions. 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).