[ 
https://issues.apache.org/jira/browse/TINKERPOP-2003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16539954#comment-16539954
 ] 

xifenghz commented on TINKERPOP-2003:
-------------------------------------

The phenomenon is after almost 5 days(at he beginning,everything goes well),the 
execution time of simple script such as  _client.submit("g.V('xxxxx')"_  or 
_results = future.get()_ exceeds the {{scriptEvaluationTimeout}}  __  
configured.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_._}}

I want to know some details about how the sessionless Gremlin Server receive 
and process requests,e.g. the receiver and executor threads are the same one?If 
so ,the Gremlin server can only process the requests one by one ? __ 

> 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)

Reply via email to