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 > <[email protected] <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 > > [email protected]<javascript:>. > > > To unsubscribe from this group, send email to > > [email protected] <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 [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.
