Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Replikation in verteilten Systemen

Nach dieser Lektion: Ich kann erklären, wie Kopien von Daten aktuell gehalten werden und was ein Ausfall bewirkt.

Lektion, 50 Min.2 BefehleValkey-Lab: einen Redis-kompatiblen Key-Value-Speicher mit Schlüsseln, Ablaufzeit, Listen und Zählern kennenlernen

Wie Kopien von Daten entstehen

Replikation heißt, dieselben Daten auf mehreren Rechnern zu halten. Fällt ein Rechner aus, hat ein anderer die Daten noch, und viele Lesende verteilen sich auf mehrere Kopien.

Eine Bank hält das Konto von Mia auf drei Rechnern. Wird eine Kopie nicht rechtzeitig nachgeführt, sieht Mia einen alten Kontostand. Darum ist die Frage, wie Kopien aktuell bleiben.

Am Ende dieser Lektion

Notiz

Ich kann erklären, wie Kopien von Daten aktuell gehalten werden und was ein Ausfall bewirkt.

Schlüsselwörter

BegriffWas er bedeutet
Replikationdieselben Daten auf mehreren Rechnern halten
Primärknotender Knoten, der alle Schreibvorgänge annimmt (Primary)
Replikatein Knoten, der die Änderungen des Primärknotens nachspielt
Replikationsverzugder Abstand, um den ein Replikat zurückliegt
Failoverein Replikat wird neuer Primärknoten, wenn der alte ausfällt
Schreiblogdie geordnete Liste aller Änderungen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Primärknoten nimmt alle Schreibvorgänge an

Bei der gebräuchlichsten Art der Replikation gibt es einen Primärknoten. Nur er nimmt Schreibvorgänge an und trägt sie in sein Schreiblog ein.

Die Replikate lesen dieses Log und spielen jede Änderung in derselben Reihenfolge nach. Weil alle dieselbe Reihenfolge nutzen, kommen sie zum selben Stand.

Beispiel: Log und Stand der Replikate

Nr.Änderung im LogReplikat A hat sieReplikat B hat sie
1konto:mia = 100jaja
2konto:mia = 80jaja
3konto:mia = 95janein

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Einen kleinen Client namens v bauen

Befehl
v() ( printf '%s\r\n' "$*" | nc -w 1 valkey 6379 )

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Rolle des Servers im Lab erfragen

Befehl
v INFO replication | grep -E "^(role|connected_slaves):"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein Replikat liegt meist etwas zurück

Das Nachspielen braucht Zeit, denn die Änderungen reisen über das Netz. Der Abstand heißt Replikationsverzug.

Der Verzug zählt Einträge: Das Log hat drei Einträge, das Replikat kennt zwei, der Verzug ist 1. Wer ein Replikat liest, sieht manchmal einen Stand, der schon überholt ist.

Den Verzug eines Replikats zählen

Code: python
# Der Primärknoten schreibt jede Änderung in sein Log. Das Replikat spielt das Log nach.
log = ["konto:mia=100", "konto:mia=80", "konto:mia=95"]
uebernommen = 2
print("Das Replikat kennt", uebernommen, "von", len(log), "Einträgen")
print("Es fehlen:", len(log) - uebernommen)
print("Letzter Stand im Replikat:", log[uebernommen - 1])
# Setzen Sie uebernommen auf 3 und starten Sie erneut.

Fällt der Primärknoten aus, übernimmt ein Replikat

Fällt der Primärknoten aus, wird ein Replikat neuer Primärknoten. Das heißt Failover. Meist wählt man das Replikat mit dem längsten Log.

Hatte der alte Primärknoten Einträge noch nicht weitergegeben, gehen diese Schreibvorgänge verloren. Der Verzug von eben ist also die Menge, die ein Ausfall kosten kann.

Was ein Failover kosten kann

Code: python
# Der Primärknoten fällt aus. Das Replikat mit dem längsten Log wird neuer Primärknoten.
log_primaer = ["a", "b", "c", "d"]
log_replikat = ["a", "b", "c"]
verloren = len(log_primaer) - len(log_replikat)
print("Das Replikat übernimmt mit", len(log_replikat), "Einträgen")
print("Verlorene Schreibvorgänge:", verloren)
# Machen Sie log_replikat zu einer Kopie aller vier Einträge und starten Sie erneut.

Ein häufiger Fehler

Warnung

Viele denken, ein Replikat sei eine Sicherung. Ein Replikat spielt aber jede Änderung nach, auch ein versehentliches Löschen. Eine Sicherung ist ein Stand von gestern. Brauchen Sie beides, halten Sie Replikate und Sicherungen.

Über dieses Lab und seinen Quellcode: Valkey-Lab: einen Redis-kompatiblen Key-Value-Speicher mit Schlüsseln, Ablaufzeit, Listen und Zählern kennenlernen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.