App Engine Now Has Multi-Tenancy and Increased Datastore Quotas
The 1.3.6 release
of Google App Engine has a large list of new features compared to the
last version. Both Python and Java programs now have support for
multi-tenancy applications. In addition, GAE now includes a
high-performance image serving system, custom error pages, relaxed
quotas for the datastore, and a few other new features.
GAE continues to knock down datastore limitations in its releases, and
today some limitations have been lifted that were in place since its
launch. Developers can now exceed the 1,000 entity limit on count and
offset queries. These queries now safely execute until they return or
until the application hits the request timeout limit. In addition,
almost all of the burst quotas for free apps have been raised to the
level of paid apps.
It's all done by storing a copy of the image in Blobstore and requesting a high-performance per-image URL. You just call the Python function get_serving_url, or the Java function getServingUrl and provide a Blob key along with optional serving size or crop arguments. Developers can now easily serve hundreds of thumbnails on a single page, but you do need to enable billing in order to have high-performance image serving in your deployed application.
Multi-Tenancy
The Namespaces API allows multiple client organizations to run the same application by segregating data using a unique namespace for different clients. This is big news for developers who have wanted to serve the same app to multiple customers, with each customer having their own version. With a slight amount of configuration, and no code changes, you can use this API. The Namespaces API is very customizable. Learn how to use it from these Java and Python examples.
More Datastore
GAE continues to knock down datastore limitations in its releases, and
today some limitations have been lifted that were in place since its
launch. Developers can now exceed the 1,000 entity limit on count and
offset queries. These queries now safely execute until they return or
until the application hits the request timeout limit. In addition,
almost all of the burst quotas for free apps have been raised to the
level of paid apps. Custom Error Pages
No longer do developers have to accept the automatic App Engine error page. Instead, they can now create their own static HTML page that can be served automatically over quota, DoS, timeout, and other generic error classes. Configure the error handlers in your app.yaml or appengine-web.xml.High-Performance Image Serving
The new serving system for high-performance images is based on the same infrastructure as Picasa. Developers can now generate a stable URL for serving good-quality image thumbnails. The URL can serve images that are resized and/or cropped automatically. No CPU or dynamic serving load will be incurred on your application, but bandwidth is still charged as usual.It's all done by storing a copy of the image in Blobstore and requesting a high-performance per-image URL. You just call the Python function get_serving_url, or the Java function getServingUrl and provide a Blob key along with optional serving size or crop arguments. Developers can now easily serve hundreds of thumbnails on a single page, but you do need to enable billing in order to have high-performance image serving in your deployed application.
More!
- Java developers can use app.yaml (Python's configuration file) instead of appengine-web.xml
- Blobstore supports Content-Range headers
- The Admin Console interface can be used to pause task queues
- The Dashboard graphs in the Admin Console now show up to 30 days worth of data
(1 vote)
Tags:
- Login or register to post comments
- 5503 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



