Entwerfen von datenintensiven Anwendungen (German Edition), 2nd Edition
by Martin Kleppmann, Chris Riccomini
Kapitel 7. Sharding
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Es ist klar, dass wir uns von der sequenziellen Vorgehensweise lösen und die Computer nicht einschränken dürfen. Wir müssen Definitionen festlegen und Prioritäten und Beschreibungen der Daten vorgeben. Wir müssen Beziehungen festlegen, nicht Verfahren.
Grace Murray Hopper, Management and the Computer of the Future (1962)
Eine verteilte Datenbank verteilt Daten normalerweise auf zwei Arten über die Knoten:
-
Es speichert eine Kopie derselben Daten auf mehreren Knoten. Das ist Replikation, die wir in Kapitel 6 besprochen haben.
-
Wenn es so viele Daten oder einen so hohen Schreibdurchsatz gibt, dass ein einzelner Knoten damit nicht klarkommt, werden die Daten in kleinere Teile oder Partitionen aufgeteilt und verschiedene Teile auf verschiedenen Knoten gespeichert. Wir werden das Teilen in diesem Kapitel besprechen. Abbildung 7-1. Teilen und Sharding kombinieren: Jeder Knoten fungiert als Leader für einige Teile und als Follower für andere Teile.
Normalerweise werden Shards so definiert, dass jedes Datenelement (jeder Datensatz, jede Zeile oder jedes Dokument) genau zu einem Shard gehört. Es gibt verschiedene Möglichkeiten, dies zu erreichen, auf die wir in diesem Kapitel näher eingehen werden. Tatsächlich ist jeder Shard eine kleine Datenbank für sich, obwohl einige Datenbanksysteme Operationen unterstützen, die mehrere ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access