BlockJoin

Efficient Matrix Partitioning Through Joins

Conference Paper (2017)
Author(s)

Andreas Kunft (Technical University of Berlin)

A. Katsifodimos (TU Delft - Web Information Systems)

Sebastian Schelter (Technical University of Berlin)

Tilmann Rabl (German Research Centre for Artificial Intelligence (DFKI), Technical University of Berlin)

Volker Markl (German Research Centre for Artificial Intelligence (DFKI), Technical University of Berlin)

Research Group
Web Information Systems
Copyright
© 2017 Andreas Kunft, A Katsifodimos, Sebastian Schelter, Tilmann Rabl, Volker Markl
More Info
expand_more
Publication Year
2017
Language
English
Copyright
© 2017 Andreas Kunft, A Katsifodimos, Sebastian Schelter, Tilmann Rabl, Volker Markl
Research Group
Web Information Systems
Pages (from-to)
2061-2072
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Linear algebra operations are at the core of many Machine Learning (ML) programs. At the same time, a considerable amount of the effort for solving data analytics problems is spent in data preparation. As a result, end-to- end ML pipelines often consist of (i) relational operators used for joining the input data, (ii) user defined functions used for feature extraction and vectorization, and (iii) linear algebra operators used for model training and cross- validation. Often, these pipelines need to scale out to large datasets. In this case, these pipelines are usually implemented on top of dataflow engines like Hadoop, Spark, or Flink. These dataflow engines implement relational operators on row-partitioned datasets. However, efficient linear algebra operators use block-partitioned matrices. As a result, pipelines combining both kinds of operators require rather expensive changes to the physical representation, in particular re partitioning steps. In this paper, we investigate the potential of reducing shuffling costs by fusing relational and linear algebra operations into specialized physical operators. We present BlockJoin, a distributed join algorithm which directly produces block-partitioned results. To minimize shuffling costs, BlockJoin applies database techniques known from columnar processing, such as index-joins and late materialization, in the context of parallel dataflow engines. Our experimental evaluation shows speedups up to 6× and the skew resistance of BlockJoin compared to state- of-the-art pipelines implemented in Spark.