2
votes

I'm using gremlinpython version 3.3.2 and AWS NEPTUNE.
I try to drop all the edges (tried the vertices too) and it fails everytime.
g.E().drop().iterate()
Gives me:

gremlin_python.driver.protocol.GremlinServerError: 597: Exception processing a script on request [RequestMessage{, requestId=ae49cbb7-e034-4e56-ac76-b62310f753c2, op='bytecode', processor='traversal', args={gremlin=[[], [V(), drop()]], aliases={g=g}}}].

Did anyone already successfuly remove all vertices/edges of a graph in AWS Neptune?

EDIT: Dropping a specific ID works:
g.E(id).drop().iterate()

EDIT2:
Here is a backtrace done using gremlin console:

gremlin> g.E().count().next()

==>740839
gremlin> g.E().drop().iterate()
A timeout occurred within the script during evaluation of [RequestMessage{, requestId=24c3d14c-c8be-4ed9-a297-3fd2b38ace9a, op='eval', > processor='', args={gremlin=g.E().drop().iterate(), bindings={}, batchSize=64}}] - consider increasing the timeout
Type ':help' or ':h' for help.
Display stack trace? [yN]y
org.apache.tinkerpop.gremlin.jsr223.console.RemoteException: A timeout occurred within the script during evaluation of [RequestMessage{, > requestId=24c3d14c-c8be-4ed9-a297-3fd2b38ace9a, op='eval', processor='', args={gremlin=g.E().drop().iterate(), bindings={}, > batchSize=64}}] - consider increasing the timeout
at org.apache.tinkerpop.gremlin.console.jsr223.DriverRemoteAcceptor.submit(DriverRemoteAcceptor.java:178)
at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:99)
at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122)
at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:95)
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:145)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:165)
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:130)
at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:59)
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:145)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:165)
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:89)
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:236)
at org.apache.tinkerpop.gremlin.console.Console.(Console.groovy:146)
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:236)
at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:453)
gremlin>

I would say it's a timeout problem, right?

1
Not sure why this question is pickup up all the downvotes and a close flag. It's pretty clear if you know gremlinpython, though i don't know why you'd get that specific error for that particular traversal. I don't see anything invalid about it. Did you try to issue the same script from the Gremlin Console to see if that works?stephen mallette
Thanks for the comment @stephenmallette, I will try to access a Gremlin Console but as it's managed product not sure I can. Keep you in touchVivienG
I manage to get a backtrace!VivienG
yes - if you are deleting a lot of vertices then you could run into that problem. i'm not sure what the recommended way is to clear a database with neptune. you should check into that - there may be a more efficient approach.stephen mallette

1 Answers

2
votes

OK so after some exchange with @stephen mallette in comment of the question and AWS support I finally found where the problem lies.
As it still a preview NEPTUNE still suffer some smalls issues and drop() is one.
A workaround, given by the support is to perform drop() in batches via parallel connections:

g.V().limit(1000).drop()

So dropping table is hitting a timeout right now, even with a 5 minutes timeout and 700.000 edges.
I will update this answer on NEPTUNE's release.