On Sat, Nov 29, 2008 at 3:24 PM, Alexander Kojevnikov <
[EMAIL PROTECTED]> wrote:

>
> > That should never be the case. If the index wasn't fully updated, it
> > should serve you an old version of both the index and the data. If
> > something else happens, it is definitely a bug, so you should file a
> > ticket giving as much information as you can.
>
> Dave, this behaviour is documented here (see the section called "The
> commit() process"):
> http://code.google.com/appengine/articles/transaction_isolation.html
>

Yup.  The put() happens in two stages.  During the first stage, queries use
indexes that reflect the old data, and fetches of the entity get the old
data.  During the second stage, queries continue to use indexes that reflect
the old data, but fetches of the entity get the new data.  Once the put() is
complete, both queries and fetches use the new data.

This means there is a brief period of time while indexes are being updated
during which queries will return entities that may no longer be valid
results for the query.  Note, however, that the request handler performing
the put() will never notice this, because the put() doesn't return until
indexes are up to date.

-- Dan

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
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