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.
