Tanuj Khurana created PHOENIX-7695:
--------------------------------------

             Summary: ParallelPhoenixResultSet keeps the 
                 Key: PHOENIX-7695
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7695
             Project: Phoenix
          Issue Type: Improvement
            Reporter: Tanuj Khurana


ParallelPhoenixResultSet gets the result set from both the clusters but binds 
to the first one. Subsequent rs.next() calls go to only one result set while 
the other result set stays idle. The idle result set continues to hold onto any 
server resources. Finally, when the client is done processing and calls close() 
the two result sets are closed. 

This delay in releasing server resources can cause issues when the request 
volume is high. One case we have seen in production is in ORDER BY queries 
where each region server reserves a fixed percentage of JVM heap memory for 
sorting. We have seen for parallel requests the RS reserves the memory for the 
request but the memory is not released soon enough. This impacts other ORDER BY 
requests to the same RS since the memory pool is shared across all requests.



Once we have bounded the result set to one of the two result sets, we can 
immediately close the other one since we won't be using it anymore.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to