> Are you implying that the GAE DAL could profit from new exceptions for
> BigTableDownForMaintenance & BigTableTimeOut?

Yeah, these exceptions could be better handled.

A couple more things about GAE: using offset to do pagination will not
work beyond 1000 rows, and count() should not be used because it is O
(n) and also does not work beyond 1000 rows.

Robin

On Sep 20, 12:54 pm, notcourage <klr...@gmail.com> wrote:
> Are you implying that the GAE DAL could profit from new exceptions for
> BigTableDownForMaintenance & BigTableTimeOut?
>
> On Sep 19, 11:12 am, Robin B <robi...@gmail.com> wrote:
>
> > The GAE DAL does not try to handle the 1000 fetch limit.  GAE apps
> > must be designed differently, meaning if you need more than 1000
> > results from a query, then probably what you were attempting to do is
> > not scalable.  Queries are O(#results), so you should keep your
> > queries small to make your requests fast.
>
> > Web requests should return results not compute results.
>
> > To compute results, you should use the 'appengine task queue' to
> > register webhook call-backs to perform aggregation offline like a map-
> > reduce job.  Then web requests are quick and just serve a short list
> > of answers.
>
> > As far as maturity, the GAE DAL driver has been used in production for
> > over a year in its current form, so it is stable.  Since then, Google
> > has added a Capability API, so you can now tell if the DB is in read-
> > only (maintenance) mode before attempting writes, which means you
> > could return a nice maintenance mode message to your users instead of
> > failing.  Also the GAE datastore can sometimes throw spurious
> > 'Datastore Timeout Exceptions' which could be caught and then could
> > attempt exponential backoff and retry.
>
> > Appengine apps are designed differently, and those differences are
> > what allow GAE apps to scale horizontally.
>
> > Robin
>
> > On Sep 19, 7:28 am, hcvst <hcv...@googlemail.com> wrote:
>
> > > Hi,
>
> > > I am planning to deploy to GAE and should hopefully see quite a few
> > > users eventually.
> > > Does DAL's GAE support scale well? Will I run into the 1000 fetch()
> > > limit or is that handled
> > > under the hood for example?
> > > Should one rather handcraft the Datastore interface with let's say
> > > 1000 concurrent users or
> > > will web2py's DAL handle it and handle it efficiently?
> > > It would be great if someone knowledgeable in web2py's GAE support
> > > could restate GAE's
> > > "Best practices for writing scalable applications" 
> > > athttp://code.google.com/appengine/articles/scaling/overview.html
> > > in terms of web2py's DAL for GAE. It's a lot to ask for, I know, but
> > > it sure would be great :)
>
> > > Thanks,
> > > HC
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to