Hmm? I think Stu was asking about Dave's reference to locality,  
assuming that it was for geographical purposes - I was just stating  
that I think the reason locality was brought up was to highlight how  
each entity group can actually be persisted on a separate machine,  
thus speeding up read/write performance. Locality referring more to a  
machine, not a location (as such).

In any case, I think we're saying the same thing (as Dave originally  
mentioned too) - smaller entity groups are going to be faster.

On 11/02/2009, at 7:35 PM, mcobrien wrote:

>
> I'm not sure how much locality helps, but putting entities in a group
> for performance sounds like it could go wrong, depending on your data.
> Writes to entities within a group are serialized so having too many
> within in a single group can seriously hurt performance.
>
> The API doc has some good hints:
> * Only use entity groups when they are needed for transactions
> * A good rule of thumb for entity groups is that they should be about
> the size of a single user's worth of data or smaller
>
> (from 
> http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html)
>
> I think the scalable apps talk has some detail on this as well (and
> it's definitely worth watching anyway):
> http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine
>
> cheers
> Michael
>
> On Feb 10, 11:26 pm, Michael Hart <[email protected]> wrote:
>> Not quite right - I think the "faster" property refers to the fact
>> that reads/writes can happen in parallel (because they're split over
>> multiple machines), not because of the actual geographical location  
>> of
>> the servers (not that this wouldn't help as well, but I don't believe
>> GAE currently has support for specifying geographical data location)
>>
>> I could be wrong though.
>>
>> On 11/02/2009, at 1:43 AM, Big Stu wrote:
>>
>>
>>
>>>> It also benefits from locality. Entity groups are stored close
>>>> together (needed to make transactions fast), which is why lots of
>>>> small entity groups makes the overall application faster (because
>>>> they
>>>> can be spread out). If you do a bunch of processing on groups of
>>>> entities in a single request then you can put them in a entity  
>>>> group,
>>>> which should make that processing faster because they will be kept
>>>> close.
>>
>>>> Dave.
>>
>>> I don't quite have my head wrapped around the entity group thing
>>> either.  The transaction part I get...other benefits I don't quite  
>>> get
>>> yet.  If I were to build an app for managing dollar store  
>>> inventory or
>>> something like that would I want to make all the data related to a
>>> particular store part of the same entity group?  So that the data  
>>> for
>>> a store in Toronto is part of one group, and the data for  
>>> Vancouver is
>>> part of another, and then as far as teh datastore and access times  
>>> are
>>> concerned the storage of the datasets will be best suited to the
>>> geography of the situation?  Am I getting this right?
>>
>>> Thanks.
>>
>>> Stu
> >


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