ScholarGate
Assistent

Verteilte und parallele Datenbanken

Verteilte und parallele Datenbanken verteilen Daten und Abfrageverarbeitung auf mehrere Maschinen, um Skalierbarkeit, Verfügbarkeit und hohe Leistung zu erzielen, während eine kohärente Sicht auf die Daten erhalten bleibt.

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

Definition

Eine verteilte Datenbank speichert Daten über mehrere vernetzte Standorte hinweg, die den Benutzern als eine einzige Datenbank erscheinen, und eine parallele Datenbank verwendet mehrere Prozessoren und Festplatten (typischerweise Shared-Nothing), um Datenbankoperationen gleichzeitig für höheren Durchsatz und geringere Latenz auszuführen.

Scope

Dieser Bereich umfasst die Verwaltung von Daten über viele Knoten hinweg: wie Daten partitioniert (fragmentiert) und repliziert werden; wie Abfragen parallel über Partitionen und verteilte Standorte hinweg verarbeitet werden; und wie Transaktionen atomar festgeschrieben werden und Replikate durch Commit- und Konsensprotokolle konsistent bleiben. Er behandelt die architektonische Unterscheidung zwischen Shared-Nothing-Parallel-Datenbanken und geografisch verteilten Datenbanken. Er ist die datenbankspezifische Ergänzung zu allgemeinen Themen des verteilten Rechnens, die er zitiert, aber nicht dupliziert; er schließt allgemeine Konsens- und verteilte Systemtheorie über deren Datenbanknutzung hinaus aus.

Sub-topics

Core questions

  • Wie werden Daten über Knoten hinweg partitioniert und repliziert, und warum?
  • Wie werden Abfragen parallel über Partitionen und Standorte hinweg ausgeführt?
  • Wie wird eine Transaktion atomar festgeschrieben, wenn sie mehrere Knoten umfasst?
  • Wie bleiben Replikate bei Ausfällen konsistent?
  • Wie unterscheiden sich parallele (Shared-Nothing) und geografisch verteilte Architekturen?

Key concepts

  • horizontale und vertikale Fragmentierung
  • Replikation
  • Shared-Nothing-Architektur
  • partitionierte und pipelined Parallelität
  • verteilte Abfrageverarbeitung
  • Zwei-Phasen-Commit
  • Konsistenz von Konsens und Replikaten
  • Speedup und Scaleup

Key theories

Datenpartitionierung und -replikation
Tabellen werden horizontal oder vertikal fragmentiert und zur Skalierbarkeit über Knoten verteilt, und Kopien werden zur Verfügbarkeit und Leseleistung repliziert; die Platzierungsstrategie bestimmt Lastverteilung und Fehlertoleranz.
Parallele Abfrageverarbeitung
Shared-Nothing-Parallel-Datenbanken erreichen nahezu lineare Beschleunigung (Speedup) und Skalierung (Scaleup), indem sie Daten partitionieren und Operatoren wie Scans und Joins parallel über Knoten hinweg ausführen, wobei sie partitionierte und pipelined Parallelität nutzen.
Verteiltes Commit und Replikatkonsistenz
Atomare Commit-Protokolle wie das Zwei-Phasen-Commit stellen All-or-Nothing-Ergebnisse über Standorte hinweg sicher, und Konsens- und Replikationsprotokolle halten Replikate trotz Knoten- und Netzwerkausfällen konsistent.

Clinical relevance

Verteilte und parallele Datenbanken ermöglichen es Datensystemen, auf Internet-Workloads zu skalieren: Parallele Data Warehouses führen Analysen über Petabytes durch, geografisch verteilte Datenbanken halten globale Dienste verfügbar und latenzarm, und die hier beschriebenen Partitionierungs-, Replikations- und Commit-Techniken untermauern nahezu jede große Datenplattform.

History

Die Forschung an verteilten Datenbanken begann in den späten 1970er Jahren mit Systemen wie SDD-1 und verteiltem Ingres. In den 1980er Jahren entstanden Shared-Nothing-Parallel-Datenbanken (Gamma, Teradata), die DeWitt und Gray 1992 als die Zukunft des Hochleistungsdatenmanagements bezeichneten. Die Anforderungen im Internet-Maßstab führten später zu den partitionierten, replizierten Systemen, die moderne Cloud-Datenplattformen definieren.

Key figures

  • M. Tamer Özsu
  • Patrick Valduriez
  • David DeWitt
  • Jim Gray

Related topics

Seminal works

  • ozsu2011
  • dewitt1992
  • silberschatz2019

Frequently asked questions

Was ist der Unterschied zwischen einer verteilten Datenbank und einer parallelen Datenbank?
Eine parallele Datenbank verwendet viele eng gekoppelte Prozessoren und Festplatten, typischerweise an einem Ort mit einer schnellen Verbindung (oft ein Shared-Nothing-Cluster), um Abfragen schneller auszuführen. Eine verteilte Datenbank verteilt Daten über separate, oft geografisch verteilte Standorte für Verfügbarkeit und Lokalität. Die Grenze verschwimmt, aber parallele Datenbanken betonen die Leistung und verteilte Datenbanken betonen die Verteilung und Autonomie.
Warum ist Shared-Nothing die dominante parallele Architektur?
In einem Shared-Nothing-Design hat jeder Knoten seine eigene CPU, seinen eigenen Speicher und seine eigene Festplatte, sodass es keine zentrale Ressource gibt, die beim Hinzufügen von Knoten zu einem Engpass werden könnte. Dies ermöglicht dem System eine nahezu lineare Beschleunigung (Speedup) und Skalierung (Scaleup), weshalb es zur Standardarchitektur für skalierbare parallele und analytische Datenbanken wurde.

Methods for this concept

Related concepts