Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-2566

Enhance rowset tree pruning and discard string copy while querying

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 1.0.0
    • Fix Version/s: 1.8.0
    • Component/s: tablet, util
    • Labels:
      None

      Description

      1.Support open-ended intervals:
      In our kudu source code, we just cull row-sets when lower_bound_key and exclusive_upper_bound_key are existing at the same time. And if not, we will grab all row-sets of the tablet, then have to seek the key in ‘CFileSet::Iterator::PushdownRangeScanPredicate’ for the unnecessary row-sets (which will waste disk io).
      After modification, we could cull rowsets whether lower_bound_key or exclusive_upper_bound_key exists or not;

      2.The upper bound key is exclusive, but the RowSetTree function takes an inclusive interval. So, we might end up fetching one more rowset than necessary.
      After modification, the upper bound will only fetch the exactly rowsets;

      3.Perf improvement: using raw slices instead of copying to strings while querying.
      After modification, the copying from slices to string is discarded.

        Attachments

          Activity

            People

            • Assignee:
              helifu LiFu He
              Reporter:
              helifu LiFu He
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: