前几天在网上看到了这篇amazon CTO Werner Vogels的文章，讲分布系统最终一致性的，特意翻过来，学习
Eventually Consistent – Revisited
By Werner Vogels
I wrote a first version of this posting on consistency models about a year ago, but I was never happy with it as it was written in haste and the topic is important enough to receive a more thorough treatment. ACM Queue asked me to revise it for use in their magazine and I took the opportunity to improve the article. This is that new version.
一年前我首次发表这篇关于一致性模型的文章，但郁闷的是那篇文章写得太仓促，而且这个主题很大，本应该投入更多精力。ACM Queue（一本很牛B的杂志，ACM办的，http://queue.acm.org/ ）希望我能够修改一下这篇文章，他们杂志可以用。我答应了他们，一举两得，这样还可以有机会去完善我的文章。以下是这篇文章的新版本。
Eventually Consistent - Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability.
At the foundation of Amazon's cloud computing are infrastructure services such as Amazon's S3 (Simple Storage Service), SimpleDB, and EC2 (Elastic Compute Cloud) that provide the resources for constructing Internet-scale computing platforms and a great variety of applications. The requirements placed on these infrastructure services are very strict; they need to score high marks in the areas of security, scalability, availability, performance, and cost effectiveness, and they need to meet these requirements while serving millions of customers around the globe, continuously.
创建亚马逊云计算的时候我们的定位是，一个像亚马逊S3（Simple Storage Service）、Simple DB和EC2（Elastic Compute Cloud）一样的基础设施，他可以提供资源，搭建全网范围的计算平台和大量应用。对这些基础设施的要求是很苛刻的，他们需要在安全性、伸缩性、可用性、性能和性价比上都有上佳的表现，而且要知道，所有的这些要求是建立在不间断的为全球数百万用户提供服务的基础上的。
Under the covers these services are massive distributed systems that operate on a worldwide scale. This scale creates additional challenges, because when a system processes trillions and trillions of requests, events that normally have a low probability of occurrence are now guaranteed to happen and need to be accounted for up front in the design and architecture of the system. Given the worldwide scope of these systems, we use replication techniques ubiquitously to guarantee consistent performance and high availability. Although replication brings us closer to our goals, it cannot achieve them in a perfectly transparent manner; under a number of conditions the customers of these services will be confronted with the consequences of using replication techniques inside the services.
One of the ways in which this manifests itself is in the type of data consistency that is provided, particularly when the underlying distributed system provides an eventual consistency model for data replication. When designing these large-scale systems at Amazon, we use a set of guiding principles and abstractions related to large-scale data replication and focus on the trade-offs between high availability and data consistency. In this article I present some of the relevant background that has informed our approach to delivering reliable distributed systems that need to operate on a global scale. An earlier version of this text appeared as a posting on the All Things Distributed weblog in December 2007 and was greatly improved with the help of its readers.
- 阅读剩余部分 -