i'm with that.

https://issues.apache.org/jira/browse/TINKERPOP3-957

i'll need to adjust my tutorial a little bit

On Thu, Nov 12, 2015 at 12:55 PM, Marko Rodriguez <[email protected]>
wrote:

> Hi,
>
> I think we should keep the docs as they are for now. We should make a
> ticket to get addV() faster or promote a use that is not just "g.addV()",
> but like "__(0..100).addV()" (thus, injections). We will never get
> solo-addV() as fast as addVertex() as addV() has the overhead of traversal
> construction and execution, but hopefully we can bring it down to the 2-3x
> time difference by 3.1.1.
>
> Marko.
>
> http://markorodriguez.com
>
> On Nov 12, 2015, at 10:50 AM, Stephen Mallette <[email protected]>
> wrote:
>
> > Based on this quick test it would seem that we need to promote the dual
> > usage.  I'll try to adjust the docs a bit to reflect that in time for
> > release.
> >
> > On Thu, Nov 12, 2015 at 12:35 PM, Marko Rodriguez <[email protected]>
> > wrote:
> >
> >> Hi,
> >>
> >> Didn't see you had the code in there. I did it, here it is.
> >>
> >> gremlin> clock {testAddVertex(100000)}
> >> ==>40.35240715
> >> gremlin> clock {testAddV(100000)}
> >> ==>426.87777037
> >>
> >> Marko.
> >>
> >> http://markorodriguez.com
> >>
> >> On Nov 12, 2015, at 10:33 AM, Marko Rodriguez <[email protected]>
> >> wrote:
> >>
> >>> Just out of curiosity -- do the testAddVertex() first then do
> testAddV().
> >>>
> >>> Marko.
> >>>
> >>> http://markorodriguez.com
> >>>
> >>> On Nov 12, 2015, at 10:29 AM, Daniel Kuppitz <[email protected]> wrote:
> >>>
> >>>> Here's the result of a pretty simple performance comparison:
> >>>>
> >>>> gremlin> testAddV = { num -> graph = TinkerGraph.open(); g =
> >>>> graph.traversal(); for (i = 0; i < num; i++) { g.addV(id, i).next() }
> }
> >>>> ==>groovysh_evaluate$_run_closure1@30b9eadd
> >>>> gremlin> testAddVertex = { num -> graph = TinkerGraph.open(); for (i =
> >> 0; i
> >>>> < num; i++) { graph.addVertex(id, i) } }
> >>>> ==>groovysh_evaluate$_run_closure1@2e647e59
> >>>> gremlin> clock {testAddV(100000)}
> >>>> ==>462.04376528
> >>>> gremlin> clock {testAddVertex(100000)}
> >>>> ==>70.90365949999999
> >>>>
> >>>>
> >>>> As you can see, addVertex() is almost 7x as fast as addV(). However,
> if
> >> you
> >>>> rely on traversal strategies, you would - of course - still prefer
> >> addV()
> >>>> over addVertex().
> >>>>
> >>>> Cheers,
> >>>> Daniel
> >>>>
> >>>>
> >>>> On Thu, Nov 12, 2015 at 6:13 PM, Stephen Mallette <
> [email protected]
> >>>
> >>>> wrote:
> >>>>
> >>>>> i think we have a somewhat confusing story about Graph.addVertex()
> and
> >>>>> GraphTraversalSource.addV().  We've wanted to promote use of
> >>>>> TraversalSource but our docs make a fair bit of use of
> >> Graph.addVertex()
> >>>>> and Vertex.addEdge() in various places.  It seems that if we want to
> >>>>> downplay core Graph API methods, we should limit core Graph API
> >> methods to
> >>>>> here only
> >>>>>
> >>>>>
> >>
> http://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#_the_graph_structure
> >>>>>
> >>>>> of course, @dkuppitz made the side-comment to me that he would never
> >> use
> >>>>> addV() when data loading, citing possible performance reasons.
> >>>>>
> >>>>> I'd also note that for simple data loading use cases the
> >>>>> GraphTraversalSource.addE() isn't quite as intuitive to use as
> >>>>> Vertex.addEdge(),
> >>>>>
> >>>>> gremlin> v1 = g.addV(id, 1, label, "person", "name", "marko", "age",
> >>>>> 29).next()
> >>>>> ==>v[1]
> >>>>> gremlin> v2 = g.addV(id, 3, label, "software", "name", "lop", "lang",
> >>>>> "java").next()
> >>>>> ==>v[3]
> >>>>> gremlin> g.V(v1).as('a').V(v2).addInE('created', 'a', "weight", 0.4)
> >>>>> ==>e[4][1-created->3]
> >>>>>
> >>>>> compared with just:
> >>>>>
> >>>>> gremlin> v1.addEdge("created", v2, id, 9, "weight", 0.4)
> >>>>> ==>e[9][1-created->3]
> >>>>>
> >>>>> So, up for discussion is: Do we promote core Graph API methods for
> bulk
> >>>>> loading? Or do we promote consistent use of GraphTraversalSource in
> all
> >>>>> cases?
> >>>>>
> >>>
> >>
> >>
>
>

Reply via email to