Grundlegendes Wissen zu verteilten Datenstrukturen, 1. Teil

Grundlegendes Wissen zu verteilten Datenstrukturen, 1. Teil

Verteilte Datenstrukturen sind ein vielseitiges und zugleich komplexes Thema in der Informatik. Sie sind nicht nur sehr wichtig, um Daten zu speichern und zu verarbeiten. Vielmehr spielen sie auch mit Blick auf die Effizienz moderner Technologien und Anwendungen eine zentrale Rolle.

Anzeige

Grundlegendes Wissen zu verteilten Datenstrukturen, 1. Teil

Was sind verteilte Datenstrukturen?

Verteilte Datenstrukturen sind ein elementarer Bestandteil von modernen Datenverarbeitungssystemen. Sie ermöglichen, Informationen über eine Vielzahl von Knoten zu verteilen und gleichzeitig zu verarbeiten.

Das kann auf einem einzelnen Computer, in einem lokalen Netzwerk, über vernetzte Server und auch in einer Cloud erfolgen. Doch warum sind verteilte Datenstrukturen so leistungsstark?

Vereinfacht erklärt, handelt es sich bei einer verteilten Datenstruktur um eine Datenstruktur, die auf mehrere physische Orte – die Knoten – verteilt und über ein Netzwerk miteinander verknüpft ist.

Im Unterschied zu einer herkömmlichen Datenstruktur, bei der alle Daten in einem zentralen Speicher abgelegt sind, befindet sich bei einer verteilten Datenstruktur jedes Element auf einem oder mehreren Knoten.

Ein einfaches Beispiel:

Mehrere Computer werden verwendet, um einen großen Datensatz zu analysieren. Den kompletten Datensatz auf jeden Computer zu kopieren, würde sehr viel Speicherplatz verbrauchen.

Deshalb wird der Datensatz in kleinere Teile zerlegt und über die Computer verteilt. Auf diese Weise ist auf jedem Computer nur ein Teil des Datensatzes vorhanden, den dieser Rechner unabhängig von den anderen Computern analysieren kann.

Die Grundlagen von verteilten Datenstrukturen

Verteilte Datenstrukturen umzusetzen und damit umzugehen, kann komplex sein. Denn sie erfordern eine stabile Kommunikation im Netzwerk und eine zuverlässige Synchronisation zwischen den einzelnen Knoten.

Außerdem müssen sie mit Fehlern und Veränderungen zurechtkommen, so zum Beispiel, wenn einzelne Knoten ausfallen und sich dadurch die Struktur des Netzwerks verändert.

Zu den wesentlichen Konzepten bei der Arbeit mit verteilten Datenstrukturen gehören diese:

  • Datenverteilung: Wie und wo werden die Daten auf die verschiedenen Knoten verteilt?

  • Datenzugriff: Welche Methoden werden verwendet, um die verteilt gespeicherten Daten abzufragen und zu aktualisieren?

  • Netzwerkkommunikation: Wie tauschen die Knoten Daten untereinander aus?

  • Fehlerbehandlung: Wie geht das System mit dem Ausfall einzelner Knoten um?

Ein Verständnis dieser grundlegenden Konzepte ist wichtig, um effektive und robuste verteilte Datenstrukturen entwerfen und umsetzen zu können.

Ein Beispiel:

Angenommen, es soll ein verteiltes Datenbanksystem für ein internationales Unternehmen erstellt werden. Die Server, auf denen die Daten gespeichert werden, stehen in mehreren Ländern.

Im Zuge der Datenverteilung muss nun zunächst entschieden werden, wie die Daten auf den Servern verteilt werden. Für den Datenzugang muss festgelegt sein, welche Verfahren zur Abfrage und Aktualisierung der Daten eingesetzt werden. Mit Blick auf die Netzwerkkommunikation spielen Dinge wie Routing, Multicast und Synchronisation eine Rolle.

Die Fehlerbehandlung wiederum muss gewährleisten, dass das System funktionsfähig bleibt und keine Daten verloren gehen, wenn zum Beispiel das Netzwerk ausfällt oder ein Server abstürzt.

Wie funktionieren verteilte Datenstrukturen?

Verteilte Datenstrukturen machen sich die Vorteile der parallelen Verarbeitung zunutze, indem sie die Daten auf mehrere physische Standorte oder Knoten verteilen. Dadurch wird das gesamte System leistungsfähiger und zuverlässiger.

Denn es funktioniert weiterhin, selbst wenn einzelne Knoten ausfallen. Tatsächlich sorgen entsprechende Algorithmen dafür, dass verteilte Datenstrukturen dynamisch reagieren können, wenn sich die Topologie des Netzwerks ändert.

Verteilte Algorithmen

Bei einem verteilten Algorithmus handelt es sich um einen Algorithmus, der entwickelt wurde, um ein Problem zu lösen, wobei die einzelnen Bestandteile des Problems auf verschiedenen Knoten verteilt sind.

Diese Knoten sind in einem Netzwerk verbunden, kommunizieren miteinander und arbeiten zusammen, um eine gemeinsame Lösung für das ganze Problem zu entwickeln. Unterstützt wird der Algorithmus durch eine verteilte Datenstruktur.

Ein typisches Beispiel für einen verteilten Algorithmus ist der Map-Reduce-Algorithmus. In der Map-Phase gliedert er ein Problem in mehrere Unterprobleme. Die einzelnen Knoten können die Unterprobleme dann unabhängig voneinander lösen. In der anschließenden Reduce-Phase werden die Lösungen für die Unterprobleme zusammengeführt, um auf diese Weise zur Endlösung zu kommen.

Besucher lesen auch gerade folgenden Beitrag:  Die wichtigsten Infos und Tipps zum Stichwort "Phishing", Teil IV

In einem verteilten System gibt es üblicherweise zwei Arten von Operationen:

  • Lokale Operationen werden nur auf einem einzigen Knoten ausgeführt.

  • Globale Operationen erstrecken sich über das gesamte Netzwerk.

Wie wirksam ein verteilter Algorithmus ist, hängt davon ab, wie gut es ihm gelingt, möglichst viele lokale Operationen zu initiieren und die Anzahl der globalen Operationen auf ein Minimum zu senken.

Manchmal ist die Datenstruktur in verteilten Systemen in sich schon verteilt organisiert. Das ist zum Beispiel bei einigen Hashtabellen oder Baumstrukturen der Fall. Andererseits ist möglich, auf eine herkömmliche Datenstruktur wie ein Array oder eine Liste zurückzugreifen.

Ein verteiltes System entsteht aber erst durch die Art, wie die Daten auf die einzelnen Knoten verteilt sind. So können beispielsweise die einzelnen Elemente eines verteilten Arrays auf verschiedene Knoten verteilt sein. Aus dem Blickwinkel eines Knotens handelt es sich aber nach wie vor um ein gewöhnliches Array.

Multilisten

Bei einer Liste handelt es sich um eine normale Datenstruktur. Eine Erweiterung davon ist eine Multiliste. Sie verwendet zusätzliche Zeiger für einen schnellen Zugriff auf verschiedene Teile der Liste. Dabei kann die Multiliste auf mehrere Knoten in einem verteilten System aufgeteilt sein. Dann liegt eine verteilte Multiliste vor.

Beim Aufbau einer Multiliste wird in aller Regel ein Master-Knoten angelegt. Er enthält die Zeiger als Verbindungen zu den untergeordneten Knoten. Jeder untergeordnete Knoten ist nun dafür zuständig, sein Segment der Liste zu speichern und zu verwalten.

Ein Beispiel: Eine Liste mit allen Studenten einer großen Universität ist sehr lang. Deshalb scheint es sinnvoller, eine verteilte Multiliste zu erstellen und diese auf mehrere Computer aufzuteilen.

Dadurch verwaltet jeder verknüpfte Computer nur eine Liste mit den Studenten, die ein bestimmtes Hauptfach studieren. In der verteilten Multiliste können die Zeiger jeder Teilliste jetzt verwendet werden, um zügig die Studenten des jeweiligen Hauptfachs aufzurufen.

Das ist effizienter als eine normale Liste, bei der bei jeder Abfrage die komplette Liste durchsucht wird.

Mehr Ratgeber, Tipps und Anleitungen:

Anzeige

Thema: Grundlegendes Wissen zu verteilten Datenstrukturen, 1. Teil

-

Übersicht:
Fachartikel
Verzeichnis
Über uns


it datenbanken99

Autoren Profil:
FB/Twitter

Veröffentlicht von

Autoren Profil:

Gerd Tauber - Programmierer, Samuel Wilders IT- Experte und Markus Berthold Inhaber einer Medienagentur, Ferya Gülcan Inhaberin Onlinemedien-Agentur, Christian Gülcan Inhaber Artdefects Media Verlag, schreiben hier Wissenswertes zum Thema IT, Internet, Hardware, Programmierung, Social-Media, Software und IT-Jobs.

Kommentar verfassen