Dunno about production, but the developer mode takes issue with it.
Even a simple single-entity transaction commit fails in M/S mode with
the test harness - ie, without calling this method:

LocalDatastoreServiceTestConfig.setDefaultHighRepJobPolicyUnappliedJobPercentage(100)

commit() always produces this:

java.lang.IllegalArgumentException: transactions on multiple entity
groups only allowed in High Replication applications

:-(

Jeff

On Tue, Oct 18, 2011 at 1:44 PM, Alfred Fuller
<arfuller+appeng...@google.com> wrote:
> I believe (you should test this) that it won't do any harm to set XG=true in
> master slave (it will just ignore you).
>
> On Tue, Oct 18, 2011 at 1:28 PM, Jeff Schnitzer <j...@infohazard.org> wrote:
>>
>> On Tue, Oct 18, 2011 at 9:07 AM, David Gay (Google) <d...@google.com>
>> wrote:
>> >
>> > One other consideration: XG transactions do not work on master/slave.
>> > While the default could be different depending on whether HRD is used,
>> > that definitely has drawbacks.
>>
>> How can I detect if running on HRD vs M/S?  I don't see anything on
>> SystemProperty.  I could try starting an XG transaction and catching
>> the exception, but that would add an extra RPC to every Objectify
>> app's startup time :-(
>>
>> The XG issue seems pretty easily solved by documentation:
>>
>> 1) If you're running on M/S, you can only use one entity group in a txn.
>> 2) If you're running on HRD, you can use up to 5 entity groups in a txn.
>>   2a) If you use multiple entity groups in a txn, this is implemented
>> with 2pc and may produce surprising effects like
>> ConcurrentModificationException on read.  This doesn't really matter
>> in practice if you use the RepeatInTransaction pattern.
>>
>> Put it this way:  Non-ancestor queries work funky on the HRD too.  Yet
>> I don't need to set a special flag just to issue non-ancestor queries.
>>  Understanding eventual consistency and exotic transaction behavior is
>> just part of working with GAE.  Magic flags that enable otherwise
>> expected behavior don't really help.
>>
>> Jeff
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> google-appengine-java@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine-java+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

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

Reply via email to