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

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

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


   https://issues.apache.org/jira/browse/TINKERPOP-2445
   
   **Problem**: Client init and shutdown takes ~2s with 100 connections even if 
we aren't sending any queries at all (against a locally running server w/o ssl).
   
   **Reason**: 95% of the time is taken by shutdown. More specifically, [this 
line](https://github.com/apache/tinkerpop/blob/3.4-dev/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java)
 where we close Netty's event loop group. The default setting for closing the 
event loop group contains a "quiet time" of 2s, during which it will allow more 
requests to be handled by the executor. Thus, it will always wait at least 2s 
before shutting down. This 2s is configurable and we could change it instead of 
using the default.
   
   **Change**: We are changing the quiet time to 0 because the event loop group 
is shutdown after executor (worker threads) are shutdown in a similar manner 
where we don't allow any more requests. 


----------------------------------------------------------------
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:
us...@infra.apache.org


> 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