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

Use one connection per request for Java client

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.3.6
    • None
    • driver

    Description

      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.

      [1]https://lists.apache.org/thread.html/77728cb77d4eab90f15680595e653ffc6055b74db29cbd4dcd5f0339@%3Cdev.tinkerpop.apache.org%3E

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              divijvaidya Divij Vaidya
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: