You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Bryan Beaudreault (Jira)" <ji...@apache.org> on 2022/03/01 20:59:00 UTC

[jira] [Created] (HBASE-26784) Use HIGH_QOS for ResultScanner.close requests

Bryan Beaudreault created HBASE-26784:
-----------------------------------------

             Summary: Use HIGH_QOS for ResultScanner.close requests
                 Key: HBASE-26784
                 URL: https://issues.apache.org/jira/browse/HBASE-26784
             Project: HBase
          Issue Type: Improvement
            Reporter: Bryan Beaudreault


Active scanners take resources on the RegionServer, and scanner leaks can have a big impact on GC. Under high load, ResultScanner.close() calls might get rejected or timed out before executing. Exceptions thrown by close() are currently swallowed, so clients will not retry. This leads to a leak of active scanners on the server side.

These calls should be relatively free to execute, and executing them will free up the resources which can have an impact on overall RegionServer performance. As such it can be beneficial to execute all ResultScanner.close() requests with HIGH_QOS regardless of the priority of the underlying Scan.

In a scan-heavy stress test I ran, after a couple minutes the Full GC time (using G1GC) starts increasing and we start seeing 1s pauses, due to increasing number of active scanners (into the 10s of thousands). Re-running the stress test with HIGH_QOS for ResultScanner.close() eliminates the leak and GC time remains stable.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)