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)