n implementations, and its memory management,</li>
<li>talk about Flink’s optimizer that automatically chooses join strategies,</li>
<li>show some performance numbers for joining data sets of different sizes, and finally</li>
<li>briefly discuss joining of co-located and pre-sorted data sets.</li>
</ul>
<p><em>Disclaimer</em>: This blog post is exclusively about equi-joins. Whenever I say “join” in the following, I actually mean “equi-join”.</p>
<h3 id="how-do-i-join-with-flink">
  How do I join w