Uploaded image for project: 'Kylin'
  1. Kylin
  2. KYLIN-3908

KylinClient's HttpRequest.releaseConnection is not needed in retrieveMetaData & executeKylinQuery

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • v2.5.2
    • v3.0.0-alpha
    • Driver - JDBC
    • None

    Description

      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    

      Attachments

        Issue Links

          Activity

            People

              xiaoboliao Xiaobo Liao
              xiaoboliao Xiaobo Liao
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: