HACKER Q&A
📣 totaldude87

How can AWS S3 guarantee 99.999999999% durability


Amazon S3 is designed to provide 99.999999999% durability of objects over a given year. This durability level corresponds to an average annual expected loss of 0.000000001% of objects. For example, if you store 10,000,000 objects with Amazon S3, you can on average expect to incur a loss of a single object once every 10,000 years.


  👤 posnet Accepted Answer ✓
They replicate the data by some amount within an availability zone using some form of forward error correction. They look at their machine/hard drive irrecoverable failure rates within that facility and get 99.99% durability.

Then they replicate all of that again 3 times within a region across 3 different availability zones (again independent facilities). And they are then making the claim that they will never lose all 3 facilities irrecoverably at the same time. i.e (1 - 0.9999)^3 = 0.99999999999.

Simplified view, since they likely have to tweak the replication by object size since their claim is by object and not number of bytes. But, the answer is not magic, just redundancy.

And you can get very good at predicting failures when you have millions of hard drives.

It's part of the reason AWS never open a new region without at least 3 availability zones, otherwise they couldn't run s3 there.


👤 QuinnyPig
My read is that it's via something very similar to Reed-Solomon erasure coding. Think of the old Usenet parity file approach. "Here are 100 files. You need 80 of them in order to reconstruct the file." Spread those throughout multiple facilities and you're basically there.

👤 uberman
Do you mean, "How did they arrive at that number?"