Konsens

Problem

Mehrere Maschinen behalten den Shared State bei. Einige können fehlschlagen, Nachrichten können verzögert werden und Knoten können vorübergehend nicht zustimmen. Sie müssen sich noch auf Entscheidungen einigen, wie zum Beispiel: Wer ist der Anführer? or: Welcher Wert wurde festgelegt?

Lösung — Konsensprotokoll

Protokolle wie Raft koordinieren Knoten, damit sie sich trotz bestimmter Fehler auf geordnete Entscheidungen einigen können. Beispielsweise wählen fünf Server einen Leader, der eine Änderung protokolliert und an die anderen kopiert. Sobald drei Server den neuen Eintrag gespeichert haben, bestätigt ihn der Leader als committed und lässt ihn anwenden. Fällt der Leader aus, wählen die Abstimmungsregeln einen ausreichend aktuellen Nachfolger und erhalten bereits bestätigte Einträge. Der Cluster kann mit zwei ausgefallenen Servern weiterarbeiten, sofern die übrigen drei miteinander kommunizieren können.
Kerngedanke: Der Konsens ermöglicht verteilten Knoten, eine zuverlässige Einigung zu erzielen, ohne anzunehmen, dass jeder Knoten immer verfügbar ist.