Requiring explicit xg means preserving the current api and semantics. 
 Which I would imagine 
is the reason.  xg transactions will fail if you have too many different 
entity groups in the transaction
so, requiring some thought before turning it on is probably a good idea, 
otherwise a lot of code will
get deployed that suddenly starts breaking on a bunch of corner cases.

Just my 2c worth ;-)

T

On Monday, September 17, 2012 4:58:09 AM UTC+8, Jeff Schnitzer wrote:
>
> Bah.  There are millions of decisions you make when building on GAE 
> which have all kinds of implications on performance and behavior.  If 
> you have inexperienced devs which don't understand the implications of 
> the data model, you're going to have worse problems than transactions 
> that run slower than they otherwise would. 
>
> Requiring XG transactions to be explicitly enabled was an API design 
> mistake. 
>
> Jeff 
>
> On Sat, Sep 15, 2012 at 8:46 AM, Jason Collins 
> <jason.a...@gmail.com <javascript:>> wrote: 
> > "Attempting to update multiple entity groups in a single transaction in 
> > Datastore now throws an error suggesting to use XG transactions." 
> > 
> > This is really unfortunate. So often, I see inexperienced devs slap an 
> > xg=True on something because of "suggestions" like this without 
> > understanding their data model or the implications. 
> > 
> > I don't think it's wise to emit a message like this. 
> > 
> > j 
> > 
> > 
> > On Friday, 14 September 2012 12:46:36 UTC-6, Bryce Cutt wrote: 
> >> 
> >> http://code.google.com/p/googleappengine/downloads/list 
> >> 
> >> A ton of bug fixes in this one. 
> >> 
> >> App Engine Python SDK - Release Notes 
> >> 
> >> Version 1.7.2 
> >> =============================== 
> >> - Paid applications can now upload Static files and Code > 1GB. 
> Additional 
> >>   storage will be billed at $0.13/GB per month.  Free applications will 
> >>   continue to be provided 1GB of storage at no charge. Free quota will 
> >> apply 
> >>   per application. 
> >> - PyCrypto 2.6 is now a GA feature for Python 2.7 
> >> - The Conversion API will be decommissioned soon. Developers using this 
> >> API 
> >>   will receive a warning message. Please find an alternative document 
> >>   conversion/OCR service. 
> >> - You can now fetch Task Queue Statistics. This allows you to fetch 
> >>   statistics and information about your task queue from within your 
> >>   application. Statistics include information such as the number of 
> tasks 
> >>   in a queue, how many tasks were executed in the last minute and 
> enforced 
> >>   rate.  This is an experimental feature. 
> >> - Added Timezone selection widget in Admin Console Admin Logs. 
> >> - Added a warning message about caching when modifying or deleting 
> >> datastore 
> >>   entities. 
> >> - Added a flush cache button to dev_appserver and Admin Console. 
> >> - Attempting to update multiple entity groups in a single transaction 
> >>   in Datastore now throws an error suggesting to use XG transactions. 
> >> - Search API now has a string maximum length limit of 2000 characters. 
> >> - We now allow a user with multiple google accounts the ability to 
> create 
> >> an 
> >>   app if they are an SMS verified user. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=1419 
> >> - A more useful error message now displays when a deployment fails 
> >>   due to local date/time settings being improperly set. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2033 
> >> - Cron Descriptions may now include non-ASCII characters. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2641 
> >> - App Config Service Delete App Version Call Count quota raised to 
> >>   10,000/day. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2808 
> >> - Queries with transactions are now supported in Remote API. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3643 
> >> - There are now more descriptive error messages for Datastore Admin 
> >>   deadline exceeded errors in stack trace. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5413 
> >> - Replaced error code “Administrators cannot be removed right now” 
> >>   with a more descriptive message. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7080 
> >> - Fixed an issue with namespace dropdown in Admin Console appearing 
> blank 
> >>   even though the URL specified namespace is correct. 
> >> - Fixed an issue where Model.get_by_id() returns none in dev_appserver 
> >>   whereas this is not allowed in production. 
> >> - Fixed an issue with dev_appserver 
> >> app_identity.get_default_version_hostname() 
> >> - Fixed an issue with mail service sendToAdmins() failing when using 
> >>   multi-arg message constructor. 
> >> - Fixed an issue with dev_appserver for mimetypes.guess_type() 
> >> - Fixed an issue with runtime failing to use scope with OAuth under 
> >> certain 
> >>   conditions. 
> >> - Fixed an issue with AppConfigNotFound error. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=686 
> >> - Fixed an issue with static path with + in dev_appserver. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=888 
> >> - Fixed an issue with support for models with large numbers of 
> properties 
> >> in 
> >>   Admin Console Dataviewer where previously the page would fail to 
> render. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=937 
> >> - Fixed an issue with multi-line string property not editing correctly 
> >>   in Dataviewer. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=1725 
> >> - Fixed an issue with URLFetch mimetools.Message parsing incorrectly. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2011 
> >> - Fixed an issue with the behavior of Expires header in dev_appserver 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2106 
> >> - Fixed an issue with Content-Disposition header being removed if 
> filename 
> >>   contains utf-8 characters. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2212 
> >> - Fixed an issue with incoming Mail API where encoded headers failed to 
> >>   decode. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2288 
> >> - Fixed an issue with non-ascii text displaying incorrect values 
> >>   when posted by URL created by blobstore.create_upload_url() 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=2749 
> >> - Fixed an issue with using sendmail in Mail API. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3106 
> >> - Fixed an issue with appcfg.py cron_info giving the wrong timezone 
> >> information. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3307 
> >> - Fixed an issue with Paging link in Datastore viewer not working with 
> # 
> >> or & 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3591 
> >> - Fixed an issue with rounding errors in crop image transform on 
> >> dev_appserver. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3647 
> >> - Fixed an issue with TypeError being incorrectly raised when 
> attachment 
> >>   has Character Set and Language Information. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3836 
> >> - Fixed an issue with Mail API attachments in unicode failing 
> >>   in_check_attachments() 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=3900 
> >> - Fixed an issue with ereporter not reporting errors when applications 
> >>   use namespaces. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4212 
> >> - Fixed an issue with Dataviewer GQL stripping new lines after initial 
> run 
> >>   and a user paginates results. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4246 
> >> - Fixed an issue with Python Unicode prefix in Datastore viewer. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4275 
> >> - Fixed an issue with get_serving_url for images giving non-cacheable 
> URLs 
> >>   in dev_appserver. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4402 
> >> - Fixed an issue with fancy_urllib using squid proxy server with 
> >>   authentication. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4849 
> >> - Fixed an issue with custom admin page not displaying when restricted 
> to 
> >>   only admins. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5117 
> >> - Fixed an issue with dev_appserver_import_hook.py handling Crypto 
> import 
> >>   accounts. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=4612 
> >> - Fixed an issue with Remote API gzip compression for transmitted data. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5298 
> >> - Fixed an issue with remote API shell not having pwd in Python Path. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5317 
> >> - Fixed an issue with Admin Console Logs < 30 minutes not being 
> available. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5494 
> >> - Fixed an issue with Apps that are using Mail API reporting 
> >>   “No Provider for address type rfc822” error. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=5769 
> >> - Fixed an issue with concurrent write access to Datastore stubs. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6058 
> >> - Fixed an issue with Viewers being able to prohibit code downloads. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6255 
> >> - Fixed an issue with billing applications that are disabled. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6344 
> >> - Fixed an issue with deploying to an existing version 
> >>   when an app has 10 versions. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6803 
> >> - Fixed an issue with bulkloader “model” class not uploading correctly. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6907 
> >> - Fixed an issue with TextProperty in Datastore viewer. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=6997 
> >> - Fixed an issue with appcfg.py request_logs failing with ~oauth2 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7011 
> >> - Fixed an issue with editing a bytestring field in Datastore viewer. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7046 
> >> - Fixed an issue with dev_appserver clearing after restart. This is a 
> >>   Windows only bug. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7244 
> >> - Fixed an issue with Cron schedule failing on 1st day of month. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7286 
> >> - Fixed an issue with gzip compression for application/plist content 
> type. 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7641 
> >> - Fixed an issue with datetime.datetime.fromtimestamp() in python 2.7 
> >>     http://code.google.com/p/googleappengine/issues/detail?id=7819 
> > 
> > -- 
> > 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/-/G5UG-1uMcQsJ. 
> > 
> > To post to this group, send email to 
> > google-a...@googlegroups.com<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > google-appengi...@googlegroups.com <javascript:>. 
> > 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 view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/dWnZl_iHE98J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to