[ https://issues.apache.org/jira/browse/HIVE-13149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15227197#comment-15227197 ]
Chaoyu Tang commented on HIVE-13149: ------------------------------------ Yeah, I also think the HiveConf copying is not necessary since Hive ql code accesses HMS and performs actions via threadLocal Hive object which should always be obtained via Hive.get(HiveConf). The Hive.get(HiveConf) already compares the HiveConf to see if a new Hive and HiveMetaSStoreClient object should be recreated. So I wonder if it is really necessary to cloning the conf in each Hive, it seem quite expensive. But anyway it is to be removed in a follow-up JIRA. > 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, > HIVE-13149.3.patch, HIVE-13149.4.patch, HIVE-13149.5.patch, > HIVE-13149.6.patch, HIVE-13149.7.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)