Architektura AWS S3: petabajtová propustnost na HDD
AWS S3 zpracovává více než 400 trilionů objektů, 150 milionů požadavků za sekundu a špičkový provoz přes 1 PB/s. Základem tohoto systému jsou pevné disky, i když mají omezení v IOPS (přibližně 120) a zpoždění až 16 ms při náhodném čtení 0,5 MB. Ekonomika uchování na HDD umožňuje uchovávat eksabajty dat za minimální cenu: kapacita vzrostla 7,2 milionkrát a cena za bajt klesla o 6 miliard krát během desetiletí.
Fyzika HDD určuje výkon: vyhledávání po stopě trvá 8–9 ms (průměr), zpoždění rotace je 4 ms a přenos 2,5 ms. Sekvenční přístup je efektivní (až 300 MB/s), ale náhodný je omezen na 32 MB/s na disk kvůli mechanickým pohybům hlavy.
Paralelizmus prostřednictvím Erasure Coding
S3 kompenzuje omezení HDD masivním paralelismem. Data se rozdělí do shardů pomocí schématu erasure coding (EC) 5 z 9: 5 datových + 4 kontrolních shardů. To poskytuje 1,8x nadbytečnost místo 3x při replikaci, odolnost proti 4 selháním a 5 zdrojů pro čtení.
Výhody EC:
- Rozložení zatížení mezi 9 shardů minimalizuje hot spots.
- Paralelní čtení z 5 shardů zrychluje přístup.
- Shardování usnadňuje hedgeové dotazy pro obejití zpoždění.
Soubor 1 TB na jednom HDD dává 300 MB/s, na 20 tisících diskech – TB/s díky sčítání propustnosti.
Mechanismy paralelizmu na všech úrovních
Paralelizmus je realizován ve třech rovinách:
- Klient-front-end: fondy HTTP spojení rozdělují požadavky na mnoho koncových bodů, vyhýbají se přetížení proxy a mezipamětí.
- Front-end-back-end: EC sharduje objekty na tisíce disků v ShardStore (LSM-strom na logové struktuře).
- Operace PUT/GET: multipart uploady pro zápis, byte-range GET pro čtení – rozdělení na 100+ proudů po 10 MB/s místo jednoho gigabajtu.
Zápis je sekvenční (logový), čtení vyžaduje náhodné rozložení shardů pro zabránění frontám.
Boj proti hot spots
S desítkami milionů disků a stovkami milionů shardů za sekundu je klíčovým výzvou rovnoměrné zatížení. Jeden disk na 32 MB/s je bottleneck, plus overhead z rebalancingu.
Strategie S3:
- Náhodné rozložení: hashování shardů pro rovnoměrné využití.
- Rebalancování: kontinuální přesun dat bez výpadku.
- Horizontální škálování: přidávání disků bez dopadu na dostupnost.
LSM-struktura ShardStore je optimalizovaná pro append-only logy, kde PUT je rychlý, a GET probíhá přes indexy s paralelním hledáním.
Co je důležité
- S3 dosahuje 1+ PB/s na HDD díky EC 5/9 a paralelismu 100+ proudů.
- Průměrné zpoždění náhodného I/O: 16 ms/0,5 MB, kompenzováno 5 zdroji čtení.
- Ekonomika: 1,8x nadbytečnost EC vs 3x replikace šetří eksabajty.
- Náhodné rozložení + rebalancování předejde domino efektům od hot spots.
- Backend na LSM-stromu vytěžuje sekvenční výkon HDD.
— Editorial Team
Zatím žádné komentáře.