We now consider the practical implications of the relationship that was established above.
An immediate implication of the relationship between TC, TA, and TP is an alternate validation of the Brewer Conjecture.
As TC + TA ≥ TP, we can conclude the following.
- If a service is Strictly Consistent (TC = 0) and Perfectly Available (TA = 0), then it is not partition tolerant (TP = 0). In other words, a Strictly Consistent and Perfectly Available service cannot also be Partition Tolerant (TP > 0).
- If a service is Partition Tolerant (TP > 0) then either it is not Strictly Consistent (TC > 0) or the service is not Perfectly Available (TP > 0). In other words, a Partition Tolerant service must compromise either Consistency or Availability.
That is Brewer’s Conjecture.
Placing limits on Availability and Consistency in a practical service
The relationship between TC, TA, and TP helps establish practical limits on consistency and availability guarantees in a service.
In practice it is impossible to entirely eliminate partitions (TP = 0) because failures can and will occur. While there is a high probability that the service will face short network partitions, one can design services that will have a low probability of long network partitions.
If a service is required to provide a response to each request within some amount of time T1 then the best consistency guarantee that can be provided is that the service is (TP – T1) Consistent.
Similarly, if a service is required to provide a consistency guarantee of T2 (i.e. that the service shall be T2 Consistent), then the service cannot guarantee a response in less than (TP – T2).
Finally, if a service is required to provide a TC Consistency and a response in less than TA then the infrastructure shall guarantee that no node in the service will suffer a network partition between with any other node lasting more than TC + TA.