Skip to content
About
Main content

Non-crash faults

What should a system do about a node that is up and wrong, short of Byzantine consensus?

Between crash and Byzantine lies the practically dominant category: a node that is up and wrong. Examples: corrupted bytes on a network card with weak checksums, a misconfigured member with a different view of the cluster, a half-open connection (one side thinks it is open, the other has closed it), a client pinned to a stale configuration.

Byzantine consensus costs . The reason: you must decide on N − f responses (f nodes may not answer), and of those, f may lie. The honest ones must outnumber the liars, so N − 2f > f, hence N > 3f. It also needs extra rounds. It is rarely justified inside one administrative domain, where the threat is bugs rather than adversaries.

The practical substitutes are end-to-end checksums, validation on arrival, and checks everywhere. This is the fencing discipline already derived, applied as a general defence and not only against stale . It also explains why detection of an asymmetric belongs here: the same node is "up" for one observer and "down" for another (gray failure is what the system does next).