Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-5965

Avoid per-value switch on NeedsConversionInline() when decoding dictionary-encoded strings and timestamps

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: Impala 2.10.0
    • Fix Version/s: Impala 2.11.0
    • Component/s: Backend
    • Labels:

      Description

      I noticed a minor inefficiency in the handling of NeedsConversion() in the parquet scanner. In cases where it's not a runtime constant like dictionary-encoded strings and timestamps, we switch per value. This is probably only a few instructions but in this part of the code that matters.

      I did a quick benchmark and saw speedups from ~2.25s->2.11s in scan time on this query:

      use tpch_parquet; 
      set num_nodes=1;
      set mt_dop=1;
      select min(l_returnflag), min(l_linestatus) from biglineitem;
      summary;
      

        Attachments

          Activity

            People

            • Assignee:
              tarmstrong Tim Armstrong
              Reporter:
              tarmstrong Tim Armstrong
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: