The documents distributed by this server have been provided by the contributing authors as a means to ensure timely dissemination of scholarly and technical work on a noncommercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.
Publications of SPCL
|C. Barthels, T. Schneider, I. Mueller, G. Alonso, T. Hoefler:|
|Distributed Join Algorithms on Thousands of Cores|
(Vol , Nr. , In , presented in Munich, Germany, pages , VLDB Endowment, ISSN: , ISBN: , Aug. 2017, )
AbstractTraditional database operators such as joins are relevant not only in the context of database engines but also as a first step in many computational and machine learning algorithms. With the advent of big data, there is an increasing demand for join algorithms that can scale with the hardware infrastructure suitable to those use cases. Although often studied in the literature, there is little work done on scaling joins to the thousands of CPU cores and potentially hundreds of machines currently used in high performance computing systems or data centers. In this paper, we explore the implementation of distributed joins in systems with several thousand cores and low-latency networks. We compare radix hash join to sort-merge join algorithms and discuss their implementation at this scale. While some existing techniques can be used, large-scale distributed computations required different tools. In the paper, we explain how to effectively employ MPI to implement joins, show the impact and advantages of RDMA, discuss the importance of network scheduling, and study the relative performance of sorting vs. hashing. The experimental results show that the algorithms we present scale well with the number of cores but are not as efficient as they could be given the resources available.