> 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 -~----------~----~----~----~------~----~------~--~---