microservicesdistributed-systemcap

How a system can be CP?


My understanding of Partition tolerance is that system should continue to work even if there is network partition. But CP System states that if there is network partition then system should shut down to preserve consistency .Then how CP system hold partition tolerance property.

Thanks


Solution

  • Your confusion arises from the definition of "working". Erroring out is acceptable to satisfy C, which only requires that every read attempt either sees the latest write or results in an error response. Thus a CP system will not shut down just because there's a network partition, but will just signal errors.

    A system, broadly interpreted, which could guarantee that in the event of a partition, that fact would somehow be communicated to every component of the system, including every possible user of the system (or anybody who could ask a user for information which would have to be answered by asking the system) and as a consequence no one would make a request which would include that system could arguably satisfy CA: it guarantees that every valid request sees the latest write because there are no requests made when the guarantee can't hold.