On Sat, Jul 31, 2010 at 4:04 PM, tiemonster <m...@tiemonster.info> wrote: > So anyways... > > Google App Engine is a special case. It is not nearly as robust a > database solution as something like CouchDB or MongoDB - but then > again it was never meant to be. The direction from the beginning was > on scaling, even if it meant dropping features. The BigTable ORM lacks > many of the functions necessary for implementing the Django ORM on > that database. Python-only solutions to these gaps would not scale as > well as low-level database APIs, and as such would probably not scale > well enough to be useful. The situation has not improved because > Google doesn't see a need. App Engine fits in an even more specialized > niche than most NoSQL solutions.
Which features does App Engine's datastore lack that would be necessary for Django's ORM? Why would a Python-only solution not scale well enough? You probably mean it does scale, but it's slightly less efficient because background tasks and map/reduce are handled via requests (it's a distributed system, after all), but the overhead should still be small compared to the DB overhead. What I actually like about GAE's datastore is that it forces you much earlier to think in terms of scalability. MongoDB users might suddenly realize with a 10GB database that something is wrong and needs to be rewritten and migrated. In GAE you normally run into these issues with just a few 1000 entities or earlier. There's only one issue that can show up much later (several 10,000 entities) and I've described it here: http://www.allbuttonspressed.com/blog/django/2010/01/An-App-Engine-limitation-you-didn-t-know-about Unfortunately, GAE's upcoming extended datastore API (the one which is supposed to solve the exploding indexes problem) will use merge-joins more extensively, so that limitation will probably affect more people. > Now django-nonrel is doing some excellent work to try to implement a > workable ORM on App Engine. However, I'm sure they are facing an > uphill battle because of the constraints of the platform. I have no > doubt that they will indeed produce a workable solution in time, > though. Is our current solution not workable for you? What's missing? In our experience, Django's ORM maps pretty well to GAE's API. You can access almost all GAE features via Django's ORM in a portable way. Auth, caching, and sessions work unmodified. Many small reusable apps work unmodified (e.g., django-socialauth, django-openid-auth, etc.). What's left is mostly batch-put and cursors and entity groups. The last one would be easy to add. The first two would ideally get an equivalent in Django's ORM before they're implemented, but it should be possible to provide separate functions for those features, too. I'm just asking because I'm interested in hearing from other people which problems we need to solve to make Django-nonrel and Django's official NoSQL project practical for them. Bye, Waldemar Kornewald -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.