Skip to content
About
Main content

What distributing data forbids

What this article forbids

  1. Write throughput from replication. R multiplies write work; only P divides it. Any plan to fix write capacity by adding is arithmetic-illiterate.
  2. Splitting a single hot key. The same impossibility as above: no function separates a key from itself.
  3. Load balance from balancing bytes. The measurable proxy and the binding resource are different quantities, and the gap is systematic.
  4. A rebalancer that converges faster than bytes ÷ throttle, and therefore any rebalancer that can track fast-moving load.
  5. Unambiguous ownership without a fenced, versioned map. Clients will hold stale maps; the only sound design rejects on arrival instead of trying to refresh in advance.
  6. Independent replica failure inside one failure domain, a limit of durability's (placement across failure domains).
  7. Local-latency writes with a single global serialization point at intercontinental distance. Speed of light, permanent.

Escapes and what each costs

EscapeBuysCostsPaid by
Partitioningcapacity, throughput, quadratic recoverymetadata, fixed per-partition cost, a count you must choose before you knowthe operator, later
Replicationavailability, durability, read capacityR× writes and R× storageevery writer, always
Split the replica roles (witness, learner)intersection without storage, or storage without votesmore configuration surface; one more thing to get wrongthe operator
Flexible tune write cost against election costelection availability, or write latency: pickwhichever you shrank
Fixed partition count becomes pure reassignmenta number chosen against unknown growthfuture you
Throttled copy-then-cutoverreversibility and unambiguous ownershiphours of convergence, peak footprint above steady statethe disks you were trying to relieve
reads at a timestampread scale without unbounded stalenessa wait instead, plus a closed-timestamp mechanismthe reader, visibly
Geographic ownership partitioninglocal-latency writes and a single order per keycross-region access for anything spanning homesthe rare global query
Give up single ownershiplocal writes everywhereconflicts you must now define awayexactness

The two escapes with the best ratios, splitting the replica roles and converting staleness into a wait, are both cases of refusing to let one number stand for several independent things. That is the practical signature of this article: replication factor, quorum size, vote count and read eligibility are collapsed into a single knob by default, and most of the available headroom is in separating them.