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

Reply via email to