Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-6202

SQL: support hash join

    XMLWordPrintableJSON

Details

    Description

      Justification is the same as for IGNITE-6201 (merge joins). If join is equijoin, and participating attributes are not sorted in advance, then instead of executing nested loops, we can do the following:
      1) Get the table with smaller number of entries
      2) Build a hash table from target attribute to the list of matching entries
      3) Iterate over larger table and perform lookup into hash table

      Note that this operation might be memory-intensive in case smaller table is large enough still. For this reason we should provide a mechanism to avoid out-of-memory errors. Let's avoid spilling to disk in the first iteration, and try to set a kind of hard limit on how much data can be kept in memory. If we see that this limit cannot be satisfied, then fallback to nested loops.

      Attachments

        Activity

          People

            Unassigned Unassigned
            vozerov Vladimir Ozerov
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: