Abstract
When designing distributed web services, there are three properties that are commonly desired: consistency, availability, and partition tolerance. It is impossible to achieve all three. In this note, we prove this conjecture in the asynchronous network model, and then discuss solutions to this dilemma in the partially synchronous model.
- Hagit Attiya, Amotz Bar-Noy, Danny Dolev, Daphne Koller, David Peleg, and Rüdiger Reischuk. Achievable cases in an asynchronous environment. In 28th Annual Symposium on Foundations of Computer Science, pages 337-346, Los Angeles, California, October 1987.Google ScholarDigital Library
- Eric A. Brewer. Towards robust distributed systems. (Invited Talk) Principles of Distributed Computing, Portland, Oregon, July 2000. Google ScholarDigital Library
- Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463-492, July 1990. Google ScholarDigital Library
- Leslie Lamport. On interprocess communication --- parts I and II. Distributed Computing, 1(2):77-101, April 1986.Google ScholarCross Ref
- Nancy Lynch. Distributed Algorithms. Morgan Kaufman, 1996. Google ScholarDigital Library
Index Terms
- Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services
Recommendations
Using Paxos to build a scalable, consistent, and highly available datastore
Spinnaker is an experimental datastore that is designed to run on a large cluster of commodity servers in a single datacenter. It features key-based range partitioning, 3-way replication, and a transactional get-put API with the option to choose either ...
Local Recovery for High Availability in Strongly Consistent Cloud Services
Emerging cloud-based network services must deliver both good performance and high availability. Achieving both of these goals requires content replication across multiple sites. Many cloud-based services either require or would benefit from the ...
Comments