On Mar 17, 4:29 pm, Alkis Evlogimenos <evlogime...@gmail.com> wrote:
> Strong means all replicas will have the updates after a write returns and
> all reads after the write will "see" those updates.

On Mar 17, 7:24 pm, Nickolas Daskalou <n...@daskalou.com> wrote:
> According to the post mortem from the last outage, the eventually consistent
> option will have higher latency (=bad) than the strongly consistent option,
> in exchange for higher availability during an unexpected failure (=good).

definitely good questions. there are two distinct features here that
are getting confused. the eventually consistent read feature in 1.3.2
is *not* the same as the "higher availability using synchronous
replication" feature described in the postmortem,
http://groups.google.com/group/google-appengine/browse_thread/thread/a7640a2743922dcf
.


the eventually consistent read feature in 1.3.2 only affects reads,
not writes. the current strongly consistent reads always read from the
primary replica. eventually consistent reads may also read from the
secondary replica, in cases when the data in the primary replica is
temporarily unavailable. in those cases, the secondary replica may not
have received the latest updates, so the returned data may be stale.
in other words, this increases availability at the cost of
consistency. the read may also be slower than usual, since the
secondary replica is usually farther away.

however, this eventually consistent read feature does *not* change the
datastore's current master/slave replication design described in
http://googleappengine.blogspot.com/2009/09/migration-to-better-datastore.html
. that means that it doesn't affect writes.


the upcoming synchronous replication feature described in the
postmortem is different. it only affects writes, not reads. we haven't
finalized the details yet, but at a high level, it will allow you to
write atomically to multiple replicas at once, using paxos, as
described in 
http://code.google.com/events/io/sessions/TransactionsAcrossDatacenters.html
. this will increase write latency, but will provide additional safety
against outages. incidentally, it will also mean that eventually
consistent reads of data written with synchronous replication will
*always* return the most recent data.

-- 
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to