Ein Gossip-Protokoll (deutsch etwa „Klatschprotokoll“, auch epidemisches Protokoll) ist eine dezentrale Kommunikationsmethode für verteilte Systeme: Jeder Knoten tauscht in regelmäßigen Abständen mit einem (pseudo-)zufällig gewählten Partner Informationen aus, und auf diese Weise verbreitet sich eine Nachricht im gesamten Cluster — ähnlich wie ein Gerücht oder eine Infektion. Es gibt keinen zentralen Koordinator, der den Überblick behalten müsste.

Eigenschaften

  • Skalierbar: Mit hoher Wahrscheinlichkeit ist nach O(log N) Runden jeder der N Knoten informiert. Je Runde verdoppelt sich die Zahl der informierten Knoten im Idealfall.
  • Robust: Ausfälle einzelner Knoten oder Netzpartitionen stören die Verbreitung nicht grundsätzlich — es gibt keinen Single Point of Failure.
  • Probabilistisch: Die Zusicherungen gelten mit hoher, nicht mit absoluter Wahrscheinlichkeit; für die meisten Anwendungen (Membership, Metadaten, Failure Detection) ist das völlig ausreichend.

Varianten und Modelle

Man unterscheidet drei Kommunikationsrichtungen: Push (der Sender schickt die Information aktiv an den Partner), Pull (der Empfänger fragt aktiv nach Neuigkeiten) und Push-Pull (beides kombiniert). Aus der Epidemiologie stammen zwei Verbreitungsmodelle: Das SI-Modell (susceptible-infectious) beschreibt den dauerhaften Zustandsabgleich, etwa die Anti-Entropy-Methode, bei der zwei Knoten regelmäßig ihre Zustände abgleichen und Differenzen reparieren. Das SIR-Modell (susceptible-infectious-removed) dagegen beschreibt das Rumor-Mongering: Ein Knoten verbreitet eine neue Nachricht nur eine begrenzte Anzahl von Runden und wird danach „immun“ — die Nachricht stirbt aus, sobald alle sie kennen.

Anti-Entropy ist die robustere, aber teurere Variante (sie gleicht komplette Zustände ab und eignet sich dadurch auch zur Reparatur), Rumor-Mongering ist billiger und schneller, dafür weniger zuverlässig in verlustbehafteten Netzen.

Praxis

  • Apache Cassandra nutzt Gossip für Cluster-Membership (Knoten kommen und gehen, Seed-Knoten), Failure Detection und die Verbreitung von Metadaten.
  • HashiCorp Consul verwendet das Raft-nahe SWIM-Protokoll für Membership, Service Discovery und verteiltes Lock-Leasing.
  • Riak und DynamoDB-artige Stores verbreiten Updates und Reparaturinformationen per Gossip; zusammen mit Datenbank-Replikation und Sharding entstehen daraus große, selbstheilende Datenbank-Cluster.
  • Failure Detection: Jeder Knoten zählt in jeder Gossip-Runde seinen Heartbeat hoch; die Heartbeat-Information wandert durch den Cluster. Verfahren wie der Phi-Accrual-Detector erkennen tote Knoten damit typischerweise innerhalb von 10 bis 30 Sekunden.

Einordnung

Gossip ist der typische Verbreitungsmechanismus hinter Eventual Consistency und CRDTs: Zustände werden getauscht und verschmolzen, bis alle Repliken konvergieren. Die Abgrenzung zu Konsens-Algorithmen ist wichtig — Paxos oder Raft koordinieren eine Entscheidung vor der Operation, Gossip verbreitet Informationen ohne Koordination. Zusammen mit Hochverfügbarkeit und Quorum-Regeln ergibt sich das typische Bild eines auf Verfügbarkeit und Partitionstoleranz ausgelegten verteilten Systems.