Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-5493

Remove unnecesary iteration in BaseResultIterator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 4.14.3
    • 4.13.1, 4.15.0, 5.1.0
    • None
    • None

    Description

      In BaseResultIterator

      while (offset < nColumnsInCommon && offset < rangesListSize) {
                  List<KeyRange> ranges = rangesList.get(offset);
                  // We use a skip scan if we have multiple ranges or if
                  // we have a non single key range before the last range.
                  useSkipScan |= ranges.size() > 1 || hasRange;
                  cnf.add(ranges);
                  int rangeSpan = 1 + dataScanRanges.getSlotSpans()[offset];
                  if (offset + rangeSpan > nColumnsInCommon) {
                      rangeSpan = nColumnsInCommon - offset;
                      // trim range to only be rangeSpan in length
                      ranges = Lists.newArrayListWithExpectedSize(cnf.get(cnf.size()-1).size());
                      for (KeyRange range : cnf.get(cnf.size()-1)) {
                          range = clipRange(dataScanRanges.getSchema(), offset, rangeSpan, range);
                          // trim range to be only rangeSpan in length
                          ranges.add(range);
                      }
                      cnf.set(cnf.size()-1, ranges);
                  }
                  for (KeyRange range : ranges) {
                      if (!range.isSingleKey()) {
                          hasRange = true;
                      }
                  }
                  slotSpan[offset] = rangeSpan - 1;
                  offset = offset + rangeSpan;
              }
      

       we can break in the inner loop and save some cycles of CPU

      Attachments

        1. PHOENIX-5493.patch
          0.9 kB
          Aman Poonia

        Activity

          People

            mnpoonia Aman Poonia
            mnpoonia Aman Poonia
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: