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

postScannerFilterRow impacts Scan performance a lot in HBase 2.x

    XMLWordPrintableJSON

    Details

      Description

      In our test we observed Scan performance is degraded by more than 60% in HBase-2.x as compared to 1.3.x.  As per the flamegraph report, RS spent 31% of the time in postScannerFilterRow, however the coprocessors (AccessController, VisibilityController & ConstraintProcessor) does nothing in that hook.

      HBASE-14489 added the logic to avoid the call to postScannerFilterRow when not needed which is not working as expected in HBase 2.x. AccessController, VisibilityController & ConstraintProcessor override the postScannerFilterRow with dummy (same as RegionObserver) implementation, so RegionCoprocessorHost.hasCustomPostScannerFilterRow will be TRUE and call the hook for all configured CPs while processing each row . Suppose we have configured 5 region CPs and there are 1 M rows in table, then there will be 1 * 5 M dummy call to postScannerFilterRow during whole table scan.
      We need to remove postScannerFilterRow hook from these CPs as these are not doing anything.

      Another problem is in RegionCoprocessorHost.hasCustomPostScannerFilterRow init logic, currently it is always TRUE even though we remove postScannerFilterRow hook from AccessController, VisibilityController & ConstraintProcessor, because we are finding postScannerFilterRow until it is found (we look in configured CP's super class also) or clazz is NULL.

      https://github.com/apache/hbase/blob/035c192eb665469ce0c071db86c78f4a873c123b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java#L301

      Supper class of Object (super class of AccessController) will be NULL, so RegionCoprocessorHost.hasCustomPostScannerFilterRow will be set as TRUE
      https://github.com/apache/hbase/blob/035c192eb665469ce0c071db86c78f4a873c123b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java#L279

        Attachments

        1. test_report.png
          65 kB
          Pankaj Kumar

          Activity

            People

            • Assignee:
              pankajkumar Pankaj Kumar
              Reporter:
              pankajkumar Pankaj Kumar
            • Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: