You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2018/07/02 16:14:00 UTC

[jira] [Commented] (TINKERPOP-1822) Repeat should depth first search

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

stephen mallette commented on TINKERPOP-1822:
---------------------------------------------

I added three JFRs for analysis - one for each mode of execution that we discussed. The JFRs align to these scripts:

{code}
// default.jfr (i.e. let strategies do their thing)
graph = TinkerGraph.open()
graph.io(gryo()).readGraph("data/grateful-dead.kryo")
g = graph.traversal()
Thread.sleep(3000)
start = System.currentTimeMillis()
counter = 0
while (System.currentTimeMillis() - start < 180000) {
 g.V().repeat(out()).times(3).iterate()
 counter++
}
println counter
{code}

{code}
// dfs
graph = TinkerGraph.open()
graph.io(gryo()).readGraph("data/grateful-dead.kryo")
g = graph.traversal()
Thread.sleep(3000)
start = System.currentTimeMillis()
counter = 0
while (System.currentTimeMillis() - start < 180000) {
  g.withoutStrategies(LazyBarrierStrategy,RepeatUnrollStrategy).V().repeat(out()).times(3).iterate()
  counter++
} 
println counter
{code}

{code}
// bfs
graph = TinkerGraph.open()
graph.io(gryo()).readGraph("data/grateful-dead.kryo")
g = graph.traversal()
Thread.sleep(3000)
start = System.currentTimeMillis()
counter = 0
while (System.currentTimeMillis() - start < 180000) {
  g.withoutStrategies(LazyBarrierStrategy,RepeatUnrollStrategy).V().repeat(out().barrier()).times(3).iterate()
  counter++
} 
println counter
{code}

All three scripts execute the same traversal as many times as possible for 3 minutes. The difference in performance is stark:

{code}
default: 62k ops
bfs: 494 ops
dfs: 17 ops
{code}

Before I say too much about the JFRs themselves, what do folks think about this test itself and the basic outcome? 




> Repeat should depth first search
> --------------------------------
>
>                 Key: TINKERPOP-1822
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1822
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.3.0, 3.2.6
>            Reporter: Robert Dale
>            Priority: Major
>         Attachments: bfs.jfr, default.jfr, dfs.jfr
>
>
> Perhaps optionally.
> See also:
> * https://groups.google.com/forum/#!topic/gremlin-users/gLSLxH_K-wE
> * https://github.com/apache/tinkerpop/pull/715



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)