-
Type:
Improvement
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 3.3.6
-
Fix Version/s: None
-
Component/s: driver
-
Labels:
This issue is a tracking item for the conversation in the mailing list [1] which highlights multiple problems and shortcomings in the existing Java client and proposes a design change in the client connection pooling to address the same. More specifically, the problems addressed are as follows:
- Difficulty in configuring the client for optimum performance.
- Undocumented dependency of configuration parameters on each other.
- A bad request can impact other requests on the same channel.
- Host is marked as dead even if it is busy serving requests.
- No way to free up server resources if the client has stopped consuming results.
- No differentiation between retriable and non-retriable exceptions from the application code.
- Keep alive is only sent when a query is executing, which means that a connection open for a very long time with no query being sent will be closed by the server.
- Race condition if the server response reaches before result queue has been registered.
- Unpredictable behaviour if the server sends an exception followed by a genuine response for the same request.
- A concurrent hash map (tracking pending requests) is a point of contention amongst threads.
[1]https://lists.apache.org/thread.html/77728cb77d4eab90f15680595e653ffc6055b74db29cbd4dcd5f0339@%3Cdev.tinkerpop.apache.org%3E
- is depended upon by
-
TINKERPOP-2132 Authentication when using multiple threads fails
-
- Reopened
-
- links to