[Blueprints/Rexster] RexsterGraph officially part of Blueprints

7 views
Skip to first unread message

Marko Rodriguez

unread,
Nov 17, 2010, 4:56:19 PM11/17/10
to gremlin-users
Hi,

So, RexsterGraph is now an official graph of Blueprints. Its in Blueprints 0.2.1-SNAPSHOT w/ supporting functionality in Gremlin 0.6-SNAPSHOT (both on TinkerPop Maven2 Repo).
https://github.com/tinkerpop/blueprints/tree/master/src/main/java/com/tinkerpop/blueprints/pgm/impls/rexster

I have RexsterGraph passing the following Blueprints test suites:

EdgeTestSuite: http://paste.pocoo.org/show/292784/
GraphTestSuite: http://paste.pocoo.org/show/292785/

*** Its not the fastest thing in the world, but its not intended for heavy graph processing. Think of it as a "LinkedData" for the graph database scene. A way to use Blueprints API on a remote graph through a RESTful shell. And, of course, good 'ol Gremlin allows you to program against a remote graph in real-time: http://paste.pocoo.org/show/292791/ ***

RexsterGraph currently does not pass the VertexTestSuite because Rexster doesn't (currently) support adding properties that are not strings. Moreover, Rexster does not support removing properties, yet. Once Rexster supports those aspects, VertexTestSuite should pass. After that, we should move Rexster to support the new multi-index model of Blueprints with a URI schema of, for example, http://localhost/mygraph/indices/my_index?key=key&value=value ... With that in place, RexsterGraph can then implement IndexableGraph and we can push more TestSuite testing onto it. Finally, RexsterGraph will NOT support TransactionalGraph because REST will not hold state over calls. Thus, any TransactionalGraph that is being served by ReXster will be in Mode.AUTOMATIC.

What I'm trying to do now is ensure that Rexster (the REST API) and RexsterGraph (Blueprints API) have the same operational semantics. I keep finding things here and there that are inconsistent. RexsterGraph is nice because the TestSuite ensures that everything is obeyed as expected so it was automagically ensure that Rexster's REST API is compliant.

Finally, RexsterGraphTest uses the following properties in the pom.xml of Blueprints:
<!-- REXSTERGRAPH TEST PROPERTIES -->
<property>
<name>testRexsterGraph</name>
<value>false</value>
</property>
<property>
<name>rexsterGraphURI</name>
<value>http://localhost:8182/emptygraph</value>
</property>
What this means is that RexsterGraph is not tested when you do 'mvn clean install' on Blueprints. The reason being is that you need a Rexster webserver running. To save people headache and wasted time, I will be sure to make sure RexsterGraph passes its respective tests before committing code.

Thanks everyone,
Marko.

http://markorodriguez.com
http://rexster.tinkerpop.com

Marko Rodriguez

unread,
Nov 17, 2010, 5:02:07 PM11/17/10
to gremlin-users
Ha. I just had a thought.

You could put a RexsterGraph as a graph exposed by Rexster and thus, have graph redirection :). That is, RexsterGraph would point to another Rexster instance...

User --> RexsterGraph --> Rexster --> (RexsterGraph --> Rexster)* --> Blueprints --> GraphDB.

Pointless, I assume.

Marko.

Reply all
Reply to author
Forward
0 new messages