Capacity must leave room to restore redundancy
Budget logical payload, encoding, retained state, failure-domain reserve, and repair bandwidth without deriving product durability from raw redundancy counts.
On this page
The question for today
What you’ll understand
- Convert a logical payload budget into physical encoded demand.
- Check post-failure capacity and legal replacement placement.
- Calculate repair lower bounds without presenting them as durability probabilities.
A store can have enough space for today's encoded payload and still be unable to repair tomorrow's failure. Capacity planning must reserve eligible destinations and resource bandwidth while accounting for versions, metadata, staging, and growth. The useful result is a set of explicit operating constraints, not a durability percentage inferred from a replica count. Start with byte accounting, examine the degraded topology, and test whether restoration can finish while the surviving system continues to serve its workload.
Logical payload is only one part of physical demand
For a fixed coding factor, multiply the relevant logical payload by that factor before comparing with physical capacity. Include every retained data version that actually consumes storage under the implementation's allocation model. Then account for metadata, indexes, padding, small-object allocation, incomplete uploads, temporary copies, and any additional protection layers. Do not add an imagined provider-internal code to a managed service's billed logical byte count; a self-managed physical budget and a provider invoice have different boundaries.
Reserve must also be defined at the right layer. A stated twenty-percent free target can mean a fraction of installed physical capacity, surviving capacity after a failure, or some administrative pool limit. Those are not equivalent. Document whether the reserve is before or after metadata and whether deleted space is actually reclaimable. A version hidden by a marker or protected by retention is not free just because the application's current namespace no longer lists it.
Evaluate the surviving topology before promising repair
After losing a device or domain, total usable capacity decreases while desired restored redundancy may still require the same encoded payload on survivors. Aggregate arithmetic is a necessary check, but a placement rule can reject the remaining free space if it is concentrated in the wrong domains. Ceph's recovery-full and backfill-full states illustrate that insufficient eligible space can block restoration. Test the actual failure domains and per-device fullness distribution rather than assuming the average utilization describes every target.
The recovery interval also consumes source reads, network bandwidth, decode CPU, and target writes. Its lower bound depends on the limiting resource and the bytes charged to that resource. Foreground work and scrubbing share some of those resources, and another failure can occur before restoration completes. Do not turn a short ideal repair time into a durability guarantee without a complete failure and recovery model. Measured progress and remaining degraded data provide stronger operational evidence than a configured worker count.
Use a scenario budget instead of a reassuring average
Build scenarios for normal occupancy, one-domain loss, maintenance overlap, and retention-driven growth. For each, identify both the capacity inequality and a feasible replacement placement. Record assumptions about object sizes and skew: a few large placement groups can make a uniform-distribution estimate misleading. Include growth during recovery and a bounded response when reserve is threatened. Deleting a current name is not a reliable emergency capacity lever if old versions or protected data still occupy the backend.
The queue lab illustrates normalized repair-work balance only. Reset, set both λ=4 and μ=3, predict growth from four initial work units, then Play or Step. Reset and set both λ=2,μ=3 to compare a fresh draining case. The model recomputes from its initial four when controls change at retained time, so the comparisons require Reset. It has no physical capacity ceiling, placement map, encoded-byte amplification, or product durability parameters. Use it to distinguish completed-work rate from a backlog chart, then evaluate space and failure scenarios with their own explicit evidence.
Work it through
Check a post-failure reserve
A fictional self-managed store has 120 TB installed physical capacity and a 4+2 payload factor of 1.5. Ignore all other overhead for this example. A planned failure removes 20 TB, and the target is at least 20% free on the 100 TB survivors after full repair.
The post-failure target permits encoded payload of at most 0.8 × 100 = 80 TB on survivors. Dividing by 1.5 gives at most 53⅓ TB logical payload under this deliberately simplified byte model.
A proposed 50 TB logical payload encodes to 75 TB. After full restoration on survivors it leaves 100 − 75 = 25 TB free, exceeding the twenty-TB target by five physical TB.
The installed-space check alone would be looser, so it cannot replace the degraded check. Verify legal fragment placement, metadata and temporary demand, growth, and repair bandwidth before accepting even the fifty-TB plan.
The simplified post-failure ceiling is 53⅓ TB logical, and fifty TB leaves five physical TB above the stated reserve target. This is a capacity scenario, not a data-loss probability or a product sizing recommendation.
The living notebook
Explore the model
Interactive lab · queue
Repair progress and spare bytes are separate budgets
For independent comparisons, Reset, set both λ and μ, predict backlog trend from four normalized work units, then Play or Step. No physical disk capacity, placement rule, erasure-code traffic, or durability forecast is implemented.
- Fluid backlog
- 4
- Net rate · λ − μ
- −1 /s
- M/M/1 mean residence
- 1 s
Fluid backlog starts at 4 and follows max(0, 4 + (λ − μ)t). The separate M/M/1 residence-time formula assumes Poisson arrivals, exponential service and λ < μ. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.
Look forA feasible storage plan needs both post-failure placement headroom and enough measured resources to complete repair.
Pause & reason
Check your understanding
Your turn
Try it yourself
Under a simplified 6+3 factor of 1.5, survivors provide 90 TB physical capacity with a 25% free target after repair. Ignore other overhead. Calculate the maximum encoded and logical payload, then name two omitted constraints.
Take a moment to make a prediction or work it out on paper. Open a hint when you need one.
Give me a hint
Apply the reserve to surviving physical capacity before dividing by the coding factor.
Compare with the solution
The encoded ceiling is 0.75 × 90 = 67.5 TB. Dividing by 1.5 gives 45 TB logical payload. Omitted constraints include legal failure-domain placement, per-device fullness skew, metadata/padding, temporary repair copies, retained-version growth, and residual read/network/write bandwidth. The arithmetic is necessary under its assumptions but insufficient to prove that repair or the intended availability objective can be achieved.
Keep the idea
Take it with you
- Physical demand includes encoding, retained versions, metadata, staging, and temporary work.
- Reserve must be checked on the surviving topology with legal placement destinations.
- Capacity and repair-time bounds do not by themselves establish product durability.
Read further
Original sources and deeper explanations to follow at your own pace.
Optional progress, saved in this browser when available. Revisit any lesson at any time.
Lesson not marked complete.