Wie verteilte Systeme dank Raft-Algorithmus zusammenarbeiten

Für das gemeinsame Arbeiten von Computern als Cluster hilft der Raft-Consensus-Algorithmus. Dieser funktioniert mit Mehrheitswahlen. Ein Überblick.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, Michael Vogt

(Bild: Michael Vogt)

Lesezeit: 23 Min.
Von
  • Jan Mahn
Inhaltsverzeichnis
Mehr zu Datenbanken

Wenn Menschen in einer Gruppe zusammenarbeiten sollen, wird es gern mal anstrengend – und es fallen die typischen Sätze, die in jedem Büro zum Alltag gehören: "Das hatte ich doch rumgeschickt!", "Du hast noch die alte Version, die neue liegt doch im Ordner!" und "Ach, da warst du im Urlaub, als wir das geändert haben." All diese Symptome gehören zu einem großen Problem: Wie stellt man sicher, dass sich alle Mitglieder eines Teams eine gemeinsame Wahrheit, also einen Datenstand als Arbeitsgrundlage teilen?

Dieses Problem ist nicht uns Menschen vorbehalten; auch für Computer ist es keine triviale Aufgabe, reibungslos im Team zu arbeiten und sich auf eine gemeinsame Wahrheit zu einigen. Dabei haben es Computer untereinander doch vergleichsweise leicht: Sie funktionieren deterministisch, bringen unter identischen Bedingungen also identische Ergebnisse hervor. Auch kennen sie keine Emotionen und menschliche Schwächen wie Neid, Missgunst und krankhaften Ehrgeiz. Einer emotionsfreien Maschine fiele es nicht ein, sich vorzudrängeln oder in fremde Arbeitsbereiche einzumischen.

Es könnte daher so einfach sein, einen Algorithmus zu entwickeln, der eine gemeinsame Wahrheit unter Computern herstellt – und doch hat es Jahrzehnte gedauert, bis sich ein Verfahren durchsetzte, das funktional, robust und leicht zu implementieren ist: der Raft-Konsens-Algorithmus, der heute in vielen verteilten Systemen steckt. Dieser unscheinbare Algorithmus ist zu einer wichtigen Säule des Internets geworden: Die Schlüssel-Werte-Datenbank etcd zum Beispiel arbeitet mit Raft und ist selbst das Fundament für den Container-Orchestrator Kubernetes – und auf dieser Säule wiederum stehen viele große und sehr große Anwendungen. Ohne Raft gäbe es Spotify, Netflix oder Zalando nicht in der aktuellen Form.