Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-14099

StoreFile.passesKeyRangeFilter need not create Cells from the Scan's start and stop Row

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.0
    • Component/s: Performance, Scanners
    • Labels:
      None

      Description

      During profiling saw that the code here in passesKeyRangeFilter in Storefile

        KeyValue smallestScanKeyValue = scan.isReversed() ? KeyValueUtil
                .createFirstOnRow(scan.getStopRow()) : KeyValueUtil.createFirstOnRow(scan
                .getStartRow());
            KeyValue largestScanKeyValue = scan.isReversed() ? KeyValueUtil
                .createLastOnRow(scan.getStartRow()) : KeyValueUtil.createLastOnRow(scan
                .getStopRow());
      

      This row need not be copied now considering that we have CellComparator.compareRows(Cell, byte[]).
      We have already refactored the firstKeyKv and lastKeyKV as part of other JIRAs.

        Attachments

        1. HBASE-14099.patch
          2 kB
          ramkrishna.s.vasudevan
        2. HBASE-14099_1.patch
          3 kB
          ramkrishna.s.vasudevan
        3. storefile.png
          29 kB
          ramkrishna.s.vasudevan
        4. HBASE-14099_2.patch
          7 kB
          ramkrishna.s.vasudevan
        5. HBASE-14099_3.patch
          8 kB
          ramkrishna.s.vasudevan
        6. HBASE-14099_4.patch
          8 kB
          ramkrishna.s.vasudevan
        7. hfiles_and_testclass.zip
          5 kB
          Apekshit Sharma

          Activity

            People

            • Assignee:
              ram_krish ramkrishna.s.vasudevan
              Reporter:
              ram_krish ramkrishna.s.vasudevan
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: