[ https://issues.apache.org/jira/browse/TINKERPOP-2205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16943100#comment-16943100 ]
Divij Vaidya commented on TINKERPOP-2205: ----------------------------------------- Good to hear that we are making progress with the driver. How are you benchmarking the clients to compare the request per second (rps)? I tested with the same configuration of server and client (just change the branch) using the code at [https://github.com/divijvaidya/driver-benchmark-tinkerpop-2205/blob/master/src/main/java/com/divijv/MyBenchmark.java]. Multiple code changes have also been done post the initial benchmark. Let me know if you are not able to achieve the desired performance. At that stage, I will put the driver under a profiler and work towards eliminating bottlenecks. > Use one connection per request for Java client > ---------------------------------------------- > > Key: TINKERPOP-2205 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2205 > Project: TinkerPop > Issue Type: Improvement > Components: driver > Affects Versions: 3.3.6 > Reporter: Divij Vaidya > Assignee: Stephen Mallette > Priority: Major > Labels: deprecation > > This issue is a tracking item for the conversation in the mailing list > [[1]|https://lists.apache.org/thread.html/77728cb77d4eab90f15680595e653ffc6055b74db29cbd4dcd5f0339@%3Cdev.tinkerpop.apache.org%3E] > 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 -- This message was sent by Atlassian Jira (v8.3.4#803005)