Prerelease SDK 1.4.0 is out!

675 views
Skip to first unread message

Ikai Lan (Google)

unread,
Nov 18, 2010, 5:27:25 PM11/18/10
to Google App Engine
Hey everyone,

I just wanted to let everyone know that prerelease SDK 1.4.0 is out! Get it from the Google Code project:


We're still working on the docs and will have them ready for the final release, so if there are any questions about how to use the new features, feel free to ask on this thread and I'll do my best to clarify them. The release notes are below. This is an EXCITING release:

Python
------------
- The Always On feature allows applications to pay and keep 3 instances of their
  application always running, which can significantly reduce application
  latency.
- Developers can now enable Warmup Requests. By specifying  a handler in an
  app's app.yaml, App Engine will attempt to to send a Warmup Request to
  initialize new instances before a user interacts with it. This can reduce the
  latency an end-user sees for initializing your application.
- The Channel API is now available for all users.
- Task Queue has been officially released, and is no longer an experimental
  feature. The API import paths that use 'labs' have been deprecated. Task queue
  storage will count towards an application's overall storage quota, and will
  thus be charged for.
- The deadline for Task Queue and Cron requests has been raised to 10 minutes.
  Datastore and API deadlines within those requests remain unchanged.
- For the Task Queue, developers can specify task retry_parameters in their
  queue.yaml.
- Metadata Queries on the datastore for datastore kinds, namespaces, and entity
  properties are available.
- URLFetch allowed response size has been increased, up to 32 MB. Request size
  is still limited to 1 MB.
- The Admin Console Blacklist page lists the top blacklist rejected visitors.
- The automatic image thumbnailing service supports arbitrary crop sizes up to
  1600px.
- Overall average instance latency in the Admin Console is now a weighted
  average over QPS per instance.
- The developer who uploaded an app version can download that version's code
  using the appcfg.py download_app command. This feature can be disabled on
  a per application basis in the admin console, under the 'Permissions' tab.
  Once disabled, code download for the application CANNOT be re-enabled.
- Fixed an issue where custom Admin Console pages did not work for Google
  Apps for your Domain users.
- Allow Django initialization to be moved to appengine_config.py to avoid
  Django version conflicts when mixing webapp.template with pure Django.
- Fixed an issue in the dev_appserver where get_serving_url did not work
  for transparent, cropped PNGs:
- Fixed an issue with the DatastoreFileStub.


Java
---------
- The Always On feature allows applications to pay and keep 3 instances of their
  application always running, which can significantly reduce application
  latency.
- Developers can now enable Warmup Requests. By specifying  a handler in an
  app's appengine-web.xml, App Engine will attempt to to send a Warmup Request
  to initialize new instances before a user interacts with it. This can reduce
  the latency an end-user sees for initializing your application.
- The Channel API is now available for all users.
- Task Queue has been officially released, and is no longer an experimental
  feature. The API import paths that use 'labs' have been deprecated. Task queue
  storage will count towards an application's overall storage quota, and will
  thus be charged for.
- The deadline for Task Queue and Cron requests has been raised to 10 minutes.
  Datastore and API deadlines within those requests remain unchanged.
- For the Task Queue, developers can specify task retry-parameters in their
  queue.xml.
- Metadata Queries on the datastore for datastore kinds, namespaces, and entity
  properties are available.
- URL Fetch allowed response size has been increased, up to 32 MB. Request size
  is still limited to 1 MB.
- The Admin Console Blacklist page lists the top blacklist rejected visitors.
- The automatic image thumbnailing service supports arbitrary crop sizes up to
  1600px.
- Overall average instance latency in the Admin Console is now a weighted
  average over QPS per instance.
- Added a low-level AysncDatastoreService for making calls to the datastore
  asynchronously.
- Added a getBodyAsBytes() method to QueueStateInfo.TaskStateInfo, this returns
  the body of the task state as a pure byte-string.
- The whitelist has been updated to include all classes from javax.xml.soap.
- Fixed an issue sending email to multiple recipients.

As usual, we value your feedback, so don't hesitate to evaluate these SDKs and let us know. Be mindful that the server-side components have not been deployed yet, so uploaded code shouldn't work.

Happy coding!

--
Ikai Lan 
Developer Programs Engineer, Google App Engine

Robert Kluin

unread,
Nov 18, 2010, 5:40:30 PM11/18/10
to google-a...@googlegroups.com
Huge release. Looking forward to it going live.

Nice work App Engine Team.

Robert

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

Ross Karchner

unread,
Nov 18, 2010, 5:45:38 PM11/18/10
to google-a...@googlegroups.com
In Python, how do we use:

- Channel API
- Metadata Queries
--
Ross M Karchner

Felippe Bueno

unread,
Nov 18, 2010, 5:45:01 PM11/18/10
to google-a...@googlegroups.com
> - The developer who uploaded an app version can download that version's code
>   using the appcfg.py download_app command. This feature can be disabled on
>   a per application basis in the admin console, under the 'Permissions' tab.
>   Once disabled, code download for the application CANNOT be re-enabled.

good catch

Sergio Lopes

unread,
Nov 18, 2010, 6:11:41 PM11/18/10
to Google App Engine
Excelent news! Specially to protect applications from cold start.
How can I configure WarmUp requests and Always On using Java?

Thanks and congratulations!

On Nov 18, 8:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:

Alexander W.

unread,
Nov 18, 2010, 6:16:14 PM11/18/10
to google-a...@googlegroups.com
I love App Engine, it gets better and better with every release and let's you do more and more cool stuff.

I'm really looking forward to it going live.

- Alexander

Pims

unread,
Nov 18, 2010, 6:17:27 PM11/18/10
to Google App Engine
That’s a fantastic release. Can’t wait to have it in production.
Great job App Engine Team.

Tim

Ikai Lan (Google)

unread,
Nov 18, 2010, 6:17:06 PM11/18/10
to google-a...@googlegroups.com
Always On will be a paid feature you enable in the admin console.

I'll post some light sample code for channel API and warmup requests in a bit.


--
Ikai Lan 
Developer Programs Engineer, Google App Engine



Kangesh Gunaseelan

unread,
Nov 18, 2010, 6:30:32 PM11/18/10
to google-a...@googlegroups.com
Awesome additions.
Are you able to share the pricing terms for Always On feature now?

Thanks!

Ikai Lan (Google)

unread,
Nov 18, 2010, 6:39:06 PM11/18/10
to google-a...@googlegroups.com
I can't share the pricing yet - wait for the release. 


--
Ikai Lan 
Developer Programs Engineer, Google App Engine



oizo

unread,
Nov 18, 2010, 6:44:05 PM11/18/10
to Google App Engine
Metadata Queries - what's this?

Ikai Lan (Google)

unread,
Nov 18, 2010, 7:33:48 PM11/18/10
to Google App Engine
For GAE/J you can reference this project:



--
Ikai Lan 
Developer Programs Engineer, Google App Engine



On Thu, Nov 18, 2010 at 4:32 PM, Hitoshi <alto...@gmail.com> wrote:
Please cover GAE-J also.

Thanks!

Hitoshi

On Nov 18, 3:17 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>

wrote:
> Always On will be a paid feature you enable in the admin console.
>
> I'll post some light sample code for channel API and warmup requests in a
> bit.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blogger:http://googleappengine.blogspot.com
> Reddit:http://www.reddit.com/r/appengine
> Twitter:http://twitter.com/app_engine
>
>
>
>
>
>
>
> On Thu, Nov 18, 2010 at 3:11 PM, Sergio Lopes <slo...@gmail.com> wrote:
> > Excelent news! Specially to protect applications from cold start.
> > How can I configure WarmUp requests and Always On using Java?
>
> > Thanks and congratulations!
>
> > On Nov 18, 8:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com<ikai.l%2Bgro...@google.com>

Alexandre Vivien

unread,
Nov 18, 2010, 7:38:48 PM11/18/10
to Google App Engine
Hi Ikai,

What about the OpenId SSL support? Is it part of this release ?

Regards,
Alexandre Vivien

On 18 nov, 17:27, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:

Ikai Lan (Google)

unread,
Nov 18, 2010, 7:46:32 PM11/18/10
to google-a...@googlegroups.com
It's not in the release notes, so I'd lean towards no, it didn't make it.


--
Ikai Lan 
Developer Programs Engineer, Google App Engine



--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.

Chris Thoman

unread,
Nov 18, 2010, 7:48:41 PM11/18/10
to google-a...@googlegroups.com
Is the high performance image serving from the blobstore through getServingUrl / get_serving_url still going to be limited to 1600x1600?  I could really use 1920x1080 (which actually is fewer pixels).

Wilson MacGyver

unread,
Nov 18, 2010, 5:39:14 PM11/18/10
to google-a...@googlegroups.com
what's the cost of the "always on" feature? I can't seem to find it anywhere.

Thanks,

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

--
Omnem crede diem tibi diluxisse supremum.

Shaun Clark

unread,
Nov 18, 2010, 6:30:33 PM11/18/10
to Google App Engine
Is there an easy way to get this to work in Eclipse? Thanks!

On Nov 18, 3:17 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:
> Always On will be a paid feature you enable in the admin console.
>
> I'll post some light sample code for channel API and warmup requests in a
> bit.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blogger:http://googleappengine.blogspot.com
> Reddit:http://www.reddit.com/r/appengine
> Twitter:http://twitter.com/app_engine
>
>
>
>
>
>
>
> On Thu, Nov 18, 2010 at 3:11 PM, Sergio Lopes <slo...@gmail.com> wrote:
> > Excelent news! Specially to protect applications from cold start.
> > How can I configure WarmUp requests and Always On using Java?
>
> > Thanks and congratulations!
>
> > On Nov 18, 8:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com<ikai.l%2Bgro...@google.com>
> > google-appengi...@googlegroups.com<google-appengine%2Bunsubscrib e...@googlegroups.com>
> > .

aaron frank

unread,
Nov 18, 2010, 6:06:04 PM11/18/10
to google-a...@googlegroups.com
Or is there a prerelease location for the documentation?

gholler

unread,
Nov 18, 2010, 8:28:13 PM11/18/10
to Google App Engine
Really looking forward to this release. This will make a big
difference for my company's apps.
Thanks Googlers!

Sergio Lopes

unread,
Nov 18, 2010, 8:47:25 PM11/18/10
to Google App Engine
Since I'm too excited to wait, I opened the new appengine-web.xsd in
1.4.0-pre to see how to configure the new features. There is a new
<warmup-requests-enabled/> tag with a boolean value. Of course I tried
it but it gives me an error:

400 Bad Request
Error when loading application configuration:
Value 'warmup' for key ??? does not match expression '^(mail|
xmpp_message|rest|startup)$'

Hey, Ikai, teach us to use the new features please! :-)

风笑雪

unread,
Nov 18, 2010, 9:41:31 PM11/18/10
to google-a...@googlegroups.com
It's an amazing release, waiting for the docs.
----------
keakon


Karl R

unread,
Nov 18, 2010, 10:18:03 PM11/18/10
to Google App Engine
always on is *huge*

that, combined with the generally improved latency of datastore
queries of late extinguishes my feelings that perhaps I had made the
wrong choice to run our website on GAE

On Nov 18, 10:41 pm, 风笑雪 <kea...@gmail.com> wrote:
> It's an amazing release, waiting for the docs.
> ----------
> keakon
>
>
>
>
>
>
>
> On Fri, Nov 19, 2010 at 9:47 AM, Sergio Lopes <slo...@gmail.com> wrote:
> > Since I'm too excited to wait, I opened the new appengine-web.xsd in
> > 1.4.0-pre to see how to configure the new features. There is a new
> > <warmup-requests-enabled/> tag with a boolean value. Of course I tried
> > it but it gives me an error:
>
> > 400 Bad Request
> > Error when loading application configuration:
> > Value 'warmup' for key ??? does not match expression '^(mail|
> > xmpp_message|rest|startup)$'
>
> > Hey, Ikai, teach us to use the new features please! :-)
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-a...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengi...@googlegroups.com<google-appengine%2Bunsubscrib e...@googlegroups.com>
> > .

Geoffrey Spear

unread,
Nov 18, 2010, 10:23:50 PM11/18/10
to Google App Engine
Sergio,

The prerelease SDKs are for the development server only; the
production servers won't support the features until the actual
release. You can't deploy with the new features enabled, and should
continue to use the current SDK for deployed applications.

George Moschovitis

unread,
Nov 19, 2010, 1:55:17 AM11/19/10
to Google App Engine
A great release!

thanks,
-g.

On Nov 19, 12:27 am, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:
> Hey everyone,
>
> I just wanted to let everyone know that prerelease SDK 1.4.0 is out! Get it
> from the Google Code project:
> ...

Benjamin

unread,
Nov 19, 2010, 2:14:20 AM11/19/10
to google-a...@googlegroups.com
Really amazing.
Can't wait to see it release officially.

Julian Namaro

unread,
Nov 19, 2010, 2:52:03 AM11/19/10
to Google App Engine
Wow a lot of work packed there, congrats App Engine team!

I'm surprised about the new 10 minutes deadline on Cron and Task
Queues. A short while back you were explaining that long-running
requests are bad for the App Engine ecosystem. Is it not the case for
Task Queues or are you just confident that the system has improved
enough to handle it now ?

10 minutes is a lot of time. If it works out well it will open the
door to a lot of new possibilities :)


On Nov 19, 7:27 am, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:

Droid

unread,
Nov 19, 2010, 3:23:24 AM11/19/10
to Google App Engine
Looking forward to always on feature which I will use immediately (and
pay for).
Please let me know when I can beta test or buy it.
DROID ( rodsit[at]gmail.com )

On Nov 18, 11:17 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:
> Always On will be a paid feature you enable in the admin console.
>
> I'll post some light sample code for channel API and warmup requests in a
> bit.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blogger:http://googleappengine.blogspot.com
> Reddit:http://www.reddit.com/r/appengine
> Twitter:http://twitter.com/app_engine
>
>
>
>
>
>
>
> On Thu, Nov 18, 2010 at 3:11 PM, Sergio Lopes <slo...@gmail.com> wrote:
> > Excelent news! Specially to protect applications from cold start.
> > How can I configure WarmUp requests and Always On using Java?
>
> > Thanks and congratulations!
>
> > On Nov 18, 8:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com<ikai.l%2Bgro...@google.com>
> > google-appengi...@googlegroups.com<google-appengine%2Bunsubscrib e...@googlegroups.com>
> > .

Roberto Saccon

unread,
Nov 19, 2010, 4:06:14 AM11/19/10
to Google App Engine
Cool !

Has anybody figured out how to use the Channel Api and where to find
the JS files to do the clientside longpolling, iframe or whatever
comet stuff ?

I remember having played with the dance robot long time ago, that was
cool, but there there was a huge bloat load of Javascript (the whole
closure library) necessary to get it running. Is this still the
case ?

--
Roberto

Andrius A

unread,
Nov 19, 2010, 4:30:50 AM11/19/10
to google-a...@googlegroups.com
Wow wow! Thank you!

To unsubscribe from this group, send email to google-appengi...@googlegroups.com.

Sahid Orentino Ferdjaoui

unread,
Nov 19, 2010, 5:21:30 AM11/19/10
to google-a...@googlegroups.com
Very impressive!

Thank you

--
  .
 ..:

Brandon Thomson

unread,
Nov 19, 2010, 6:12:49 AM11/19/10
to google-a...@googlegroups.com
On Thu, Nov 18, 2010 at 5:27 PM, Ikai Lan (Google)
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.

This is really great for background processing and timed tasks which
need greater than 1 minute resolution. Thank you!

John

unread,
Nov 19, 2010, 8:20:09 AM11/19/10
to Google App Engine
Wow, this great stuff, definitely looking forward to the channel api:)

Great job App Engine team!

On Nov 18, 5:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.

Tapir

unread,
Nov 19, 2010, 9:27:40 AM11/19/10
to Google App Engine
I must say this release makes gae better than ec2!

On Nov 19, 6:27 am, "Ikai Lan (Google)" <ikai.l+gro...@google.com>

Sekhar Ravinutala

unread,
Nov 19, 2010, 11:14:25 AM11/19/10
to Google App Engine
Looks like a huge release, can't wait to check it out. Congrats and
thanks Google!

On Nov 18, 2:27 pm, "Ikai Lan (Google)" <ikai.l+gro...@google.com>

Ikai Lan (Google)

unread,
Nov 19, 2010, 1:07:23 PM11/19/10
to google-a...@googlegroups.com
Hi Julian,

Long running user facing requests are bad for the ecosystem, yes. Long running background tasks, however, can be placed into a different execution pool. Fast background tasks are placed into the same execution pool as your web facing requests.

The rule of thumb here is to create different queues for tasks you know will run fast (sub-second) and queues for slow running jobs.

--
Ikai Lan 
Developer Programs Engineer, Google App Engine



Ross Karchner

unread,
Nov 19, 2010, 1:27:32 PM11/19/10
to google-a...@googlegroups.com
What are the consequences of a task being in the fast pool or the slow pool?

Ikai Lan (Google)

unread,
Nov 19, 2010, 1:33:22 PM11/19/10
to google-a...@googlegroups.com
Web requests share the fast pool, so there is a chance you can block all your web facing instances from serving web requests. Additionally, the latency is averaged when considering whether or not to autoscale your instances, so putting slow work in a fast queue would prevent App Engine from adding additional instances as needed.


--
Ikai Lan 
Developer Programs Engineer, Google App Engine



Matthew Blain

unread,
Nov 19, 2010, 1:55:11 PM11/19/10