0

Test 1: TinkerPop Modern

Query:

g.V().hasLabel("person").as("from")
.repeat(both().as("to").dedup("from", "to"))
.emit(hasLabel("software"))
.hasLabel("software")
.project("p","data")
.by(path())
.by(select(last, "from", "to").by("name"))

Executed in 0.20145893096923828 seconds

{'data': {'from': 'marko', 'to': 'lop'}, 'p': [v[1], v[3]]}
{'data': {'from': 'marko', 'to': 'ripple'}, 'p': [v[1], v[4], v[5]]}
{'data': {'from': 'vadas', 'to': 'lop'}, 'p': [v[2], v[1], v[3]]}
{'data': {'from': 'vadas', 'to': 'ripple'}, 'p': [v[2], v[1], v[4], v[5]]}
{'data': {'from': 'josh', 'to': 'ripple'}, 'p': [v[4], v[5]]}
{'data': {'from': 'josh', 'to': 'lop'}, 'p': [v[4], v[3]]}
{'data': {'from': 'peter', 'to': 'lop'}, 'p': [v[6], v[3]]}
{'data': {'from': 'peter', 'to': 'ripple'}, 'p': [v[6], v[3], v[4], v[5]]}

Test 2: data/grateful-dead.xml sample data

Query:

g.V().hasLabel("song").as("from") 
.repeat(both().as("to").dedup("from", "to")) 
.emit(hasLabel("artist")) 
.hasLabel("artist") 
.project("p","data") 
.by(path()) 
.by(select(last, "from", "to").by("name"))

TAKES FOR EVER TO RUN! :(, How can I improve my query time, any mistakes that I am doing?

Srinath Ganesh
  • 2,496
  • 2
  • 30
  • 60

1 Answers1

0

Loaded into TinkerGraph? On my machine, it takes about 9 seconds to find all 124,285 paths. That's about 14 deduplicated paths per milliseconds - not too bad in my opinion.

gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.io(graphml()).readGraph('data/grateful-dead.xml')
==>null
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin> traversal =
......1>   g.V().hasLabel("song").as("from").
......2>     repeat(both().as("to").dedup("from", "to")).
......3>       emit(hasLabel("artist")).
......4>     project("p","data").
......5>       by(path()).
......6>       by(select(last, "from", "to").by("name")); []

gremlin> traversal.clone().count()
==>124285

gremlin> clock(10) { traversal.clone().iterate() }
==>9013.734481099998
Daniel Kuppitz
  • 10,846
  • 1
  • 25
  • 34
  • [CONSOLE] **traversal = MY_QUERY; []** *"traversal.clone().count()"* took 15 seconds and *"clock(10) { traversal.clone().iterate() }"* took about 3mins *i3 with 4gb RAM on Ubantu 16* – Srinath Ganesh Mar 28 '18 at 03:16
  • [SERVER] **traversal = MY_QUERY; []** *"traversal.clone().count()"* took 14 seconds and *"clock(10) { traversal.clone().iterate() }"* took about 2 mins 20 seconds *i3 with 4gb RAM on Ubantu 16* – Srinath Ganesh Mar 28 '18 at 03:21
  • [SERVER] **MY_QUERY** without *traversal =* takes for every to run, I killed the task after 8mins+ – Srinath Ganesh Mar 28 '18 at 03:29
  • Anything in the server logs? What TinkerPop version are you using? What's your underlying Graph DB? – Daniel Kuppitz Mar 28 '18 at 12:44
  • Gremlin 3.3.1 NEO4J Community 3.3.1 (both have the same version somehow) ill look up the logs – Srinath Ganesh Mar 29 '18 at 03:07