I agree that the datastore is not good for adhoc runtime queries. The datastore was designed to maintain its performance characteristics independent of the number of entities stored, including query performance. (The performance of our index-backed queries is a factor of the size of the result set, not the size of the data set.) Consistent performance is usually more important than adhoc runtime queries for large scale web applications, so that's the focus of this design.
I push the alternative techniques (e.g. calculating aggregates at write time) because many web developers that grew up with single-server SQL databases--myself included--are accustomed to pushing application logic into database queries, because at a small scale that's often a best practice. Some common tasks for web apps seem like they require SQL-style features, but the lack of those features in a scalable environment doesn't make those tasks unreasonable. Yet other tasks are genuinely untenable in a scalable environment, at least not without heavy background processing. (I love our new cron feature, but we're still looking at more thorough background processing solutions.) -- Dan On Wed, Apr 8, 2009 at 1:34 PM, Marcel Overdijk <[email protected]>wrote: > > The datastore implementation (non-relational) is one of the last > things I'm bumping against (now Java is supported ;-) > > I understand that aggregate data *can* be calculated at write time. > But this is not what I want and I guess a lot of other users will > think the same. > > Also adhoc querying will be difficult with the current datastore. > Maybe I want the sum of revenue per User > or the sum of all users > or maybe the sum per Country or, City, or... this would mean a lot of > calculations to be done. IMHO this is also very error prone. > > And maybe someday our business department wants average figures > instead of sums... > > I guess Amazon is not for nothing offering persistent storage which > allows user to use e.g. MySQL. > Also Sun's Cloud features a relational database (again MySQL). > > I think 95% of all developers attracted to Google App Engine are using > relational databases in the daily job... > Like Andrew said it's a issue of barrier. > > PS: I will look into the index documentation to see if it can help me > with aggregate data. > > Cheers, > Marcel > > > > > > > > > On 8 apr, 21:40, Dan Sanderson <[email protected]> wrote: > > Some of the same problems can be solved in different ways. For instance, > > aggregate data can often be calculated at write time, obviating the need > for > > an expensive aggregate runtime query involving millions of records and > > hundreds of machines. The tricky bit is implementing the different > > solutions using compatible APIs, which isn't always possible. > > > > -- Dan > > > > On Wed, Apr 8, 2009 at 12:31 PM, Marcel Overdijk > > <[email protected]>wrote: > > > > > > > > > > > > > Maybe for performance the datastore as it is now is best. > > > But when working with data (e.g. aggregate functions like sum, avg > > > etc.) a relational database has also advantages. > > > > > On 8 apr, 19:58, Andrew Badera <[email protected]> wrote: > > > > It might not make "sence" but it certainly makes "sense" when you're > > > living > > > > in a world full of RDBMS, and want to make the barrier to entry as > low as > > > > possible. > > > > > > Thanks- > > > > - Andy Badera > > > > - [email protected] > > > > - Google me:http://www.google.com/search?q=andrew+badera > > > > > > Sent from Albany, NY, United States > > > > > > On Wed, Apr 8, 2009 at 1:56 PM, Barry Hunter < > > > [email protected]>wrote: > > > > > > > similar, but it wouldnt make sence to have two database backends.- > > > Tekst uit oorspronkelijk bericht niet weergeven - > > > > > > - Tekst uit oorspronkelijk bericht weergeven -- Tekst uit > oorspronkelijk bericht niet weergeven - > > > > - Tekst uit oorspronkelijk bericht weergeven - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
