[ 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)