[
https://issues.apache.org/jira/browse/IMPALA-3948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tim Armstrong resolved IMPALA-3948.
-----------------------------------
Resolution: Invalid
The driver isn't part of Apache Impala
> Impala JDBC driver blocks concurrent queries when UseNativeQuery=0
> ------------------------------------------------------------------
>
> Key: IMPALA-3948
> URL: https://issues.apache.org/jira/browse/IMPALA-3948
> Project: IMPALA
> Issue Type: Bug
> Components: Clients
> Affects Versions: Impala 2.5.0
> Reporter: Julian Eberius
> Assignee: Syed A. Hashmi
> Priority: Minor
>
> When using the Impala JDBC driver verison 2.5.32 and a standard connection
> pool in a Java application to run concurrent queries, I discovered that all
> application threads executing Impala queries where blocked except for one.
> All others were hanging in
> HiveJDBCQueryExecutorWithLimitZeroPreparedStatementMetadata#execute(ExecutionContexts,
> IWarningListener). I further investigated the decompiled code of this method
> and found a synchronized() statement, which locks on a global singleton of
> type IQueryTranslator and encloses an executeQuery() call. This effectively
> makes the whole driver single-threaded, which should not be the case for
> standards-conforming JDBC drivers as far as I know.
> When using the parameter UseNativeQuery=1, the driver uses the class
> HiveJDBCNativeQueryExecutor instead of
> HiveJDBCQueryExecutorWithLimitZeroPreparedStatementMetadata, which does not
> have this synchronized statement. In this case, all queries were submitted to
> Impala in parallel, which is the expected behavior.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)