[ 
https://issues.apache.org/jira/browse/HIVE-17586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16181938#comment-16181938
 ] 

Xuefu Zhang commented on HIVE-17586:
------------------------------------

[~lirui] Thanks for sharing your findings. I think variable pool size and 
allowing core threads to idle out are two different aspects of thread pooling. 
They don't contradicting with each other. Plus, the patch doesn't change any 
behavior, but just making the threadpool be more genera.

On the other hand, it does bring an interesting point about the ojbect/memory 
leaks that I observed in our production cluster. i guess I will go back to 
investigate a little bit more.

> Make HS2 BackgroundOperationPool not fixed
> ------------------------------------------
>
>                 Key: HIVE-17586
>                 URL: https://issues.apache.org/jira/browse/HIVE-17586
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 1.1.0
>            Reporter: Xuefu Zhang
>            Assignee: Xuefu Zhang
>         Attachments: HIVE-17586.1.patch, HIVE-17586.patch
>
>
> Currently the threadpool for background asynchronous operatons has a fixed 
> size controled by {{hive.server2.async.exec.threads}}. However, the thread 
> factory supplied for this threadpool is {{ThreadFactoryWithGarbageCleanup}} 
> which creates ThreadWithGarbageCleanup. Since this is a fixed threadpool, the 
> thread is actually never killed, defecting the purpose of garbage cleanup as 
> noted in the thread class name. On the other hand, since these threads never 
> go away, significant resources such as threadlocal variables (classloaders, 
> hiveconfs, etc) are holding up even if there is no operation running. This 
> can lead to escalated HS2 memory usage.
> Ideally, the threadpool should not be fixed, allowing thread to die out so 
> resources can be reclaimed. The existing config 
> {{hive.server2.async.exec.threads}} is treated as the max, and we can add a 
> min for the threadpool {{hive.server2.async.exec.min.threads}}. Default value 
> for this configure is -1, which keeps the existing behavior.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to