Especially in comparison to the raw Neo4j performance. Would be interesting to see both, code and times side by side.
Cheers Michael Am 23.07.2011 um 18:40 schrieb Josef Holy: > Thanks a lot guys for quick and comprehensive answers! > > I was assuming that Gremlin serves only for Pipes assembly which shouldn't > impact the overall performance too much. We've 'hit the ceiling' with > implementing various custom traversals with native neo4j APIs - the > algorithms are quite lengthy and thus quite hard to maintain and tune. We are > hoping that Gremlin (+Groovy) expressiveness could make things easier, even > if in exchange for a little performance. The numbers you Marko provided are > promising! > > Will give Gremlin a shot and report back some real numbers. > > Thanks a lot! > > > Cheers! > > Josef. > > On sobota, 23. Ĩervence 2011 at 17:25, Marko Rodriguez wrote: >> Hi, >> >> Finally, one point to add. >> >> If I only need to do a ShorestPath over a particular edge type or a "find >> all paths" between two vertices and I'm using Neo4j as the graph backend, >> then I will drop down and use Neo4j's Algo library. This is because their >> ShorestPath implementation is bi-directional (efficient) and I would have to >> write that in Gremlin as Gremlin doesn't provide "out of the box" textbook >> algorithm support. >> >> TinkerPop plans an algo library for standard graph algorithms whose paths >> are defined by Pipes/Gremlin, but as of yet, it doesn't exist. >> See http://markorodriguez.com/2011/02/08/property-graph-algorithms/ >> >> Thanks, >> Marko. >> >> http://markorodriguez.com >> >> On Jul 23, 2011, at 9:16 AM, Marko Rodriguez wrote: >> >>> Hey, >>> >>> Groovy is only used to compile a statement like "g.v(1).out.in.blah" to a >>> Pipes which is native Java. As such, once the compilation is complete >>> (milliseconds), it is simply native Java (This is not completely true as >>> there are some Gremlin specific pipes). Next, for the relationship between >>> Blueprints Neo4jGraph and native EmbeddedGraphDatabase, see this from some >>> time ago: >>> >>> http://groups.google.com/group/gremlin-users/msg/c94dfef8352f68d3 >>> >>> In short, traversing 29.6 million things took: >>> 5.6 seconds via EmbeddedGraphDatabase >>> 6.0 seconds via Neo4jGraph >>> >>> ** As a side, the same experiment was run for OrientDB with a 7.2 (native >>> OrientDB) vs. 7.9 (Blueprints OrientGraph). >>> http://groups.google.com/group/gremlin-users/msg/ff5c03e188efcffe >>> >>> There is more discussion in that particular thread if you are interested. >>> >>> Finally, with respect to production, I have many clients that use Gremlin >>> in production. Here are the benefits of do so: >>> 1. Traversal descriptions are concise and expressive. >>> - any arbitrary graph computation can be represented and evaluated. >>> - in language theoretic terms, it can recognize Turing complete paths. >>> 2. Traversal descriptions can be expressed as classes in Groovy and thus, >>> IDE friendly. >>> - syntax highlighting, easy to write test cases/debug, etc. >>> - See slides 234 and 235 from >>> http://www.slideshare.net/slidarko/the-pathology-of-graph-databases >>> >>> Thanks, >>> Marko. >>> >>> http://markorodriguez.com >>> >>> On Jul 23, 2011, at 2:30 AM, Michael Hunger wrote: >>> >>>> If you look at the comments of the post - >>>> >>>> groovy is only that slow if you implement all the algorithm details in >>>> groovy ! >>>> >>>> Gremlin uses blueprints which is written in Java. Gremlin is just a DSL on >>>> top of that API so it is just used for the construction of the underlying >>>> pipeline. >>>> >>>> Anyway, easiest way to see if that holds true is to write a PoC for _your_ >>>> domain, I think general >>>> statements are difficult. >>>> >>>> But probably Marko has some nice performance benchmarks at hand. >>>> >>>> Michael >>>> >>>> Am 23.07.2011 um 09:51 schrieb Josef Holy: >>>> >>>>> Hi all, >>>>> >>>>> has someone on this list any practical experience with using Gremlin for >>>>> traversing the EmbeddedGraphDatabase in a production environment? What >>>>> interests me is how it performs compared to the traversal algorithms >>>>> written directly against Neo4j APIs (using Traverser, >>>>> TraversalDescription, ..etc). >>>>> >>>>> As Gremlin runs on top of Groovy + Pipes + Blueprints, I would expect it >>>>> to be much slower than pure Neo4j Java APIs (but really SO much slower? >>>>> http://stronglytypedblog.blogspot.com/2009/07/java-vs-scala-vs-groovy-performance.html >>>>> ) . >>>>> >>>>> >>>>> Thanks for any comments/experiences! >>>>> >>>>> >>>>> Josef. >>>>> >>>>> _______________________________________________ >>>>> Neo4j mailing list >>>>> [email protected] >>>>> https://lists.neo4j.org/mailman/listinfo/user >>>> >>>> _______________________________________________ >>>> Neo4j mailing list >>>> [email protected] >>>> https://lists.neo4j.org/mailman/listinfo/user >> >> _______________________________________________ >> Neo4j mailing list >> [email protected] >> https://lists.neo4j.org/mailman/listinfo/user >> > _______________________________________________ > Neo4j mailing list > [email protected] > https://lists.neo4j.org/mailman/listinfo/user _______________________________________________ Neo4j mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

