Transactions using Rexster

233 views
Skip to first unread message

Sudhakar G

unread,
Sep 26, 2012, 9:49:02 AM9/26/12
to ne...@googlegroups.com
Can anyone help me how to run transactions when using Rexster over Neo4J..

Stephen Mallette

unread,
Sep 26, 2012, 10:07:07 AM9/26/12
to ne...@googlegroups.com
Rexster does not have the notion of RESTful transactions. Aside from
using the Batch Kibble extension:

https://github.com/tinkerpop/rexster/tree/master/rexster-kibbles/batch-kibble

Your only other option is to send transaction enable gremlin scripts
to the Gremlin Extension:

https://github.com/tinkerpop/rexster/wiki/Gremlin-Extension

Best regards,

Stephen

On Wed, Sep 26, 2012 at 9:49 AM, Sudhakar G <sudhak...@gmail.com> wrote:
> Can anyone help me how to run transactions when using Rexster over Neo4J..
>
> --
>
>

Sudhakar G

unread,
Sep 26, 2012, 10:15:09 AM9/26/12
to ne...@googlegroups.com
Thanks Stephen for the information....

When using batch kibble, how can I type cast rexsterGraph to blueprints TransactionGraph.
I guess TransactionGraph is the only way in which I can call startTransaction and stopTransaction.

Is there any way in which I can mark the transaction boundaries while using Rexster.

Stephen Mallette

unread,
Sep 26, 2012, 11:25:49 AM9/26/12
to ne...@googlegroups.com
I didn't realize that you were trying to use RexsterGraph.
RexsterGraph is not transactional at this time as it only uses the
standard REST API (which I mentioned earlier does not have
transactional capabilities). As it works with the standard API, it
does not operate with Batch Kibble (a rexster extension). The two
pieces must be utilized independently of each other.

Stephen
> --
>
>

James Thornton

unread,
Sep 26, 2012, 1:30:11 PM9/26/12
to ne...@googlegroups.com


On Wednesday, September 26, 2012 8:49:02 AM UTC-5, Sudhakar G wrote:
Can anyone help me how to run transactions when using Rexster over Neo4J..

Bulbs uses Gremlin scripts for transactions. 


Example: 

>>> from bulbs.rexster import Graph
>>> g = Graph()
>>> script = g.scripts.get('create_blog_entry')
>>> params = dict(text='hello world', user_id=3)
>>> result = g.gremlin.command(script, params)

Docs http://bulbflow.com/docs/api/bulbs/rexster/gremlin/
- James

Sudhakar G

unread,
Oct 26, 2012, 10:16:02 AM10/26/12
to ne...@googlegroups.com
Hi Stephen,

Is there any way in which I can batch the update calls being made to rexster.
The problem is that the every property set on a node is being made in seperate transaction which is affecting the performance of our system.

We need a solution for this very badly.

Stephen Mallette

unread,
Oct 26, 2012, 10:36:08 AM10/26/12
to ne...@googlegroups.com
If you are restricted to only using RexsterGraph, then I'm afraid
there aren't other options available within it. As workarounds, I
could only suggest that perhaps in cases where you have the most
significant performance problems you bypass RexsterGraph and make your
transaction-based calls to the Batch Kibble.

https://github.com/tinkerpop/rexster/tree/master/rexster-kibbles/batch-kibble

or perhaps just send some transactional Gremlin to the Gremlin
Extension. TinkerPop has had some internal discussions on improving
RexsterGraph operations/performance, but no real plans have been
established yet to implement anything specific. If you have some
ideas for how you would like to see RexsterGraph working please feel
free to add comments/thoughts to this issue in Blueprints:

https://github.com/tinkerpop/blueprints/issues/256

Best regards,

Stephen
> --
>
>
Reply all
Reply to author
Forward
0 new messages