Hello,
I would expect batch gets to be one of the fastest ways to retrieve data 
from the datastore. However, how does it compare to a query to get all the 
entities of a kind that are below an ancestor? Of course, this query does 
not have any filters or sort orders.

I would expect this query to be as fast as a batch get, because I would 
think that it does NOT require an index scan, and would only require the 
retrieval of the entities directly from the entities bigtable. Also, 
assuming that all the entities in this table are sorted by their keys, the 
results would be sitting one next the order, all sequentially arranged - 
which is not a guarantee in a batch get.

Considering both operations retrieve the same amount of entities, in terms 
of cost, the query would have only +1 read operation when compared to a 
batch get.

Do my assumptions make any sense? Will these queries be as fast as batch 
gets? 

I am planning to make heavy use of these queries if I could confirm my 
expectations. I would organize my models in a hierarchy to create 
on-to-many relationships. This would avoid storing ref's to other entities 
in a multi-valued property (for batch gets), would not have the property 
list size limitation and I could also avoid retrieving a large entity (with 
a lot of multi-valued properties) in situations not requiring the batch get 
at all. 

However, I would need to do an ancestor query for the entity children to 
get my relationships. I am hoping this query would be as fast as a batch 
get, for the reasons mentioned above. 

I would really appreciate any comments on that! Please.

I have asked the question on the stackoverflow, but I am hoping that the 
engineers behind datastore can give me a definitive answer on this. =)
http://stackoverflow.com/questions/15058976/how-the-performance-of-datastore-batch-gets-compares-to-ancestor-only-queries

Thank you in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to