Fehlerkorrektur zwingt Facebook in die Knie

Gestern Abend ging für rund 2.5 Stunden gar nichts mehr bei Facebook.com. Die weltweit grösste SocialMedia Seite war offline. Nun werden langsam Informationen zu dem grössten Ausfall seit 4 Jahren bekanntgegeben.

So hat eine fehlerhafte Korrektur Funktion zu einer verhängnisvollen Kettenreaktion geführt:

Ein automatisches Korrektursystem sorgt für gewöhnlich dafür, dass fehlerhafte Konfigurationswerte im Cache durch aktualisierte Werte im persistenten Speicher überschrieben werden. Im aktuellen Fall führte aber genau dies zum Zusammenbruch. Eine Konfigurationsänderung im persistenten Speicher wurde von dem vollautomatischen System als fehlerhaft deklariert. Die Folge: Jedes Clientsystem erhielt den angeblich ungültigen Wert, versuchte diesen zu korrigieren und stellte dazu eine Anfrage an einen Datenbankcluster. Dieser brach schnell unter der Last der mehreren hunderttausend Anfragen pro Sekunde zusammen.

Jede dieser Anfragen wurde daraufhin als falsch deklariert und im Cache gelöscht. Das führte dazu, dass auch nach Korrektur des eigentlichen Fehlers die Zahl der Anfragen auf den Datenbankcluster hoch blieb. Das Ganze führte zu einer Feedbackschleife, die der Datenbank keine Gelegenheit ließ, sich zu erholen.

Server Room Die einzige Lösung bestand darin, sämtlichen Datenverkehr auf die Datenbank zu stoppen, was zum Abschalten von Facebook.com führte. Inzwischen läuft die Seite wieder, das Fehlerkorrektursystem bleibt aber deaktiviert. Facebook überlegt wie das System verbessert werden könnte.

Die bei Facebook.com eingesetzten Technologien und Systeme habe ich hier beschrieben.