Jeff,

Thanks for confirmation and all the extra background information.

Dan

On Tuesday, May 19, 2015 at 6:55:02 AM UTC+1, Jeff Schnitzer wrote:
>
> It isn't the other way 'round, no. This is pretty standard fare for all 
> distributed systems, including RDBMSes.
>
> Let's say you get a timeout error (on GAE or Oracle). Did the txn commit 
> or not? It's not clear; there was probably a network disconnect and you 
> can't assume it was before or after the commit. You don't know.
>
> The HRD was (last time I checked) documented to have some edge conditions 
> that would throw ConcurrentModificationException even when the txn commits. 
> I didn't find a similar statement on a casual search now; it would be nice 
> to have some clarification from Google on this, because it would make life 
> easier if CME was idempotently retry-able. Timeouts and whatnot can just be 
> raised to the user as long as they aren't frequent.
>
> On the other hand, successful commits are successful commits. You don't 
> need to wonder about that.
>
> If you work on distirbuted applications (and practically all apps are 
> these days), this should be mandatory reading: 
> http://en.wikipedia.org/wiki/Two_Generals%27_Problem
>
> Jeff
>
> On Mon, May 18, 2015 at 10:38 PM, Dan Dubois <[email protected] 
> <javascript:>> wrote:
>
>> Hi Jeff,
>>
>> I just wanted some clarification on the following statement:
>>
>> "HOWEVER, you have to take idempotence rather seriously. The "edge cases" 
>> of the datastore produce errors/exceptions. Errors can happen even if the 
>> underlying transaction committed successfully."
>>
>> Are you saying that datastore transaction API might return an error to us 
>> but actually commit anyway? I just hope that it's not also the other way 
>> around where the transaction API returns that everything is OK but actually 
>> doesn't commit!
>>
>> Dan
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Google App Engine" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/google-appengine.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-appengine/9b40bc26-1078-4e7f-bc73-7d292f9ec46c%40googlegroups.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/3a700a9a-2e55-4869-9452-544767247834%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to