[ https://issues.apache.org/jira/browse/TINKERPOP-2003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540012#comment-16540012 ]
stephen mallette commented on TINKERPOP-2003: --------------------------------------------- > May be some complex queries take a long time to run(Even if I don't > think).But once one request exceed the threshold,the requests following will > all blocked until exceed the scriptEvaluationTimeout. It should be fairly simple for you to demonstrate that once the threshold is exceeded that all future requests become blocked, I don't think that is the case though. I believe there are tests that prove that future requests can work once a timeout is exceeded. > If so ,the Gremlin server can only process the requests one by one ? You should not be forced to make requests one at a time with sessionless requests. I like Robert Dale's questions.....I think that you'd need to provide more details about those aspects of your environment. Ultimately, if there is some sort of bug, we'll need to narrow it down much further than where we are now. > 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)