Xuefu Zhang created HIVE-17586:
----------------------------------
Summary: 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
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)