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

Konsens, Quorum und Leader-Wahl

Nach dieser Lektion: Ich kann erklären, wie Rechner sich auf einen Leader oder einen Wert einigen.

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

Wie sich Rechner auf einen Leader einigen

Konsens heißt, dass mehrere Rechner sich auf einen Wert oder einen Anführer einigen, obwohl einige ausfallen oder nicht erreichbar sein können. Die Grundlage ist die Mehrheit: Mehr als die Hälfte der Rechner muss zustimmen.

Fünf Rechner halten die Daten eines Ticketshops. Fällt der Anführer aus, müssen die anderen schnell einen neuen wählen, und es darf nie zwei geben.

Am Ende dieser Lektion

Notiz

Ich kann erklären, wie Rechner sich auf einen Leader oder einen Wert einigen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Mehrheitmehr als die Hälfte aller Rechner3 von 5
Quorumdie Zahl der Rechner, die zustimmen müssen
Leaderder Knoten, der Entscheidungen trifft (Anführer)
Amtszeiteine nummerierte Runde, in der es höchstens einen Leader gibt (Term)
Split Brainzwei Teile des Netzes glauben, sie hätten je einen Leader
Konsensdie Einigung der Rechner auf einen Wert

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

Eine Mehrheit ist mehr als die Hälfte

Bei fünf Rechnern ist die Mehrheit drei. Bei vier ist sie ebenfalls drei, denn zwei von vier sind nur die Hälfte. Die Regel: ganze Hälfte, abgerundet, plus eins.

Der Grund: Zwei Mehrheiten haben immer einen gemeinsamen Rechner. Darum können nicht zwei Gruppen zugleich entscheiden.

Beispiel: Mehrheit und erlaubte Ausfälle

RechnerMehrheitAusfälle, die das System verkraftet
321
431
532
642
743

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 Mehrheit bei fünf Rechnern ausrechnen

Befehl
expr 5 / 2 + 1

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 Mehrheit bei vier Rechnern ausrechnen

Befehl
expr 4 / 2 + 1

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

Eine Leader-Wahl braucht eine Mehrheit der Stimmen

Fällt der Leader aus, wird eine neue Amtszeit begonnen. Ein Rechner stellt sich zur Wahl und bittet die anderen um ihre Stimme. Jeder Rechner gibt je Amtszeit höchstens eine Stimme ab.

Wer eine Mehrheit hat, wird Leader. Gibt es keine, beginnt eine neue Amtszeit. So gibt es nie zwei Leader in derselben Amtszeit.

Stimmen zählen und eine Mehrheit finden

Code: python
# Fünf Rechner stimmen ab. Jeder gibt in einer Amtszeit genau eine Stimme.
stimmen = {"knoten1": "b", "knoten2": "b", "knoten3": "a", "knoten4": "b", "knoten5": "a"}
zahl = {"a": 0, "b": 0}
for waehler in stimmen:
    kandidat = stimmen[waehler]
    zahl[kandidat] = zahl[kandidat] + 1
mehrheit = 5 // 2 + 1
print("Mehrheit:", mehrheit)
for kandidat in zahl:
    if zahl[kandidat] >= mehrheit:
        print(kandidat, "wird Leader mit", zahl[kandidat], "Stimmen")
# Ändern Sie zwei Stimmen so, dass niemand eine Mehrheit hat.

Setzen, wenn der Schlüssel fehlt

Befehl
v SET leiter:dienst knoten2 NX EX 30

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

Eine zweite Anfrage für denselben Schlüssel

Befehl
v SET leiter:dienst knoten3 NX EX 30

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 häufiger Fehler

Warnung

Viele denken, mehr Rechner heiße immer mehr erlaubte Ausfälle. Vier Rechner verkraften aber nur einen Ausfall, genau wie drei. Darum nimmt man meist eine ungerade Zahl.

Ein Quorum für Schreiben und Lesen

Man kann auch Schreiben und Lesen an eine Zahl von Rechnern knüpfen. Ein Schreibvorgang gilt, wenn w Rechner ihn bestätigen. Ein Lesevorgang fragt r Rechner und nimmt den neuesten Wert.

Ist w plus r größer als die Zahl n aller Rechner, enthält jede Lesegruppe mindestens einen Rechner mit dem neuesten Wert.

Beispiel: fünf Rechner und drei Einstellungen

Schreiben wLesen rw plus rÜberlappung sicher?
336ja, denn 6 ist größer als 5
224nein, denn 4 ist nicht größer als 5
516ja, aber ein Ausfall stoppt das Schreiben

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

Ü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.