[ https://issues.apache.org/jira/browse/TINKERPOP-2003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16539997#comment-16539997 ]
Robert Dale commented on TINKERPOP-2003: ---------------------------------------- Can you post the actual queries that time out from your Gremlin Server's gremlin.log? It should look like this {noformat} [WARN] AbstractEvalOpProcessor - Script evaluation exceeded the configured threshold for request [RequestMessage{, requestId=..., op='eval', processor='', args={gremlin=g.V(), batchSize=64}}] {noformat} It may also be helpful to see relevant stacktraces from the server. I would also turn on GC logging to rule out any really long garbage collection pause times. What database are you using? Have you ruled out any contention there? > After a long period (almost 5days)of parallel requests(almost 200 request per > second),client.submit blocked > ----------------------------------------------------------------------------------------------------------- > > Key: TINKERPOP-2003 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2003 > Project: TinkerPop > Issue Type: Bug > Components: driver > Affects Versions: 3.3.0 > Reporter: xifenghz > Priority: Major > > 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; > {color:#ff0000}synchronized (Service.class){color} > { 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。 > {color:#ff0000}Removed recommendations for submitting parallel requests on a > session from docs.{color} > {color:#333333}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 ? {color} > {color:#333333}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。{color} > Thank you sincerely for your help。 > -- This message was sent by Atlassian JIRA (v7.6.3#76005)