One server, three ways to die — the single-node ceiling on capacity and throughput

A single server has three failure modes — disk full, throughput saturated, node dead — and any one of them ends your service.

Scene 01

One server, three ways to die

  1. Watch
  2. Try it
  3. Predict
  4. Capture
server-01one box. one disk. one CPU.THROUGHPUT (RPS)max RPSDISK5%HEARTBEATalivefailure mode: disk fills → writes start failing
What to watch for

Watch a single box under steady load. The disk meter creeps upward, the throughput sparkline drifts toward the red ceiling. Nothing exotic — just one server, doing its job, getting closer to its limits.

Continue unlocks when the animation finishes.
Implementation

Highlighted lines are the ones running in the diagram right now.

Server.put
the single-node write loop and its three failure branches
def put(key, value):
if disk.free_bytes < len(value):
raise DiskFull # capacity wall
if cpu.utilization > 1.0 or io.queue_full():
raise Saturated # throughput wall
disk.append(key, value)
heartbeat.tick()
return OK
# if the process dies between append and fsync,
# the only copy of the bytes goes with the disk.
HealthCheck.observe
what the watchdog sees from outside the box
def observe(server):
if not server.heartbeat.alive():
return DEAD # data lost with the disk
if server.disk.fill_ratio > 0.95:
return CAPACITY_PRESSURE
if server.throughput_ratio > 0.9:
return SATURATED
return HEALTHY

Where this sits in Build a wide-column store (Cassandra / DynamoDB family)

Scene 01 of 13, in the Why distribute? act — One server has three ways to die — and bigger boxes never fix all three.. A single box hits a capacity wall, a throughput wall, and a death event — and your data is gone.

Up next. If one box has three ways to die, the obvious move is more boxes — so the very next question is how to split keys across them.

All 13 scenes in Build a wide-column store (Cassandra / DynamoDB family) · Every curriculum

Built with Arqly
Every scene in Build a wide-column store (Cassandra / DynamoDB family) builds on the one before it.All 13 Build a wide-column store (Cassandra / DynamoDB family) scenes