I'd like to highlight that we're not stubborn enough to admit we were right
all along, because we weren't. It's unrealistic to think that someone gets
something right the first time, and we're no different. High replication is
our admission that the problem isn't that we can't get the average error
rate down, the problem is that we can bring it down but we can't eliminate
datastore latency spikes.

As far as eventual consistency goes, our users that are on high replication
have not seen any issues. If we weren't always fussing about transparency,
we would probably have been able to not even bring it up, and it's unlikely
anyone would have noticed - we just figured it'd make more sense to
communicate it, though now we are seeing that users are overreacting a bit.
Did you know index creation is also asynchronous? That is, when you save a
property, it returns before indexes have been created? Technically, this
constitutes a consistency issue, but it has no real world impact because it
is instantaneous. We documented eventual consistency issues because they are
an order of magnitude slower than asynchronous index creation, so in some
small cases of "write an entity then do a cross entity group query" the
query results will be off. If you've run any kind of SQL service at scale
that replicates to a read-slave, you should be used to this pattern of
persistence.

We plan on setting High Replication as the default for all new applications.
It's not quite removing it, but perhaps we will explore that direction,
though we are current hesitant to do so.

We also plan on having some guest blog posts ... soon. If we had the
manpower, we would work with each and every one of you to migrate over, then
help you benchmark. Unfortunately, we can't. We can, however, try to publish
as much data as we have as it comes in. I think the most useful data here
will be data from third-parties. As far as our tests go, everything seems
alright, but I'm pretty sure you'll all have more confidence in the results
if they're being written by users whose entire businesses depend on the
reliability and performance of App Engine.

Spines: Please link me to where the documentation says that master/slave is
the best option so we can fix it. To answer your question: yes, High
Replication mitigates the impact of datastore spikes, and provides a path
for us to pretty much eliminate them altogether.

Lastly, I want to apologize if I came off as irate. I'm usually quick to
respond emotionally, and the damn "undo send" button went away too quickly
in my gmail. I don't mean to shut down any kind of joking around, but do
remember that this group is internationally read. Sarcasm doesn't come off
well in email, and it comes off 10x more confusing for non-native English
speakers. If there's any chance any of you guys are coming to Pycon in
Atlanta next week, Wesley and I will be there. Let's smooth things over with
some drinks/food =).

Ikai Lan
Developer Programs Engineer, Google App Engine
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine



On Thu, Mar 3, 2011 at 6:37 PM, Darien Caldwell
<darien.caldw...@gmail.com>wrote:

> I'm kind of disappointed with Google's recent attitude change. When
> master/slave was all there was, it was deemed 'production worthy'. Now
> suddenly it's " If you are running a production service, you should
> not use Master/Slave datastore. Ever."
>
> Given that the HR datastore has some pretty big problems from a user
> perspective (costs 3 times more, only supports Eventual consistency),
> it's not really feasable to use for production code in *every*
> instance. So I'm very disappointed to hear these kinds of comments
> coming from Google. You shouldn't make something, then complain when
> people use it. If you don't want people using Master/Slave, maybe you
> should remove it.
>
> To berate customers for preferring an option you *provide* is just
> mind blowing.
>
> --
> 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
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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