Twitter-Suche wechselt zu Java

Hartmut Schlosser

Twitter setzt offenbar zunehmend auf Java-Technologie. Nachdem man bereits Anfang 2010 für die Echtzeitsuche von MySQL auf die Lucene Engine gewechselt hatte, wurde nun das Ruby-on-Rails Frontend durch einen Java Server namens „Blender“ ersetzt. Resultat: Die Änderungen sollen zu einer bis zu dreimal besseren Suchperformance geführt haben.

Wie das Twitter-Team in einem Blogeintrag beschreibt, seien die Änderungen nötig geworden, da man in der Ruby-on-Rails basierten Twitter-Architektur auf Erweiterungs- und Performance-Probleme gestoßen war. Der neue Java Server Blender basiert auf der NIO Client Server Bibliothek Netty aus dem Hause JBoss, welche beispielsweise auch im Continuous Integration Server Jenkins Verwendung findet.

Die Tsunami-Katastrophe in Japan soll sich dabei als Bewährungsprobe für die neue Architektur erwiesen haben. Die Suche nach dem Hashtag #tsunami habe vor der Einführung des Blender-Java-Servers zu einem signifikanten Anstieg der Suchlast und damit verbunden zu Performance-Problemen geführt. Durch die Umstellung auf den Java-Server Blender habe man die Latenzzeiten deutlich senken können:

We now have the capacity to serve 10x the number of requests per machine. This means we can support the same number of requests with fewer servers, reducing our front-end service costs by an order-of-magnitude.

Derzeit kommen bei Twitter die alten Ruby-on-Rails Frontend-Server noch als Proxies zum Einsatz, sollen aber im nächsten Schritt ganz aus dem Twitter-Search-Stack verbannt werden, wodurch sich Twitter einen weiteren Performance-Schub erhofft. Die Java-Fraktion wird’s freuen – haben sie doch nun ein weiteres Argument in Diskussionen mit Leuten, die Java für langsam halten!

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.