On this topic, nobody ever answered this question:

> http://code.google.com/appengine/docs/python/datastore/transactions.html
> 
> First it says, "Make sure your transactions are idempotent" and then it gives 
> an example which isn't.
> 
> I'm not sure it's possible to do the task in that example correctly if you 
> cannot tell whether a transaction succeeded or failed when it throws an 
> exception. I just tried sketching out a solution that stored a transaction ID 
> in the model, but that won't work because there could be multiple writers. 
> The whole thing seems rather intractable, and the idea that you cannot tell 
> whether a transaction succeeded or failed violates the principle of least 
> surprise for anyone who's ever used a database!
> 
> Can some googlers weigh in, and explain how, for example, the example in the 
> documentation could be implemented correctly?
> 

So, can you?

I think that the idea of making transactions idempotent is nonsense.  I don't 
think it is going to be possible in many cases.

Either you support transactions, or you don't.  By my reading, GAE doesn't.

-Joshua

On Jul 26, 2011, at 3:40 PM, Jose Montes de Oca wrote:

> Hi Pol,
> 
> What this meas is that even if a transaction throws an exception this does 
> not means the transaction failed, thats why you need to make your datastore 
> transaction idempotent. So if you retry a transaction because it throws an 
> exception, your transaction needs to "check" if the last transaction 
> committed successfully or not.
> 
> Best,
> Jose Montes de Oca
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/google-appengine/-/bm54SrfYFdAJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to