3 Punkte von GN⁺ 2023-09-04 | 1 Kommentare | Auf WhatsApp teilen
  • Dieser Artikel behandelt den Raft Consensus Algorithm, einen Konsensalgorithmus, der auf leichte Verständlichkeit ausgelegt ist und in Bezug auf Fehlertoleranz und Performance Paxos ebenbürtig ist.
  • Konsens ist ein grundlegendes Problem in fehlertoleranten verteilten Systemen, in denen mehrere Server sich auf einen Wert einigen müssen. Sobald eine Entscheidung über einen Wert getroffen wurde, ist sie endgültig.
  • Der Raft-Algorithmus wird im Kontext replizierter Zustandsmaschinen verwendet, um fehlertolerante Systeme zu bauen. Jeder Server verfügt über eine Zustandsmaschine und ein Log. Die Zustandsmaschine ist die Komponente, die fehlertolerant sein muss.
  • Der Raft-Algorithmus garantiert: Wenn eine Zustandsmaschine einen Befehl als n-ten Befehl anwendet, dann wendet keine andere Zustandsmaschine einen anderen n-ten Befehl an. Dadurch verarbeitet jede Zustandsmaschine dieselbe Befehlsfolge und erzeugt dasselbe Ergebnis.
  • Dieser Artikel hilft dabei, die Funktionsweise von Raft zu verstehen, indem er visualisiert, wie ein Raft-Cluster im Browser ausgeführt wird.
  • Der Artikel bietet außerdem eine Liste von Veröffentlichungen und Vorträgen als gute Einführung in Raft.
  • Der Artikel listet viele Implementierungen von Raft in unterschiedlichen Entwicklungsstadien auf und stellt auch den Source Code bereit.
  • Der beste Ort, um Fragen zu Raft und seinen Implementierungen zu stellen, ist die Google-Gruppe raft-dev.
  • Dieser Artikel ist unter der Creative Commons Attribution 3.0 Unported License lizenziert.

1 Kommentare

 
GN⁺ 2023-09-04
Hacker-News-Kommentare
  • Der Raft-Konsensalgorithmus ist ein einfacher, aber robuster Lernalgorithmus für verteilte Systeme und hat viele praktische Anwendungsfelder.
  • Die von Jepsen entwickelte Maelstrom-Workbench enthält eine ausgezeichnete Tutorial-Implementierung zur Modellprüfung von Raft und dazu, wie man es implementiert.
  • Der Raft-Algorithmus ist für seine Einfachheit bekannt, aber die Originalarbeit enthält viele Korrektheitsdetails, die in Spielzeugimplementierungen oft ignoriert werden.
  • Wegen möglicher Fehler realer Hardware, strenger Latenz-SLAs und der Notwendigkeit flexibler Quoren bzw. dynamischer Cluster-Mitgliedschaft ist die Implementierung von Raft für den Produkteinsatz eine lange und schwierige Aufgabe.
  • Die Raft-Arbeit ist leicht zu lesen und vermittelt selbst denen, die es nicht implementieren wollen, eine hervorragende Intuition.
  • Zu den Softwareprojekten, die Raft verwenden, gehören etcd, consul, cockroach und tidb.
  • Rafts konzeptionelle Klarheit und Eleganz können sich in Leistung und Zuverlässigkeit zeigen.
  • Raft ist gut verstanden und verfügt über ein starkes Bibliotheks-Ökosystem, was für Implementierende vorteilhaft ist.
  • Die mit Raft verbundene Einfachheit und Nachvollziehbarkeit werden von vielen in der technischen Community anerkannt.
  • Einige Nutzer empfehlen Anfängern bei Konsensprotokollen, mit Bitcoin zu beginnen, dann zu Paxos/Tendermint/Simplex überzugehen und Raft ganz zu überspringen.
  • Trotz seiner Einfachheit ist Raft weiterhin ein komplexer Algorithmus mit vielen Feinheiten, und manche Nutzer haben Schwierigkeiten, ihn zu verstehen und zu implementieren.
  • Der Raft-Konsensalgorithmus wurde so entworfen, dass er leicht verständlich ist, und ist bei Fehlertoleranz und Leistung Paxos ebenbürtig.
  • Der Algorithmus wird in relativ unabhängige Teilprobleme zerlegt und deckt alle wesentlichen Bestandteile ab, die für praktische Systeme nötig sind.
  • Einige Nutzer empfanden die Visualisierung und Erklärung des Raft-Konsensalgorithmus als unklar oder verwirrend.