[ https://issues.apache.org/jira/browse/HBASE-26784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17502914#comment-17502914 ]
Bryan Beaudreault commented on HBASE-26784: ------------------------------------------- Thanks for merging [~Xiaolin Ha] ! > 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 > Assignee: Bryan Beaudreault > Priority: Major > Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3 > > > 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)