hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aihua Xu (JIRA)" <>
Subject [jira] [Commented] (HIVE-13149) Remove some unnecessary HMS connections from HS2
Date Thu, 03 Mar 2016 14:44:18 GMT


Aihua Xu commented on HIVE-13149:

Thanks [~szehon] to review the code.

1. get(Conf) and setConf(Conf) are almost the same, but get(Conf) will give you an instance
of Hive, but setConf(Conf) won't as. Of course get(Conf) can do what setConf(Conf) does. I
feel it's more clear. How do you think? I can remove it if you don't feel the same.

2. MSC will get initialized when it's actually getting used. In many Task threads, the tasks
actually never need to access databases, but right now we still open a connection to HMS.

> Remove some unnecessary HMS connections from HS2 
> -------------------------------------------------
>                 Key: HIVE-13149
>                 URL:
>             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, 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

View raw message