How to understand the "Availability" of the CAP theorem?
database
Solution
I recommend that you avoid Wikipedia and instead read the definition as provided in the proof by Gilbert and Lynch.
"every request received by a non-failing node in the system must result in a response"
And the related footnote which answers your question
"Brewer originally only required almost all requests to receive a response. As allowing probabilistic availability does not change the result when arbitrary failures occur, for simplicity we are requiring 100% availability"
So if almost all requests receive a response or we allow for arbitrary failures to occur, a system can be considered to have high availability.
Problem
I don't know if this is a proper question here. 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?