Retry-Storm

Retry-Storm

Ein Retry-Storm entsteht, wenn viele Programme nach einer gescheiterten Anfrage gleichzeitig immer wieder neu anfragen und dadurch ein ohnehin überlastetes System endgültig lahmlegen. Das Problem ist eine der häufigsten Ursachen dafür, dass kurze Störungen in Rechenzentren zu stundenlangen Ausfällen werden.

Wenn ein Programm im Internet etwas anfordert und keine Antwort bekommt, versucht es die Anfrage meist einfach noch einmal. Das ist normalerweise sinnvoll, denn viele Störungen dauern nur Bruchteile einer Sekunde. Problematisch wird es, wenn Tausende Programme gleichzeitig scheitern und alle gleichzeitig neu anfragen. Dann trifft auf einen Schlag ein Vielfaches der normalen Last auf einen Dienst, dem es ohnehin schon schlecht geht. Genau diese Lawine aus Wiederholungsversuchen nennt man Retry-Storm. Der ursprüngliche Fehler ist dann oft längst behoben, aber der Dienst kommt trotzdem nicht mehr hoch.

Wenn aus einer Sekunde Störung ein Tag Ausfall wird

Ein Retry-Storm verwandelt einen kleinen Fehler in einen großen. Ohne Wiederholungsversuche würde eine kurze Überlastung nach wenigen Sekunden vorbeigehen. Mit ihnen entsteht ein Teufelskreis: Der Dienst ist langsam, deshalb wiederholen alle, dadurch wird er noch langsamer. Fachleute sprechen von einem sich selbst verstärkenden Effekt.

Besonders unangenehm ist, dass sich das System nicht von allein erholt. Selbst wenn man die eigentliche Ursache repariert, prasseln weiter Millionen Wiederholungen ein. Betreiber müssen dann Nutzer aktiv aussperren, um wieder Luft zu bekommen. Das nennt man einen blockierten Neustart, und er kostet oft Stunden.

Wirtschaftlich ist das relevant, weil moderne Software aus vielen kleinen Diensten besteht, die sich gegenseitig aufrufen. Fällt ein Baustein unten in der Kette aus, wiederholen alle Dienste darüber. Bei fünf Ebenen mit je drei Versuchen entstehen aus einer Anfrage bis zu 243. Große Ausfälle bei Cloud-Anbietern wurden schon mehrfach genau so erklärt.

Warum Wartezeit und Zufall helfen

Das Gegenmittel heißt exponentielles Backoff. Nach dem ersten Fehlversuch wartet das Programm etwa eine Sekunde, nach dem zweiten zwei, dann vier, dann acht. Die Abstände verdoppeln sich also, statt konstant zu bleiben. Dadurch sinkt die Last mit jeder Runde, statt gleich zu bleiben.

Dazu kommt ein Zufallsanteil, im Fachjargon Jitter genannt. Ohne ihn warten alle Programme exakt gleich lang und schlagen wieder im Gleichtakt zu. Man kennt den Effekt von einer Ampel: Springt sie auf Grün, fahren alle gleichzeitig los. Ein zufälliger Aufschlag von wenigen hundert Millisekunden verteilt die Anfragen über die Zeit.

Ein dritter Baustein ist der Circuit Breaker, also eine Art Sicherung wie im Stromkasten. Häufen sich Fehler, blockiert er weitere Anfragen sofort und meldet direkt einen Fehler zurück. Der überlastete Dienst bekommt dadurch Ruhe zum Erholen. Nach einer Weile lässt die Sicherung testweise einzelne Anfragen durch und schaltet erst dann wieder frei. Wichtig ist außerdem eine Obergrenze: Drei Versuche reichen fast immer, endloses Wiederholen hilft nie.

Vom Ticketverkauf bis zur Störungsmeldung

Man erlebt Retry-Storms als Nutzer, ohne sie zu bemerken. Beim Verkaufsstart begehrter Konzertkarten drücken Zehntausende gleichzeitig auf Aktualisieren. Jeder dieser Klicks ist ein manueller Wiederholungsversuch und verschlimmert die Lage. Dasselbe passiert bei Anmeldeportalen von Hochschulen oder bei Steuer-Software kurz vor der Frist.

In Nachrichten taucht der Begriff meist in den Berichten auf, die Cloud-Anbieter nach einem Ausfall veröffentlichen. Solche Post-Mortems, also Nachbetrachtungen, nennen fast immer eine harmlose Ursache und danach die Retry-Lawine als eigentlichen Verstärker. Für Anleger ist das interessant, weil Ausfallzeiten bei Anbietern wie Amazon, Microsoft oder Google direkt Vertragsstrafen auslösen.

Ein verbreiteter Irrtum ist, Retry-Storms ließen sich durch mehr Server lösen. Zusätzliche Kapazität wird von der Lawine oft in Sekunden aufgefressen. Wirksam ist nur, die Zahl der Wiederholungen selbst zu begrenzen. Abzugrenzen ist der Begriff vom Thundering Herd: Dort stürmen alle gleichzeitig auf eine gerade frei gewordene Ressource, ohne dass vorher etwas fehlgeschlagen sein muss.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.