[ https://issues.apache.org/jira/browse/HIVE-13149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15178414#comment-15178414 ]
Szehon Ho commented on HIVE-13149: ---------------------------------- 1. Yea I think the right fix would be to not have the method 'get' to do so many things and actually just return if its already set on thread-local, but probably that's more change to change all the existing calls.. so I would say not to add yet another flavor that might confuse even more. 2. Sounds good.. just wanted to check there's no downside to that right? I just wonder why the original guy tried to initialize it at that time, like would it be repeated for every task even if on the same thread? > Remove some unnecessary HMS connections from HS2 > ------------------------------------------------- > > Key: HIVE-13149 > URL: https://issues.apache.org/jira/browse/HIVE-13149 > Project: Hive > Issue Type: Sub-task > Components: HiveServer2 > Affects Versions: 2.0.0 > Reporter: Aihua Xu > Assignee: Aihua Xu > Attachments: HIVE-13149.1.patch, HIVE-13149.2.patch > > > In SessionState class, currently we will always try to get a HMS connection > in {{start(SessionState startSs, boolean isAsync, LogHelper console)}} > regardless of if the connection will be used later or not. > When SessionState is accessed by the tasks in TaskRunner.java, although most > of the tasks other than some like StatsTask, don't need to access HMS. > Currently a new HMS connection will be established for each Task thread. If > HiveServer2 is configured to run in parallel and the query involves many > tasks, then the connections are created but unused. > {noformat} > @Override > public void run() { > runner = Thread.currentThread(); > try { > OperationLog.setCurrentOperationLog(operationLog); > SessionState.start(ss); > runSequential(); > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)