You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/06/16 02:33:00 UTC
[jira] [Commented] (TINKERPOP-2617) Refactor Java Driver to have one method for connection selection
[ https://issues.apache.org/jira/browse/TINKERPOP-2617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17554869#comment-17554869 ]
ASF GitHub Bot commented on TINKERPOP-2617:
-------------------------------------------
simonz-bq opened a new pull request, #1709:
URL: https://github.com/apache/tinkerpop/pull/1709
Removed duplication while fetching a connection form the ConnectionPool. Also, handled some potential edge cases where a user specified a minimum connections size of 0, where there could potentially be no connections ever in the pool to use as well as a unlikely scenario where the host would be deemed dead despite a new connection being possible.
> Refactor Java Driver to have one method for connection selection
> ----------------------------------------------------------------
>
> Key: TINKERPOP-2617
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2617
> Project: TinkerPop
> Issue Type: Improvement
> Components: driver
> Affects Versions: 3.4.12
> Reporter: Stephen Mallette
> Priority: Minor
>
> To make a decision on whether a connection should be borrowed or not, a Java client today does two logic which are different from each other. They should both be same. One bit of logic to do so is at:
> {code}
> if (borrowed >= maxSimultaneousUsagePerConnection && leastUsedConn.availableInProcess() == 0) {
> {code}
> and another is:
> {code}
> final int inFlight = leastUsed.borrowed.get();
> final int availableInProcess = leastUsed.availableInProcess();
> if (inFlight >= availableInProcess) {
> logger.debug("Least used {} on {} has requests borrowed [{}] >= availableInProcess [{}] - may timeout waiting for connection",
> leastUsed, host, inFlight, availableInProcess);
> break;
> }
> if (leastUsed.borrowed.compareAndSet(inFlight, inFlight + 1)) {
> if (logger.isDebugEnabled())
> logger.debug("Return least used {} on {} after waiting", leastUsed.getConnectionInfo(), host);
> return leastUsed;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)