Stephen Mallette created TINKERPOP-2617:
-------------------------------------------

             Summary: 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


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.3.4#803005)

Reply via email to