[ 
https://issues.apache.org/jira/browse/TINKERPOP-2445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17233892#comment-17233892
 ] 

ASF GitHub Bot commented on TINKERPOP-2445:
-------------------------------------------

divijvaidya opened a new pull request #1360:
URL: https://github.com/apache/tinkerpop/pull/1360


   https://issues.apache.org/jira/browse/TINKERPOP-2445
   
   ## Changes
   1. Create connections in a connection pool simultaneously instead of 
serially.
   1. Create connection pools simultaneously for multiple host endpoints 
instead of serially. 
   1. Add a new exception `NoHostAvailableException` for cases when no host 
with active connections is available to send the query. This replaces 
TimeoutConnection which was confusing earlier.
   1. Do not try to reconnect to host if the connection pool initialization to 
that host has failed. Attempt to reconnect requires connection but we have a 
failure in the constructor of connection pool itself. Log the exception and 
don't add host in load balancer.
   1. Added powermock dependency for mocking a new constructor inside a final 
class.
   1. Changed some String.format to concatenation as the former is adding 
latency during client initialization.
   1. Changed `ConnectionException` to extend `RuntimeException`. This 
simplifies exception handling. Prior to this we had to do multiple wrap and 
unwraps, hence, adding unnecessary values to the stack trace.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> Speed up client initialization
> ------------------------------
>
>                 Key: TINKERPOP-2445
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2445
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: driver
>    Affects Versions: 3.5.0, 3.4.8
>            Reporter: Divij Vaidya
>            Priority: Minor
>              Labels: breaking
>         Attachments: screenshot-1.png
>
>
> The current Java client has a lot of initialization overhead. Some of the 
> things we could do to trim the fat are:
> 1. Parallelize the connection creation inside a connection pool, i.e. make 
> [this for 
> loop|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java]
>  parallel. 
>  2. Do not create a bootstrap [for every 
> connection|https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java#L111].
>  A single bootstrap could be reused.
> 3. Remove SASL Handler from the pipeline after negotiation is complete for a 
> connection.
> 4. Do not initialize SASL Handler if not required.
> As part of this task, we should profile the start-up time and identify other 
> places where we could optimize the start-up time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to