TinkerPop3 RFClease -- The Rise of Gremlitron

261 views
Skip to first unread message

Marko Rodriguez

unread,
Jun 3, 2014, 1:18:57 PM6/3/14
to gremli...@googlegroups.com
Hello,

TinkerPop3's SNAPSHOT release is now ready for review, comments, and brave souls wishing to do implementations.


There are lots of new things about TinkerPop3 and I would like to take the time to review some of the best parts here:

1. Blueprints, Frames, Pipes, Furnace, and Rexster are no longer terms…
- Blueprints => Gremlin Structure
- Blueprints/Pipes => Gremlin Process
- Frames => Gremlin DSLs
- Furnace => Gremlin OLAP (GraphComputer)
- Rexster => Gremlin Server
2. A revamped OLTP API
- Simpler methods with a more fluent, terse feel.
- No schema description requirements (e.g. index creation).
- Better transaction handling.
- Better "wrappers" support (now called graph strategies).
- Better "hidden properties" integration.
- Properties as Java objects with Optional semantics.
- Better operational semantics test suite.
3. A brand new OLAP API
- Support for message passing systems like Giraph, Hama, Faunus, etc.
- A "vertex program" API for writing global graph algorithms.
- Support for Gremlin traversals in an OLAP environment (ala Faunus).
4. A revamp of the I/O utilities
- Support for edge-list based GraphML
- Support for adjacency-list based GremlinKryo
- Support for both edge-list and adjacency-list based GraphSON
5. A reengineered Gremlin language
- Java8 lambdas make Gremlin-Groovy only necessary for REPL interaction.
- A more sophisticated traverser model that is must smarted about state.
- Support for V() and E() right off the main Graph interface.
- Support for outE(), out(), etc. right off the main Vertex interface.
- TraversalVertexProgram for Gremlin over OLAP implementations.
- Support for SPARQL-esque pattern matching via the match()-step.
- Support for subgraph extraction native to Gremlin
- Introspection based optimizers called "traversal strategies" that allow vendors to write custom "micro-compilers"
6. A completely new server model
- Enables remote execution of Gremlin scripts via websocket-based API
- Extensible architecture for customizing serialization formats, commands, etc.
- Plug-in server-side functions to expose domain specific languages to remote clients
7. No longer will TinkerPop host implementations -- except the following:
- TinkerGraph (reference implementation of an OLTP/OLAP implementation)
- Giraph (an OLAP implementation)
- Neo4j (an OLTP implementation)
8. No more GitHub wikidocs. All documentation is via asciidoc and very easy to deploy from Maven.

Please look over the new documentation and take TP3 for a test drive. Once you have Java8 and Maven3 on your system, simply:

$ mvn clean install 
$ bin/gremlin.sh

You will be in the new Groovy 2.x console and able to do the do.

We have the issue tracker open and will be taking feature requests and bug reports at this time.

Once everyone is comfortable with the APIs, we will start to fully stub out the rest of the Gremlin language and start writing OLAP graph algorithms (beyond the single PageRank example we have now). Finally, everything will be in the SonaType SNAPSHOT repo so you can <depedency/> on that.

Enjoy everyone… Gremlitron salutes you,
Marko.


Riccardo Tasso

unread,
Jun 3, 2014, 5:02:20 PM6/3/14
to gremli...@googlegroups.com
Very interesting, thanks for the huge effort!

Cheers,
   Riccardo


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mike Personick

unread,
Jun 4, 2014, 7:21:41 PM6/4/14
to gremli...@googlegroups.com
Excellent!

Are subgraph projections meant to maintain consistency with their parent?

Are any of the reference implementations ready?

Stephen Mallette

unread,
Jun 5, 2014, 6:49:59 AM6/5/14
to gremli...@googlegroups.com
Mike, 

> Are subgraph projections meant to maintain consistency with their parent?

Subgraphs from the subGraph step do not maintain connection to the parent.  The graph is "copied" out to a new graph.  The use cases I had in mind generally involve that new graph to be an in-memory TinkerGraph. That said, there were some discussions in this thread on having a way for subgraphs to work in the way you are asking.


Josh has a rough re-implementation of his subgraph wrapper which we determined is better implemented as a Graph Strategy.

> Are any of the reference implementations ready?

I guess that depends on what you mean by "ready", but you have these:

- TinkerGraph (reference implementation of an OLTP/OLAP implementation)
- Giraph (an OLAP implementation)
- Neo4j (an OLTP implementation)

Would I start tearing apart a production application to start using TinkerPop3?  Probably not.  But there is enough implemented here for you to get a feel for how things will work, perhaps offer a pull request, find a bug, offer a suggestion, etc.  Please note that the issue tracker is officially open at this point...feel free to use it as necessary.

Thanks,

Stephen



pieter

unread,
Jun 5, 2014, 11:19:19 AM6/5/14
to gremlin-users
Very nice, looking forward to using it.
Cheers
Pieter

Excerpts from Marko Rodriguez's message of 2014-06-03 19:18:52 +0200:
> Hello,
>
> TinkerPop3's SNAPSHOT release is now ready for review, comments, and brave souls wishing to do implementations.
> CODE: https://github.com/tinkerpop/tinkerpop3
> DOCS: http://tinkerpop.com/docs/current/
>
>
>
> There are lots of new things about TinkerPop3 and I would like to take the time to review some of the best parts here:
>
> 1. Blueprints, Frames, Pipes, Furnace, and Rexster are no longer terms...
> Enjoy everyone... Gremlitron salutes you,
> Marko.
>
> http://markorodriguez.com
>
Reply all
Reply to author
Forward
0 new messages