The reasoning of the previous paragraph, although perhaps well-thought out and convincing, is fundamentally flawed. The CAP theorem lives in a theoretical world where there is such a thing as 100% availability. 1/x
THREAD

http://dbmsmusings.blogspot.com/2018/09/newsql-database-systems-are-failing-to.html
In the real world, there is no such thing as 100% availability. Highly available systems are defined in terms of ‘9s’.

Are you 99.9% available? Or 99.99% available? The more 9s, the better. 2/x
Availability is fundamentally a pursuit in imperfection. No system can guarantee availability.

This fact has significant ramifications when considering the availability vs. consistency tradeoff that was purported by the CAP theorem. 3/x
It is not the case that if we guarantee consistency, we have to give up the guarantee of availability. We never had a guarantee of availability in the first place! Rather, guaranteeing consistency causes a reduction to our already imperfect availability. 4/x
Therefore: the question becomes: how much availability is lost when we guarantee consistency? In practice, the answer is very little.

Systems that guarantee consistency only experience a necessary reduction in availability in the event of a network partition. 5/x
As networks become more redundant, partitions become an increasingly rare event. And even if there is a partition, it is still possible for the majority partition to be available. Only the minority partition must become unavailable. 6/x
Therefore, for the reduction in availability to be perceived, there must be both a network partition, and also clients that are able to communicate only with the nodes in the minority partition (and not the majority partition). 7/x
This combination of events is typically rarer than other causes of system unavailability.

Consequently, the real world impact of guaranteeing consistency on availability is often negligible. 8/x
It is very possible to have a system that guarantees consistency and achieves high availability at the same time. 9/x

END THREAD
You can follow @matthewokeefe1.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: