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 widely-used join algorithms. While the performance of HHJ 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. The design of HHJ 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 the performance of HHJ 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).


翻译:作为数据库系统中最昂贵和最常用的操作员之一,联合操作员在数据库管理系统(DBMS)的性能中发挥了很大的作用。在过去几十年所研究的众多不同的联合算法中,混合的哈希联合(HHJ)已证明是最高效和广泛使用的合并算法之一。虽然HHJ的性能主要取决于关于输入关系的准确统计和信息,但对于一个能够提供这种信息的系统来说,HHJ的设计可能并不总是实际或可能。HJ的设计取决于许多细节才能很好地运行。本文是对设计一个强大和动态的HHJ操作员的权衡的实验和分析性研究。我们通过广泛的实验来重新审视以前研究中建议的设计与优化技术,把它们与我们设计的其他算法或相关研究中使用的其他算法进行比较。我们探索分区数目对HJ的性能影响,并提出一个较低的约束性和默认值,对于分区数量来说,我们继续设计和评价不同的分区插入技术,以便以最小的CPU成本来最大限度地利用记忆。此外,我们考虑通过一个全面的算法框架来进行一套全面的算法和最有弹性的变式的变式的变式的变式的变式方法,以便选择EBSBS和变的SA的S和变式分析。我们利用了这些算法的SA的变的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式分析,用来用来进行着和变式的变式的SBA和变式的变式的变式分析。我们变式的SBA和变式的SBA的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式的变式的研。

0
下载
关闭预览

相关内容

专知会员服务
38+阅读 · 2021年8月20日
神经常微分方程教程,50页ppt,A brief tutorial on Neural ODEs
专知会员服务
71+阅读 · 2020年8月2日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
学术会议 | 知识图谱顶会 ISWC 征稿:Poster/Demo
开放知识图谱
5+阅读 · 2019年4月16日
已删除
将门创投
4+阅读 · 2019年4月1日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Arxiv
7+阅读 · 2020年6月29日
A Compact Embedding for Facial Expression Similarity
Learning Recommender Systems from Multi-Behavior Data
VIP会员
相关VIP内容
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
学术会议 | 知识图谱顶会 ISWC 征稿:Poster/Demo
开放知识图谱
5+阅读 · 2019年4月16日
已删除
将门创投
4+阅读 · 2019年4月1日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员