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)

Reply via email to