You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by "Xiaobo Liao (JIRA)" <ji...@apache.org> on 2019/03/26 02:58:00 UTC
[jira] [Created] (KYLIN-3908) KylinClient's
HttpRequest.releaseConnection is not needed in retrieveMetaData &
executeKylinQuery
Xiaobo Liao created KYLIN-3908:
----------------------------------
Summary: KylinClient's HttpRequest.releaseConnection is not needed in retrieveMetaData & executeKylinQuery
Key: KYLIN-3908
URL: https://issues.apache.org/jira/browse/KYLIN-3908
Project: Kylin
Issue Type: Improvement
Components: Driver - JDBC
Affects Versions: v2.5.2
Reporter: Xiaobo Liao
Fix For: Future
In Kylin client's code [https://github.com/apache/kylin/blob/master/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java]
retrieveMetaData & executeKylinQuery will call HttpRequestBase.releaseConnection() if the HTTP calls are succeeded, but not doing so if calls are failed.
According to HttpClient's stack trace, connections are released back to connection manager after content is consumed. So it is not necessary to call releaseConnection in retrieveMetaData & executeKylinQuery.
Of course calling releaseConnection is not harmful, but the code now looks confusing that only calling releaseConnection if responded with 20x.
BasicClientConnectionManager.releaseConnection(ManagedClientConnection, long, TimeUnit) line: 194
ManagedClientConnectionImpl.releaseConnection() line: 447
BasicManagedEntity.releaseManagedConnection() line: 201
BasicManagedEntity.streamClosed(InputStream) line: 176
EofSensorInputStream.checkClose() line: 237
EofSensorInputStream.close() line: 186
UTF8StreamJsonParser._closeInput() line: 242
UTF8StreamJsonParser(ParserBase).close() line: 385
ObjectMapper._readMapAndClose(JsonParser, JavaType) line: 3745
ObjectMapper.readValue(InputStream, Class<T>) line: 2796
KylinClient.executeKylinQuery(String, List<StatementParameter>, Map<String,String>) line: 379
KylinClient.executeQuery(String, List<AvaticaParameter>, List<Object>, Map<String,String>) line: 326
KylinResultSet.execute() line: 69
AvaticaConnection$1.execute() line: 607
KylinMeta.prepareAndExecute(Meta$StatementHandle, String, long, int, Meta$PrepareCallback) line: 111
KylinConnection(AvaticaConnection).prepareAndExecuteInternal(AvaticaStatement, String, long) line: 615
KylinStatement(AvaticaStatement).executeInternal(String) line: 148
KylinStatement(AvaticaStatement).executeQuery(String) line: 218
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)