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

Unroll loops / replace types in filter logic in PHJ::ProcessBuildBatch()

    Details

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

      Description

      This code can be optimized for codegen:

      for (const FilterContext& ctx: filters_) {
              if (ctx.local_bloom_filter == NULL) continue;
              void* e = ctx.expr->GetValue(build_row);
              uint32_t filter_hash = RawValue::GetHashValue(e, ctx.expr->root()->type(),
                  RuntimeFilterBank::DefaultHashSeed());
              ctx.local_bloom_filter->Insert(filter_hash);
            }
      

      Note also that we know ahead of time whether ctx.local_bloom_filter will be NULL, so we could prepare a list of non-null filters and only iterate over that.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                twmarshall Thomas Tauber-Marshall
                Reporter:
                henryr Henry Robinson
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: