Many commercial applications require high availability. On the other hand, every system that stores replicated data should strive for consistency. If in addition the system may suffer partitioning due to network failures, there is, however, a fundamental problem, captured by "Brewer's CAP-theorem", or its more recent extension the "PACELC" theorem see The last of these references introduces PACELC! For your essay, you are required to consider the three distributed systems described in the articles below In your essay explain the fundamental problem addressed by the CAP theorem. Moreover, for each system, state its purpose and the context in which it is used and give a brief overview of its architecture. Then discuss for each system in more detail how the problem indicated above manifests itself and the choices that have been made by its designers to deal with it. In particular, pay attention to the type of consistency offered by the system and describe how it is achieved. Also report whether, and if so what, evidence is given in the paper that the architecture achieves the desired high availability.

Here is a fourth system that provide highly available storage