[ 
https://issues.apache.org/jira/browse/TINKERPOP-2148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786921#comment-16786921
 ] 

Florian Hockmann commented on TINKERPOP-2148:
---------------------------------------------

OK, no problem. I now added a change for this [in the PR for 
TINKERPOP-2135|https://github.com/apache/tinkerpop/pull/1077] as it was already 
necessary to change the collection type for that. That PR adds a custom 
copy-on-write collection that uses an array as the underlying collection type. 
This made it possible to add round-robin scheduling instead of the current 
approach of searching for the least used connection which easily produces the 
exception you described here (if the {{MaxInProcessPerConnection}} limit is set 
to a small value). So, the approach is pretty similar to what you suggested 
here, just without modifying the collection all the time via enqueue/dequeue.

> "no connection available!" is being thrown despite lots of free connections
> ---------------------------------------------------------------------------
>
>                 Key: TINKERPOP-2148
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2148
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: dotnet
>    Affects Versions: 3.4.0
>         Environment: Windows 10, C#, .NET Core, CosmosDB Graph
>            Reporter: Zaoshi
>            Assignee: Florian Hockmann
>            Priority: Minor
>
> I am submitting multiple graph queries in parallel but in some cases it 
> starts throwing this exception:
> {{Gremlin.Net.Driver.Exceptions.NoConnectionAvailableException : no 
> connection available!}}
> {{  at Gremlin.Net.Driver.ConnectionPool.GetAvailableConnectionAsync()}}
> {{  at Gremlin.Net.Driver.GremlinClient.SubmitAsync[T](RequestMessage 
> requestMessage)}}
> When GremlinClient is initialized with \{PoolSize = 1, 
> MaxInProcessPerConnection = 8} everything works fine, however, with 
> \{PoolSize = 8, MaxInProcessPerConnection = 1} it starts throwing those 
> exceptions even though this connection pool should have same throughput. I 
> have tried to increase pool to \{PoolSize = 128, MaxInProcessPerConnection = 
> 1} but GremlinClient started to fail even more.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to