ScholarGate
Assistent

Skalierbare Speichersysteme

Skalierbare Speichersysteme verteilen Daten auf viele Maschinen, um Kapazität, Durchsatz und Verfügbarkeit über einen einzelnen Server hinaus bereitzustellen, während sie gleichzeitig die Ausfälle einzelner Knoten maskieren.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Ein skalierbares Speichersystem speichert Daten über einen Cluster von Maschinen hinweg, partitioniert sie für Kapazität und Durchsatz und repliziert sie für Dauerhaftigkeit und Verfügbarkeit, sodass das Gesamtsystem mit der Anzahl der Knoten skaliert, während es individuelle Knotenausfälle toleriert.

Scope

Dieses Thema behandelt verteilte Dateisysteme, die für Commodity-Cluster konzipiert sind, verteilte Schlüssel-Wert- und Wide-Column-Speicher sowie die strukturierten Overlay-Techniken – konsistentes Hashing und verteilte Hashtabellen –, die zur Partitionierung und Lokalisierung von Daten in großem Maßstab verwendet werden. Es umfasst Datenpartitionierung (Sharding), Replikation zur Dauerhaftigkeit sowie die Kompromisse bei Konsistenz und Verfügbarkeit, die stark konsistente von hochverfügbaren Speichern unterscheiden.

Core questions

  • Wie werden Daten über eine große, sich ändernde Menge von Knoten partitioniert und lokalisiert?
  • Wie werden Dauerhaftigkeit und Verfügbarkeit trotz häufiger Knotenausfälle erreicht?
  • Welche Konsistenzgarantien kann ein skalierbarer Speicher bieten und zu welchem Preis?

Key theories

Cluster-Dateisysteme
Systeme wie das Google File System speichern riesige Dateien als Blöcke, die über Commodity-Server repliziert werden, optimieren für große sequentielle Zugriffe und behandeln Ausfälle als Norm statt als Ausnahme.
Verteilte strukturierte Speicher
Wide-Column- und Schlüssel-Wert-Speicher wie Bigtable und Dynamo partitionieren Daten nach Schlüssel über Knoten hinweg und replizieren sie, wobei sie Abfrageausdrucksfähigkeit und Konsistenz gegen horizontale Skalierbarkeit und Verfügbarkeit eintauschen.
Konsistentes Hashing und verteilte Hashtabellen
Konsistentes Hashing ordnet Schlüssel und Knoten auf einem Ring an, sodass das Hinzufügen oder Entfernen eines Knotens nur einen kleinen Bruchteil der Schlüssel verschiebt, und verteilte Hashtabellen wie Chord bieten skalierbare, dezentrale Schlüssel-Nachschlagevorgänge mit logarithmischem Routing.

Clinical relevance

Skalierbarer Speicher ist die dauerhafte Grundlage von Cloud-Plattformen und großen Webdiensten: Objektspeicher, Datenbanken und Analyse-Pipelines basieren alle auf verteilten Dateisystemen und Schlüssel-Wert-Speichern, deren Partitionierungs- und Replikationsentscheidungen die Dauerhaftigkeits- und Konsistenzgarantien des Systems festlegen.

History

Peer-to-Peer-verteilte Hashtabellen wie Chord (2001) zeigten skalierbare dezentrale Nachschlagevorgänge; Googles File System (2003) und Bigtable (2006-2008) demonstrierten Cluster-Skala-Speicher für strukturierte Daten; und Amazons Dynamo (2007) popularisierte hochverfügbaren Schlüssel-Wert-Speicher und begründete damit die moderne Landschaft der skalierbaren Speicher und NoSQL.

Debates

Starke Konsistenz versus hohe Verfügbarkeit im Speicher
Stark konsistente Speicher vereinfachen die Anwendungslogik, müssen aber bei Partitionen auf Verfügbarkeit verzichten, während hochverfügbare Speicher wie Dynamo temporäre Abweichungen akzeptieren und die Konfliktlösung an die Anwendung delegieren; die richtige Wahl hängt von der Toleranz der Daten gegenüber Veralterung ab.

Key figures

  • Sanjay Ghemawat
  • Werner Vogels
  • Ion Stoica
  • Hari Balakrishnan

Related topics

Seminal works

  • ghemawat2003
  • decandia2007
  • stoica2001

Frequently asked questions

Welches Problem löst konsistentes Hashing?
Wenn Daten durch Hashing von Schlüsseln über Knoten partitioniert werden, ordnet naives Hashing fast alles neu an, wenn ein Knoten hinzugefügt oder entfernt wird. Konsistentes Hashing ordnet Schlüssel und Knoten auf einem Ring an, sodass eine solche Änderung nur einen kleinen, begrenzten Bruchteil der Schlüssel neu positioniert, was für elastische, sich ständig ändernde Cluster unerlässlich ist.

Methods for this concept

Related concepts