Skip to main content

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 our purposes here, 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.

partition1.png

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.  Note that this formulation allows for considering a single machine that is disconnected from a network an extreme case of a network partition: one machine is in a partition just by itself.

Sometimes the concept of network partition is used more generally, to mean any connectivity 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).