Hm? Hasn't it sacrificed partition tolerance? A netsplit is a partition.
Hm? Hasn't it sacrificed partition tolerance? A netsplit is a partition.
Partition tolerance doesn't mean partitions don't affect the system, or that they can't happen. It just means the system has to choose whether to become unavailable or inconsistent (since it can't have both in the presence of a partition). IRC chooses to remain available, at the cost of losing messages for people on the wrong side of the split.
IRC is an AP system. It stays up (+A) in a netsplit (+P) but the resulting servers are not consistent.
Consider a replicated database. A replica that's partitioned from the others cannot receive or propagate updates and will become inconsistent with those on the other side of the partition.
If you allow that node to stay up, you're sacrificing consistency for availability; and you're "AP".
If you force that node down, you're sacrificing availability for consistency; and you're "CP".
In principle, you can choose "CA". That's equivalent to saying "I choose to offer no service at all in the presence of a partition", so that's kinda sorta strictly worse for most workloads than "CP" and therefore uncommon in practice.