I have been confused by this lately as well. The Java documentation says:

Queries and gets inside a transaction are guaranteed to see a single, 
> consistent snapshot of the Datastore as of the beginning of the 
> transaction. Entities and index rows in the transaction's entity group are 
> fully updated so that queries return the complete, correct set of result 
> entities, without the false positives or false negatives described in 
> Transaction 
> Isolation<http://code.google.com/appengine/articles/transaction_isolation.html>
>  that 
> can occur in queries outside of transactions.


The "without the false positives or false negatives" comment led me to 
believe that as long as I did my query within a transaction I would see 
results that were previously added within a different transaction (except 
in the case of an unapplied write - which requires manual admin 
intervention). For example, in my app I need to do some post-processing 
after a new item is added. I do this by enqueuing a transactional task. 
That task runs a query that should return the item previously added. Is 
there no way to ensure my query will include the item - e.g. avoid the 
false negative. If not, any suggestions on how to implement this sort of 
post processing once the item's index do get updated? My post processing 
queries lots of different data and stitches together a bunch of statistics 
and statistical summaries.

Thanks,

Stephen




-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/w-_g6OeGwFcJ.
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