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

All predicates pushed to Kudu with limit runs incorrectly as 'small query'

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Impala 2.8.0
    • Fix Version/s: Impala 2.10.0
    • Component/s: Frontend
    • Labels:

      Description

      When Kudu scans have predicates pushed to Kudu, the base implementation of ScanNode.getInputCardinality() is wrong:

        @Override
        public long getInputCardinality() {
          if (getConjuncts().isEmpty() && hasLimit()) return getLimit();
          return inputCardinality_;
        }
      

      getConjuncts() won't contain the predicates pushed to Kudu. If such a query has a limit and there aren't any conjuncts applied at the scan node, then this function will return the limit as the input cardinality mistakenly.

      This can result in a query running with the "small query" optimization when it should not be, i.e. it runs on a single node with a single scanner thread.

        Attachments

          Activity

            People

            • Assignee:
              bikramjeet.vig Bikramjeet Vig
              Reporter:
              mjacobs Matthew Jacobs
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: