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

After a long period (almost 5days)of parallel requests(almost 200 request per second),client.submit blocked

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Incomplete
    • Affects Version/s: 3.3.0
    • Fix Version/s: None
    • Component/s: driver
    • Labels:
      None

      Description

      After a long period (almost 5days)of parallel requests(almost 200 request per second),client.submit blocked for scriptEvaluationTimeout configured,and return timeout.At the same time,many TCP connections in Gremlin Server are in CLOSE_WAIT state.

      Here is my usages:

      cluster = Cluster.build(FileUtils.toFile(config)).create();
      client = cluster.connect();
      ResultSet resultSet = null;
      synchronized (Service.class)

      { resultSet = client.submit(gremlinScript); }

      CompletableFuture<List<Result>> future = null;
      List<Result> results = null;
      future = resultSet.all();
      results = future.get();

       

      The code snippet above runs in a java web app based on SpringMVC.I found a PR related to my question.

      https://github.com/apache/tinkerpop/pull/367/commits/58d8bade7425c7a7865382990eaaed2b7d90659c#diff-06d5dfb02d5d2c807c2387c3e9338709

      In this PR,the author seems to say gremlin doer not support high concurrency。

      Removed recommendations for submitting parallel requests on a session from docs.

      So,I submit the gremlin script in order(use synchronized keyword,just as my code snippet ).But in order to lift throughput,I do not lock the code for getting result from Gremlin Server。I want to know some details about how Gremlin Server receive and process requests,such as the receiver and executor threads are the same one?If so ,the Gremlin server can only process the requests one by one ? 

      I wonder whether or not Gremlin supports high concurrency(such as 200 second per second,including simple vertex or edge queries and complex combinatorial queries).If so,please help to find out why the process time for a simple script such as query vertex exceed scriptEvaluationTimeout. If not,is there other ways to make Gremlin Server support  high concurrency,such as multi-gremlinserver。

      Thank you sincerely for your help。

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              hz xifenghz
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: