Sounds a lot like "code" ;-)

Rick

-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
Behalf Of Tobias Ivarsson
Sent: Thursday, May 20, 2010 2:55 PM
To: Neo user discussions
Subject: Re: [Neo] Transactions in Neo4j REST Server

Hi buddies!

My vote is for adding support for posting a batch of operations to be
executed within the context of one transaction. What we need to figure out
is how these should be expressed. Starting from a list of requirements is
usually a good idea. The features I can think of that the batch operations
should be able to do is:
* Create nodes
* Create relationships
* Assign/update/remove properties
* Verify assumptions

The verification of assumptions is the trickiest part. The easies way I can
think of for doing this is to have the client read all interesting state
using the current API, then build a set of operations to post to the server,
including a set of pre-conditions that need to validate for the transaction
to be executed. If the operations fail the response will contain the failing
conditions and the client can either drop the request or create a new
request, either from scratch or based on the previous one and the
information about the failing conditions.

It might be more useful though to allow the operations to read state and
decide on actions based on that. But supporting that is much harder, the
"set of operations" is starting to approach a script in some programming
language at that point.

Like dr Webber I believe that allowing for client side (explicit)
transaction management will lead to resource starvation.

Just the thoughts I've been having around this, WDYT?

Cheers,
Tobias

On Thu, May 20, 2010 at 5:51 PM, Kevin Raison <rai...@chatsubo.net> wrote:

> I am in a situation where being able to bulk upload an ntriples-like
> file or perhaps a large JSON data blob via the REST interface as a
> single transaction would be incredibly helpful.  Consider this a feature
> request.  Thanks for your work on this!
>
> Cheers.
> Kevin
>
> On 5/20/10 6:14 AM, Jim Webber wrote:
> > Hi fellow graph-tastic people,
> >
> > Allowing a transaction to span multiple requests was ruled out in the
> early version of the REST API. It's a dangerous pattern that allows for
> inadvertent (or even malicious) denial of service.
> >
> > If we're going to build systems that sympathetic to the Web, then
> exposing transactions like this is not the way to go.
> >
> > Having said that, the REST API will need more functionality and that new
> functionality will need to address transactionality, but it will need to
do
> so in a way that doesn't compromise its Web-iness. Rick's response is one
> approach, where a transaction is modelled as a resource; another approach
> might be to submit a transactional "workflow" through the API and get a
> result graph/set back.
> >
> > I promise I'll do some work on the API again soon. So start yelling your
> requirements and I'll prioritise them (and will ignore the ones that are
too
> hard for me to implement, naturally :-)
> >
> > Jim
> > _______________________________________________
> > Neo mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
>
> --
> Kevin Raison
> Founder, CTO
>
> Chatsubo.net, LLC
> 9708 1st Ave NW
> Seattle, WA 98117
> rai...@chatsubo.net
>
> ph: +1 (206) 801-5728
> fx: +1 (206) 801-5729
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Tobias Ivarsson <tobias.ivars...@neotechnology.com>
Hacker, Neo Technology
www.neotechnology.com
Cellphone: +46 706 534857
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to