Cassandra Runbook

NOTE 01 · NODE REPLACEMENT

Repair, or replace-address?

A node that is down is a choice, not a command. Repair assumes the data already on that node is worth keeping. Replace assumes it is cheaper to stream a fresh copy and move on.

Decide in this order

  1. Is the process down, or is the instance gone? A stopped service on a healthy disk is not the same problem as a dead VM.
  2. How long has it been out? If it missed a long window of writes, hint replay and incremental repair may cost more than a replace.
  3. Is the token range already covered? Check that the other replicas are up before you remove anything.
  4. Are other nodes already streaming or repairing? One replacement at a time. Do not stack them.
SituationLean toward
Process crashed, disk is intact, downtime is shortStart it and repair
Disk is suspect, or the host will not come backReplace
Node has been down longer than your hint window, and the data on it is staleReplace
Several nodes in the same rack are unhealthyStop. Restore coverage before any replace

If you repair

Bring the node up only after you know why it stopped. Then run a targeted repair for the ranges it owns, not a full-cluster repair, unless you already have a repair schedule that expects one. Watch streaming and pending compactions before you call it done.

If you replace

Bootstrap a new node with the same token ownership intent. On DataStax Enterprise and Cassandra this is the replace_address / replace_address_first_boot path, set only on the first boot of the replacement. The new node streams data from the remaining replicas. It does not trust the dead node's disks.

Remove the old host from monitoring and from any seed list before you depend on the new one. Do not run repair across the ring while that stream is the only thing catching the range up.

Do not

This is a decision aid, not a procedure for a specific cluster. Versions differ on the exact property name and on whether a node can still be replaced after it has been removed. Confirm against the docs for the version you run.

Back to notes