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