Vikas Yadav created TINKERPOP-2454:
--------------------------------------

             Summary: OOM error when running gremlin queries asynchronously 
with JAVA
                 Key: TINKERPOP-2454
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2454
             Project: TinkerPop
          Issue Type: Bug
          Components: driver
    Affects Versions: 3.4.8, 3.4.6
            Reporter: Vikas Yadav
         Attachments: jc8rc.png, wUqam.png

We have created a rest API that executes a gremlin query on the Janus graph and 
returns the result in JSON format. API works file for small result sets. But 
for large result sets, when we hit the API asynchronously, it gives the 
following error, (max heap size {{-Xmx4g}}
{quote}java.lang.OutOfMemoryError: GC overhead limit exceeded
{quote}
I am using curl with {{&}} to hit API asynchronously,
curl --location --request GET 'http://HOST:PORT/graph/search?gremlin=query &
curl --location --request GET 'http://HOST:PORT/graph/search?gremlin=query &
curl --location --request GET 'http://HOST:PORT/graph/search?gremlin=query &
curl --location --request GET 'http://HOST:PORT/graph/search?gremlin=query &
Code to connect to janus graph,
cluster = Cluster.open(config);
connect = cluster.connect();

submit = connect.submit(gremlin);
Iterator<Result> resultIterator = submit.iterator();
int count=0;
while (resultIterator.hasNext())\{
    //add to list, commented to check OOM error
}

 
{{}}Configurations,
config.setProperty("connectionPool.maxContentLength", "50000000");
config.setProperty("connectionPool.maxInProcessPerConnection", "30");
config.setProperty("connectionPool.maxInProcessPerConnection", "30");
config.setProperty("connectionPool.maxSize", "30");
config.setProperty("connectionPool.minSize", "1");
config.setProperty("connectionPool.resultIterationBatchSize", "200");
 

Gremlin driver,
 org.apache.tinkerpop.gremlin-driver:3.4.6
 

Query returns around 17K records with 80MB size.

*How to handle a large resultset like a cursor so that not all the data is 
loaded in the memory?*
Is there any configuration that I am missing?

>From profiling, it is clear that the gremlin driver is causing the issue but I 
>am not sure how to fix it and release the memory.

!jc8rc.png!

 

Please let me know if you need more details.

 

Thanks.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to