Kopien halten eine Datenbank am Leben – aber jede Kopie enthält immer ALLE Daten. Was passiert also, wenn die Daten selbst nicht auf eine Maschine passen? Man teilt sie auf. So funktioniert es.
In Episode 9 von The Tech Intern · Systemdesign setzen wir genau dort an, wo Episode 8 aufgehört hat. Dieselbe Dabba-Bestell-Datenbank – aber jetzt hat sie eine einzelne Box übertroffen, und keine Anzahl von Kopien kann das beheben. Wir verbringen die Episode damit, sie WACHSEN zu lassen (Sharding) und SCHNELL zu halten (Indizierung), ein bewusster Kompromiss nach dem anderen.
Du wirst wissen, (jeder Begriff wird bei der ersten Verwendung erklärt, kein Fachjargon bleibt unklar):
✦ Partitionierung – horizontal (nach Zeilen) vs vertikal (nach Spalten), mit einem Telefonbuch-an-zwei-Theken-Bild
✦ Sharding vs Partitionierung – der Unterschied, über den die Leute stolpern: Sharding ist horizontale Partitionierung über GETRENNTE Maschinen ("Partitionierung teilt die Daten; Sharding teilt sie über Maschinen")
✦ Sharding-Strategien – Bereich vs Hash (die Gabel, die alles entscheidet), plus Verzeichnis, geo, zusammengesetzt & funktional
✦ Das Hot-Shard / Celebrity-Problem – warum eine virale Zeile einen einzelnen Shard schmelzen lässt und wie man ihn kühlt (zusammenfassen, dedizierter Shard, Salz, Cache)
✦ Echtes Sharding in der Wildnis – Instagrams 64-Bit-ID (8.192 Shards), Notion (480 Shards, neu shardet ohne Ausfallzeit), Discord (177→72 Knoten)
✦ Rebalancing – warum naive `hash(key) mod N` ~67% deiner Schlüssel umschichtet, um eine Maschine hinzuzufügen
✦ Konsistentes Hashing – der Ring, der nur ~1/N der Schlüssel bewegt, und virtuelle Knoten (Cassandra: 256/Knoten)
✦ Indizierung – wie ein B-Baum einen 23-Sekunden-Scan in 2 Millisekunden bei 500M Zeilen (~10.000× schneller) verwandelt, der Lese-gegen-Schreib-Kompromiss und lokale vs globale Indizes auf einer shardierten DB
Ein laufendes Beispiel (die Dabba-Food-App), echte Zahlen (alle bezogen), null Handwinken.
⏭ Nächste Episode: Caching – denn die schnellste Abfrage ist die, die du nie sendest.
━━━━━━━━━━━━━━━━━━━━
⏱ KAPITEL
0:00 Warum Kopien nicht genug sind (Zusammenfassung)
0:59 Partitionierung – Zeilen vs Spalten
1:53 Sharding vs Partitionierung: der echte Unterschied
3:08 Sharding-Strategie: Bereich vs Hash
4:50 Verzeichnis, geo, zusammengesetzt & funktional
6:26 Das Hot-Shard-Problem
7:41 Sharding in der Wildnis (Instagram, Notion, Discord)
8:56 Rebalancing – die mod-N-Falle
10:00 Konsistentes Hashing – der Ring
11:19 Indizierung – eine Zeile in einer Milliarde
12:43 Indizes sind nicht kostenlos (Typen & Kompromisse)
14:31 Zusammenfassung + was kommt als Nächstes
━━━━━━━━━━━━━━━━━━━━
🔔 Abonniere für den Rest der Systemdesign-Serie – wir bauen eine App von "Was ist überhaupt ein Server" bis hin zu WhatsApp, UPI und Hotstar von Grund auf neu.