join is the so-called nested-loop join which builds the full Cartesian product and evaluates the join condition for each pair of elements. This strategy has quadratic complexity and does obviously not scale to large inputs.</p>
<p>In a distributed system joins are commonly processed in two steps:</p>
<ol>
<li>The data of both inputs is distributed across all parallel instances that participate in the join and</li>
<li>each parallel instance performs a standard stand-alone join algorithm on its local partiti