Keeping up with its mantra of monthly release cycles, Google released version 1.6.5 of its App Engine platform. Since its last release, the App Engine team has focussed on Datastore enhancements this time around with updates available for the Images API,Task Queue and additional Request Headers that provide location information for every request.
First up is the introduction of a new type of query called the Projection Query. Projection queries return entity objects that are populated only with the requested properties. The App Engine team claims that they perform at the same cost and performance as that of keys-only queries. An example of a Projection query is something similar to the following SQL query example:
SELECT name, email, phone, FROM CUSTOMER
In addition to the above experimental feature, Datastore changes include an introduction of a numeric version property that increases on every entity group change and enhancements to the Datastore Admin that allows you to now restore individual Kinds and also abort in-progress backups.
The Images API can now access image objects stored in Google Cloud and the image serving URLs are also available securely over HTTPs. Task Queues are an important feature in App Engine that help you perform asynchronous/long-running work in your applications. The App Engine team is looking for trusted testers for a feature named Task Queue statistics, that will provide important information about your task queues within your application. If interested, apply here.
Accessing user locations is an important feature in any Location based applications. A year back, the 1.5.1 release saw the introduction of the X-AppEngine-Country HTTP Request header that identified the country that the request originated from. This release sees more fine-grained information available via the introduction of additional headers like X-AppEngine-Region, X-AppEngine-City and X-AppEngine-CityLatLong that provides information right to latitude/longitude. This could prove to be of tremendous benefit to applications that had to make additional calls to retrieve location information.
Finally, if you are a Java developer, you need to include the <threadsafe> element in the appengine-web.xml file while working with the development server.