http://code.google.com/intl/en/appengine/docs/python/datastore/hr/#Comparing_the_Data_Storage_Options
You can select one of two data storage options when you create your application: The Master/Slave Datastore The Master/Slave Datastore is the default for new applications. It uses a master-slave replication system, which asynchronously replicates data as you write it to another data center. Since only one datacenter is the master for writing at any given time, this option offers strong consistency for all reads and queries, but your data may be temporarily unavailable during data center issues or planned downtime. This option also offers the lowest storage and CPU costs for storing data. The High Replication Datastore The High Replication Datastore is a new, highly available, highly reliable storage solution. It remains available for reads and writes during planned downtime and is extremely resilient in the face of catastrophic failure—but it costs more than the Master/Slave option. ______________________________________ ------------- >>>> Due to the higher cost, we recommend High Replication Datastore primarily for those developers building mission critical applications on App Engine. <<<<<<<<<<<<<< ------------ On 4 mar, 20:06, "Ikai Lan (Google)" <[email protected]> wrote: > 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 > <[email protected]>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 [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. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. 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.
