Web

Dank Java

Twitter übersteht die Wahlnacht ohne "Fail Whale"

08.11.2012
Von 
Thomas Cloer war Redakteur der Computerwoche.
Trotz Rekordlast auf seinen Servern hat der Kurznachrichtendienst Twitter die US-Präsidentenwahl überstanden, ohne wie in der Vergangenheit in die Knie zu gehen.

Das verdankt Twitter nach Aussagen seiner Ingenieure vor allem der Tatsache, dass sein Backend immer stärker auf Java und weniger auf das in der Anfangszeit genutzte Ruby setzt. Einem Blogpost von Mazen Rawashdeh, Vice President of Infrastructure Operations Engineering, zufolge setzten die Twitter-Nutzer zwischen 20:11 Uhr und 21:11 Uhr US-Westküstenzeit am Wahlabend im Schnitt 9965 Nachrichten pro Sekunde ab.

Während einer einzigen Sekunde um 20:20 Uhr waren es sogar 15.107 Tweets. Insgesamt generierten die Twitterer während der Spitzenlastzeit des Wahlabends 874.560 Posts in einer einzigen Minute. Solche Tweet-Mengen seien freilich die Ausnahme, schreibt Rawashdeh, demonstrierten aber mit der über Stunden anhaltenden Hochlast neue Nutzungsgewohnheiten für den Dienst.

In der Vergangenheit wäre da fraglos des Öfteren der legendäre "Fail Whale" aufgetaucht, den Twitter eigens für Ausfälle unter Überlast entworfen hatte. Der aber wurde schon länger nicht mehr gesichtet, weil Twitter sei Backend von Ruby und Ruby on Rails sukzessive auf einen neuen Software Stack verschiebt, der auf der Java Virtual Machine (JVM) aufsetzt. Die Umstellung läuft bereits seit dem Jahr 2008; damals fuhr das Ruby-basierende Message-Queuing-System nach Worten des früheren Twitter-Entwickler Alex Payne "gegen die Wand". "Es gibt eine Menge Sachen, für die Ruby ganz großartig ist", erklärte Payne damals. "Aber für lange laufende Prozesse? Vor allem Memory-intensive? Nicht so sehr."

Bei der Neuentwicklung verwendeten die Twitter-Developer anfänglich vor allem die alternative JVM-Sprache Scala, die Aspekte objektorientierter und funktionaler Programmierung kombiniert. Heute besteht die Twitter-Software aus einem Mix von Scala und herkömmlichem Java-Code.

Es gibt auch immer noch einige Dienste auf Ruby; laut Rawashdeh werden diese aber immer seltener genutzt - der Traffic von mobilen Geräten etwa kommt gar nicht mehr mit Ruby-basierender Software in Berührung. Wo Ruby noch eingesetzt wird, da bringt Twitter den Code auf einer speziell angepassten und hoch optimierten Version der Runtime aus, die speziell bei der Ausführung längerer Prozesse den Speicher effizienter verwaltet.