Zum Hauptinhalt Zur Navigation Zur Suche

Blender: Wie Twitter seine Suche beschleunigt hat

155 Millionen Tweets pro Tag, fast dreimal so viele wie vor einem Jahr, meldet Twitter. Dabei verzeichnet der Kurznachrichtendienst bei seiner Suche rund eine Milliarde Anfragen pro Tag. Um dieser Menge beizukommen, hat Twitter seine Suche grundlegend überarbeitet.
/ Jens Ihlenfeld
11 Kommentare Auf Google folgen (öffnet im neuen Fenster)

Twitter wächst weiter rasant und passt seine Technik an, um dem Wachstum gerecht zu werden. Die Zahl der Tweets hat sich allein im ersten Quartal 2011 um 41 Prozent erhöht(öffnet im neuen Fenster) und die Zahl der Twitter-Nutzer wächst schneller als zuvor. Auch die Zahl der Suchanfragen bei Twitter steigt, zuletzt gab es ein deutliches Plus im Zusammenhang mit der Erdbebenkatastrophe in Japan.

Um den mittlerweile rund eine Milliarde Suchanfragen pro Tag nachzukommen, hat Twitter seine Suche grundlegend überarbeitet. Bereits im vergangenen Jahr wurde das Backend ausgetauscht und MySQL durch angepasste Versionen von Apache Lucene ersetzt. In der vergangenen Woche(öffnet im neuen Fenster) tauschte Twitter dann seine auf Ruby-on-Rails basierende Front-End-Technik gegen einen Blender genannten Java-Server.

Diese Änderung hat laut Twitter die Geschwindigkeit der Suche verdreifacht und bildet die Grundlage für die Einführung neuer Suchfunktionen in den kommenden Monaten. Die Latenz von 95 Prozent der schnellsten Suchanfragen sei von 800 auf 250 Millisekunden gesunken, die Last auf den Front-End-Servern habe sich halbiert und Twitter könne nun die zehnfache Zahl an Suchanfragen pro Maschine abwickeln, heißt es in einem Blogeintrag(öffnet im neuen Fenster).

Wurden bisher die Suchanfragen von Front-End-Servern geparst und von diesen synchron an die Index-Server weitergereicht, um anschließend die Ergebnisse darzustellen, so setzt Blender auf einen komplett asynchronen Aggregationsdienst. Kein Thread wartet darauf, dass eine Anfrage über das Netzwerk abgeschlossen wird. Dabei werden die Ergebnisse aus verschiedenen Indizes aggregiert und mögliche Abhängigkeiten der Dienste automatisch beachtet.

Blender ist als Thrift(öffnet im neuen Fenster)- und HTTP-Dienst auf Basis von Netty(öffnet im neuen Fenster) umgesetzt. Details zur Implementierung verrät Twitter in seinem Engineering-Blog.


Relevante Themen