Storage Tiering Service  ·  View 23 of 31  ·  6 · Operations

Policy Delivery

The six stages a policy passes before it has moved every object it is allowed to move, and the one condition that sends it back.

Editable source SVG draw.io All views
Author Policy merge request CUE · Forgejo Two reviewers economics + SRE Validate Schema + invariants no hard-coded prices Signed bundle cosign Shadow Whole corpus 0 bytes moved Projected bill delta vs live policy Dry run 1% stratified sample copies, never commits Rings 0.1 → 1 → 10 → 100% Temporal Ring gate re-reads · charges Freeze + revert pointer flip within 24 h Score Predicted vs realised day 30 · day 90 gate fails Policy Delivery — From Merge Request to 100% of Objects Data store Person or role Security / platform Application we own Decision point Risk / gap failure / alternate No policy moves more than 2% of objects or 1.5 PB in any 7-day window, whatever its rings say. v 1.0 · owner Storage Platform Architecture · date 2026-09

Decisions

  • Policies are CUE in Git. Validation rejects any policy that names a price, a latency or a vendor class; those come from the ladder, so a policy cannot quietly disagree with it.
  • Shadow runs the full classification and prices the result without moving a byte. Dry run copies a 1% stratified sample to scratch space and never commits, to measure real request cost and throughput.
  • Rings are fractions of eligible objects selected by a stable hash, so the 1% ring contains the 0.1% ring and results compare across rings.

Gates between rings

  • Re-read rate of demoted objects at most 1.5% within 14 days. Wrong-tier read rate at most 0.05%. Tiering charges at most 6% of gross saving; above 12% all demotion pauses.
  • Realised bill delta within 20% of the shadow projection for the same population.

The cap that overrides rings

  • No policy moves more than 2% of objects or 1.5 PB in any seven-day window. A tool that can relocate the corpus is a larger risk than the bill it exists to reduce.