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