[Python-talk] Google app engine

Lloyd Kvam python at venix.com
Sat Apr 12 11:33:58 EDT 2008


On Sat, 2008-04-12 at 09:47 -0400, Kent Johnson wrote:
> Kent Johnson wrote:
> > Yes, I'm not saying BigTable is bad, but I think it does have a 
> > different sweet spot than, say, Postgres. I have an app that frequently 
> > does three- and four-table joins, I'm not sure how I would write that in 
> > GAE datastore. I imagine it would require some thought and re-architecting.
> 
> Here is a thread on the GAE group that addresses this pretty well:
> http://groups.google.com/group/google-appengine/browse_thread/thread/caa713957b9d6058#
> 
> Essentially the advice is to drastically denormalize your DB. Notable 
> quote: "A good way structure db's for big table is to pick the ugliest
> solution and that's the one that will work the best."
> 
> where 'ugliest' is from the point of view of traditional relational DB 
> design.

Still normalization is also done to prevent data anomalies.  I've not
had time to review the google appengine in depth.  Pre-generating
common, complex result sets; and caching are usually the first things I
would try.

Phillip Eby has been working on a product called Trellis to propagate
changes.  that might actually be a good fit for generating result sets
as the normalized data is changed.
http://pypi.python.org/pypi/Trellis
(I'm not actually using trellis yet.)

-- 
Lloyd Kvam
Venix Corp
DLSLUG/GNHLUG library
http://www.librarything.com/catalog/dlslug
http://www.librarything.com/profile/dlslug
http://www.librarything.com/rsshtml/recent/dlslug



More information about the Python-talk mailing list