Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2205

Use one connection per request for Java client

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


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

      1. Difficulty in configuring the client for optimum performance.
      2. Undocumented dependency of configuration parameters on each other.
      3. A bad request can impact other requests on the same channel.
      4. Host is marked as dead even if it is busy serving requests.
      5. No way to free up server resources if the client has stopped consuming results.
      6. No differentiation between retriable and non-retriable exceptions from the application code.
      7. 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.
      8. Race condition if the server response reaches before result queue has been registered.
      9. Unpredictable behaviour if the server sends an exception followed by a genuine response for the same request.
      10. A concurrent hash map (tracking pending requests) is a point of contention amongst threads.



        Issue Links



            • Assignee:
              spmallette Stephen Mallette
              divijvaidya Divij Vaidya


              • Created:

                Issue deployment