<p>Your question is mixing two somewhat orthogonal interpretations of the term &quot;Availability&quot;.</p>
<ul>
<li><p>The &quot;reliability theory&quot;/&quot;engineering&quot; interpretation, where availability is basically
the ratio of time the system is not failed.</p>
</li>
<li><p>The &quot;distributed computing&quot; interpretation, which is centered around the idea that</p>
<blockquote>
<p>&quot;every request received by a non-failing node in the system must result in a response&quot;</p>
</blockquote>
</li>
</ul>
<p>So, let's consider a system of two nodes, that crash at midnight, and are resume operation at noon, every day.</p>
<p>So in the first interpretation we have 50% availability, that is, no nines at all. However, the system can still fulfill the second interpretation.</p>

CC BY-SA 3.0
2012-08-29T13:58:10.773Z
2012-08-29T13:58:10.773Z
2020-06-17T09:38:08.363Z
Martin B.
<p>The "Availability" in the CAP Theorem can be regarded as a classic liveness property: every request <em>eventually</em> receives a response. It is interpreted in <a href="http://groups.csail.mit.edu/tds/papers/Gilbert/Brewer2.pdf" rel="nofollow">Perspectives on the CAP Theorem</a> in the context of distributed computing.</p>

<blockquote>
  <p>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 sufﬁcient to create problems. (In
  most real systems, of course, a response that is sufﬁciently late is just as bad as a response that never occurs.)</p>
</blockquote>

CC BY-SA 3.0
2012-12-17T13:44:58.573Z
2012-12-17T13:44:58.573Z
hengxin
<p>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.</p>

CC BY-SA 3.0
2014-01-07T09:30:18.810Z
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).
David Richerby
CC BY-SA 3.0
2014-01-07T08:56:39.017Z
2014-01-07T09:48:16.830Z
2014-01-07T09:48:16.830Z
Frans Lundberg
<p>As we know, in <a href="http://en.wikipedia.org/wiki/CAP_theorem" rel="nofollow">the CAP theorem</a>, "A" means "Availability". On wikipedia, the explanation of "Availability" is:</p>

<blockquote>
  <p>Availability: a guarantee that every request receives a response about
  whether it was successful or failed</p>
</blockquote>

<p>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?</p>

<p>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?</p>

CC BY-SA 3.0
2012-04-09T10:37:17.357Z
I see this question is cross posted from stackoverflow. http://stackoverflow.com/questions/10069147/how-to-understand-the-availability-of-the-cap-theorem.
Sai Venkat
CC BY-SA 3.0
2012-04-09T12:03:24.193Z
Yes, I think this question is more suitable to be posted here.
ciphor
CC BY-SA 3.0
2012-04-09T19:03:11.687Z
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. ..."
Marzio De Biasi
<dc.distributed-comp><db.databases><availability>
How to understand the "Availability" of the CAP theorem?
ciphor
# How to understand the "Availability" of the CAP theorem?

(Asked by: username_0 on 2012-04-09)

As we know, in [the CAP theorem](http://en.wikipedia.org/wiki/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?

**Tags:** dc.distributed-comp, db.databases, availability
> **Comments:**
> **username_1**: I see this question is cross posted from stackoverflow. http://stackoverflow.com/questions/10069147/how-to-understand-the-availability-of-the-cap-theorem.  
> **username_0**: Yes, I think this question is more suitable to be posted here.  
> **username_2**: 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. ..."  

---

## 3 answers

### Answer by username_3 on 2012-08-29. Score: 3

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.


---

### Answer by username_4 on 2012-12-17. Score: 2

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](http://groups.csail.mit.edu/tds/papers/Gilbert/Brewer2.pdf) 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 sufﬁcient to create problems. (In
> most real systems, of course, a response that is sufﬁciently late is just as bad as a response that never occurs.)


---

### Answer by username_5 on 2014-01-07. Score: 0

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.

> **Comments:**
> **username_6**: 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).  

---

