Network Partition
Consider a set of machines connected in a network of some arbitrary topology, with the implicit expectation that every machine in the set can talk to any other machine in the set (note we normally refer to a process in one machine talking to a process on another machine. For the purposes of this discussion, when we say "machine A talks to machine B", we imply "A process in machine A talks to a process on machine B")
In its simpler formulation, a network partition is a type of failure where a subset of machines is isolated from the rest. Consider machines A and B connected to switch S1, in turn switch S1 connected to switch S2, and switch S2 connected to machines C, D, E and F. If a failure makes the connection between S1 and S2 unavailable, then the set of machines { A, B } can talk to each other but can't take to any machine in the set { C, D, E, F }, and vice versa.
Defined as above, network partitions are one type of communication failure, most commonly resulting from the failure of one particular component (eg, a cable or switch or router) in a network topology. Sometimes the concept of network partition is used to mean more generally any communication failure: in this formulation, any failure that results in one or more machines in the set to fail to reach one or more other machines in the set is considered a network partition.
- In the set { A, B, C, D, E }, it is possible that A can talk to any other machine, but other machines can only talk to A (eg, routing misconfiguration).
- A machine M may be able to talk to a machine N but the machine N may not be able to talk back to M (eg, firewall misconfiguration).