As we know, in the CAP theorem, "A" means "Availability". On wikipedia, the explanation of "Availability" is:

Availability: a guarantee that every request receives a response about whether it was successful or failed

However, from the perspective of engineering, there is no ABSOLUTE availability. We can only say that the availability of a system is 5'9'(99.999%), or even 8'9', but we cannot say that the availability of a system is 100%, 100% available system does not exit in reality, even if the system has millions of duplicated nodes, right?

The CAP theorem proves that no system could satisfy the 3 requirements simultaneously. My question is, if a system claims to satisfy both "A" and "P", what is the accurate meaning of this "A"? 6'9' or even higher?

  • 2
    $\begingroup$ I see this question is cross posted from stackoverflow. stackoverflow.com/questions/10069147/…. $\endgroup$
    – Sai Venkat
    Apr 9 '12 at 10:37
  • $\begingroup$ Yes, I think this question is more suitable to be posted here. $\endgroup$
    – ciphor
    Apr 9 '12 at 12:03
  • 3
    $\begingroup$ I think that taking 100% or <100% values for the Availability is ininfluent, because it is "masquerade" by the arbitrary message loss in the Partition tolerance. The availability definition used by Brewer is "Every request received by a non-failling node in the system must result in a response. That is, any algorithm used by the service must eventually terminate. ..." $\endgroup$ Apr 9 '12 at 19:03

Your question is mixing two somewhat orthogonal interpretations of the term "Availability".

  • The "reliability theory"/"engineering" interpretation, where availability is basically the ratio of time the system is not failed.

  • The "distributed computing" interpretation, which is centered around the idea that

    "every request received by a non-failing node in the system must result in a response"

So, let's consider a system of two nodes, that crash at midnight, and are resume operation at noon, every day.

So in the first interpretation we have 50% availability, that is, no nines at all. However, the system can still fulfill the second interpretation.


The "Availability" in the CAP Theorem can be regarded as a classic liveness property: every request eventually receives a response. It is interpreted in Perspectives on the CAP Theorem in the context of distributed computing.

Obviously, a fast response is better than a slow response, but for the purpose of CAP, it turns out that even requiring an eventual response is sufficient to create problems. (In most real systems, of course, a response that is sufficiently late is just as bad as a response that never occurs.)


My opinion is that The CAP Theorem Is Not a Theorem. The CAP properties in the conjecture by Brewer are simply not well-defined enough to provide a rigorous mathematical proof. So, the reason availability is hard to "understand" could be because it is simply not well-defined in this context.

  • $\begingroup$ Please make your answer self-contained, rather than expecting readers to follow a link to your blog (which can look like the main purpose, when somebody's first post contains such a link). $\endgroup$ Jan 7 '14 at 9:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.