arangodb-tinkerpop-provider icon indicating copy to clipboard operation
arangodb-tinkerpop-provider copied to clipboard

Cannot search by property over a 30M nodes graph

Open kuzeko opened this issue 4 years ago • 11 comments

Hello, I am running this query

g.V().has( "myField", P.within([ 10, 13, 14, 100, 110, 111, 131]))

Over a graph with ~30M of nodes.

The process terminates with an error, here the relevant parts of the stack trace

java.util.concurrent.ExecutionException: com.arangodb.ArangoDBException: Response: 404, Error: 1600 - cursor not found
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)               
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
       ....
Caused by: com.arangodb.ArangoDBException: Response: 404, Error: 1600 - cursor not found
        at com.arangodb.internal.util.ResponseUtils.checkError(ResponseUtils.java:53)
        at com.arangodb.internal.velocystream.VstCommunication.checkError(VstCommunication.java:146)        
        at com.arangodb.internal.velocystream.VstCommunicationSync.execute(VstCommunicationSync.java:128)
        at com.arangodb.internal.velocystream.VstCommunicationSync.execute(VstCommunicationSync.java:42)
        at com.arangodb.internal.velocystream.VstCommunication.execute(VstCommunication.java:129)
        at com.arangodb.internal.velocystream.VstProtocol.execute(VstProtocol.java:47)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:71)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:53)
        at com.arangodb.internal.ArangoDatabaseImpl$1.next(ArangoDatabaseImpl.java:232)
        at com.arangodb.internal.cursor.ArangoCursorIterator.next(ArangoCursorIterator.java:69)
        at com.arangodb.internal.cursor.ArangoCursorImpl.next(ArangoCursorImpl.java:112)
        at com.arangodb.tinkerpop.gremlin.client.ArangoDBIterator.next(ArangoDBIterator.java:52)
        at org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep.processNextStart(GraphStep.java:148)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
        at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
        at org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep.processNextStart(MapStep.java:36)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128)
        at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38)
        at org.apache.tinkerpop.gremlin.process.traversal.Traversal.fill(Traversal.java:179)
        at org.apache.tinkerpop.gremlin.process.traversal.Traversal.toList(Traversal.java:117)
        ....

How can I overcome this problem?

kuzeko avatar Sep 26 '20 13:09 kuzeko

Hi, not being an expert in the tinkerpop provider, but you probably need to define a longer TTL for your cursor. Maybe @arcanefoam can hint you how to do that with the tinkerpop provider.

dothebart avatar Sep 28 '20 08:09 dothebart

How would you do that normally? I means, server configuration side. Not per-query.

kuzeko avatar Sep 28 '20 09:09 kuzeko

Per-query ttl can be specified setting http://arangodb.github.io/arangodb-java-driver/javadoc-6_7/com/arangodb/model/AqlQueryOptions.html#ttl-java.lang.Integer-

rashtao avatar Sep 28 '20 09:09 rashtao

Per-query ttl can be specified setting http://arangodb.github.io/arangodb-java-driver/javadoc-6_7/com/arangodb/model/AqlQueryOptions.html#ttl-java.lang.Integer-

Here is says:

If not set, a server-defined value will be used.

Can I change that?

kuzeko avatar Sep 28 '20 09:09 kuzeko

--query.registry-ttl - https://www.arangodb.com/docs/stable/programs-arangod-options.html

dothebart avatar Sep 28 '20 09:09 dothebart

Can this be set globally in the java driver, i.e. use for all queries? Cause I think you can pass custom driver settings to the tinkerpop driver.

On Mon, 28 Sep 2020, 10:32 Wilfried Goesgens, [email protected] wrote:

--query.registry-ttl - https://www.arangodb.com/docs/stable/programs-arangod-options.html

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ArangoDB-Community/arangodb-tinkerpop-provider/issues/66#issuecomment-699894657, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQOU3NXJZJNGDSCOOKBTK3SIBJ2XANCNFSM4R25EFRQ .

arcanefoam avatar Sep 28 '20 10:09 arcanefoam

@arcanefoam the driver does not allow setting it globally.

rashtao avatar Sep 28 '20 10:09 rashtao

Then can M. Lissandri open a bug in the tinkerpop driver? That would help us capture the information provided by Michele and add an option to increase the query timeout.

As always, patches/PR are welcomed!

On Mon, 28 Sep 2020, 11:50 Michele Rastelli, [email protected] wrote:

@arcanefoam https://github.com/arcanefoam the driver does not allow setting it globally.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ArangoDB-Community/arangodb-tinkerpop-provider/issues/66#issuecomment-699932079, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQOU3LSIUCGOCWZG66QI7TSIBTADANCNFSM4R25EFRQ .

arcanefoam avatar Sep 28 '20 12:09 arcanefoam

Just to be clear, do you want me to open a different issue here tinkerpop-provider or on https://github.com/arangodb/arangodb-java-driver for explicitly setting options through the driver?

kuzeko avatar Sep 28 '20 12:09 kuzeko

I can only talk from the tinkerpop side, so I would say in the tinkerpop provider. If we then see thst for it to work changes are required in the java driver we can open an issue there.

On Mon, 28 Sep 2020, 13:34 M. Lissandrini, [email protected] wrote:

Just to be clear, do you want me to open a different issue here tinkerpop-provider or on https://github.com/arangodb/arangodb-java-driver for explicitly setting options through the driver?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ArangoDB-Community/arangodb-tinkerpop-provider/issues/66#issuecomment-699977820, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQOU3ONIGWY75KV5G3ZK5TSIB7EBANCNFSM4R25EFRQ .

arcanefoam avatar Sep 28 '20 12:09 arcanefoam

Created an issue: https://github.com/ArangoDB-Community/arangodb-tinkerpop-provider/issues/67

kuzeko avatar Sep 28 '20 13:09 kuzeko