Blender: Wie Twitter seine Suche beschleunigt hat
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.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.