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)