Skip to download

hesela.dev

Storage glossary · datasets · llms.txt · hesela.com

Dataset · Source extract and model arithmetic

Eleven nines: what a durability model does not prove

Historical source figures and reproducible fixed-window arithmetic: distinguish Poisson event counts from distinct-shard binomial probabilities, with explicit storage-class scope.

Download CSV21 rows · 7 columns · CSV

File /data/datasets/s3-durability-eleven-nines-derivation.csv · JSON metadata · All datasets · Human-readable note on hesela.com

Method

We reviewed AWS storage-class documentation, Backblaze's 2018 derivation and pinned notebook, and Greenan, Plank and Wylie's HotStorage 2010 position paper. Our Python standard-library generator uses 70-digit Decimal arithmetic. It reproduces the printed 56-window calculation separately from the 8760/hour-window convention, sums the Poisson tail directly, and independently evaluates the finite binomial sum. Four parameter sets are deterministic sensitivity scenarios, not a sample of observed losses. No AWS implementation is reconstructed.

Reproduction: Python code, full-precision JSON and four-scenario CSV. Run python3 durability-model.py --output-dir results with Python 3.12 or newer. No external libraries are required.

Limits

Table

21 rows, the same rows as the CSV. Value low and value high are legacy column names. Every row here is a point value in the high column, not an uncertainty bound. Units are in the unit column. Sources are the pages opened on 2026-10-15.
MeasureValue lowValue highUnitScopeNoteCitation
S3 Standard durability design targetnot stated99.999999999percent of objects per yearS3 Standard (vendor target)Vendor target, not an observed loss rate.aws-s3-faq
Minimum Availability Zones holding an objectnot stated3zonesS3 Standard; excludes One Zone classesOne Zone-IA and Express One Zone do not share this three-zone scope.aws-s3-userguide
S3 Standard availability targetnot stated99.99percent per yearS3 StandardAvailability target, distinct from durability and any contractual SLA.aws-s3-faq
Annual loss probability implied by 11 ninesnot stated0.00000000001probability per object per yearDerived by us: 1 minus 0.99999999999Arithmetic on the eleven-nines target, not a measured probability.aws-s3-faq
Expected losses a year with 10,000,000 objectsnot stated0.0001objects per yearDerived by us: 10,000,000 x 0.00000000001Linearity of expectation does not require independence; a waiting-time or any-loss probability needs further assumptions.aws-s3-faq
Shards per object, Backblaze B2not stated20shardsReed-Solomon, 2018 postHistorical 2018 architecture, not a current specification.backblaze-2018
Shards needed to rebuild an objectnot stated17shardsSame schemeIdeal erasure-code threshold; other forms of corruption are outside this model.backblaze-2018
Missing shards exceeding the coding tolerancenot stated4distinct unavailable shardsIdeal 20/17 code, no other corruptionFour different unavailable shards, not necessarily four Poisson events.backblaze-2018
Drive annualized failure rate assumednot stated0.81percent per yearBackblaze average over the trailing 60 days of the postHistorical fleet input; not an assumed universal device hazard.backblaze-2018
Effective failure rate used in the derivationnot stated0.41percent per yearBackblazeHalf of 0.81% is 0.405%, rounded by the source to 0.41%; recovery credit is an assumption.backblaze-2018
Rebuild interval assumednot stated156hours (6.5 days)BackblazeThe post directly assumes 6.5 days. Its separate 12 TB / 12 day example does not derive 156 hours.backblaze-2018
Poisson probability of exactly 4 events in one intervalnot stated0.000000000000189probability per 156 hour intervalHistorical event-count approximationRounded reproduction of exactly four events; excludes the upper tail and does not count distinct shards.backblaze-2018
Intervals per year usednot stated56intervalsBackblazeRounded convention; 8760/156 is approximately 56.153846, not exactly 56.backblaze-2018
Durability Backblaze statesnot stated11ninesBackblaze B2, 2018Vendor claim in the 2018 post, not a loss measurement.backblaze-2018
Printed-window Poisson approximation, recomputednot stated0.0000000000106probability per object per yearDerived: exactly 4 events, 56 periodsRounded value; generator separately publishes printed-window and full-year conventions.backblaze-2018
Same formula with 0.81% failure rate (no recovery credit)not stated0.00000000016probability per object per yearDerived by usFourth-power scaling is a rare-event approximation, not an exact law.backblaze-2018
Same formula with 2% failure ratenot stated0.0000000060probability per object per yearDerived by usThe 2% input is illustrative, not an observed replacement population.backblaze-2018
Same formula with a 312 hour rebuildnot stated0.000000000085probability per object per yearDerived by us with 28 intervals a yearApproximate cubic window sensitivity assumes rare events and a fixed-window model.backblaze-2018
Expected losses for fixed 1e13 object-yearsnot stated100objectsDerived: exposure x 1e-11; not a waiting-time guaranteeFixed exposure arithmetic; a surviving initial population without replacement would require a survival calculation.backblaze-2018
MTTDL value cited for the Pergamum archivenot stated1400yearsGreenan et al. cite it as an example of a Markov-model estimateExample cited in the position paper; not reproduced by Hesela.greenan-hotstorage10-pdf
MTTDL for a sample 8-disk RAID4 arraynot stated37.60yearsGreenan Table 1: Markov-model example; not a finite-horizon loss probabilityTable 1 comparison example, not a measured mean or an estimate of S3 durability.greenan-hotstorage10-pdf

Columns

measure (string)
The quantity as the source names it, or our derived quantity.
value_low (number)
Retained legacy range column; empty for this point-value extract.
value_high (number)
Point value, not an upper uncertainty bound; see scope and note.
unit (string)
Unit of the value.
scope (string)
Population and context the value applies to; 'Derived by us' marks our arithmetic.
note (string)
What the value is not, or the source wording behind it.
citation_id (string)
Id of the opened source in the citations list; several ids are separated by semicolons.

Rights and reuse

No standalone reuse license has been verified for this mixed-source derived CSV. It combines attributed source figures and labeled arithmetic; it is not an observed loss dataset or a copy of the papers. The sources retain their own rights.

Standalone CSV reuse license: not verified. Rights evidence reviewed 2026-10-15. This records the limits of the evidence, not a conclusion that every use is prohibited.

The JSON field licenseUrl links to this statement for compatibility; it is not a license grant. The review covers the primary publication and any publisher policy listed below, not every secondary source or research artifact.

Sources

  1. Amazon S3 FAQs, Durability and Data Protection (AWS, vendor document) (accessed 2026-10-15)
  2. AWS S3 User Guide: storage classes, durability and Availability Zone scope (accessed 2026-10-15)
  3. Backblaze Durability Calculates at 99.999999999% And Why It Doesn't Matter, Brian Wilson, Backblaze blog, 17 July 2018 (vendor derivation) (accessed 2026-10-15)
  4. Mean time to meaningless: MTTDL, Markov models, and storage system reliability, Greenan, Plank, and Wylie, USENIX HotStorage 2010 (USENIX PDF, independent academic source) (accessed 2026-10-15)
  5. Backblaze erasure-coding durability notebook, pinned revision 37f758d (accessed 2026-10-15)