La nueva arquitectura de búsqueda de Twitter

Los graduales cambios en la superficie de Twitter han venido acompañados de otros más profundos, aunque discretos. Uno de ellos se dio en su motor de búsqueda, que probablemente sea el servicio más demandado —de forma directa o no— por usuarios y aplicaciones de terceros como TweetDeck.

En ese sentido, hace unas horas el equipo de ingenieros de Twitter reveló detalles verdaderamente interesantes sobre su 
nueva arquitectura de búsqueda en tiempo real.
Antes de entrar en materia, recordemos que en julio de 2008 Twitter adquirió Summize para ofrecer un mejor servicio de búsqueda, uno que reflejara la dinámica de la red social, el tiempo real. Pero, como todos sabemos, Twitter creció de forma insospechada y la tecnología de Summize basada en software como MySQL ya no se consideró suficiente para soportar la friolera de
  • 1.000 TPS (tweets/segundo)
  • 12.000 QPS (consultas/segundo) = 1 mil millones por día, aprox.
Es por eso que hace unos 6 meses los ingenieros de Twitter decidieron volver a empezar.
"Twitter es tiempo real, así que nuestro motor de búsqueda también debe serlo"
Con esa frase en mente, el nuevo motor de búsqueda de Twitter fue diseñado para cumplir estos objetivos:
  • Soportar carga con al menos un orden de magnitud más. Es decir, hasta 10 veces más tweets y consultas de búsqueda por segundo. Con esto Twitter crecerá sin problemas en los próximos años (¿meses?).
  • Indexar tweets con latencias extremadamente pequeñas. En este sentido, latencia es el tiempo transcurrido desde que el tweet es enviado a Twitter hasta que es localizable. La latencia requerida jamás será mayor a 10 segundos y, mejor aún, su valor promedio será menor a 1 segundo.
Para conseguirlo, el equipo de trabajo no comenzó desde cero, sino que se montó sobre los hombros de Apache Lucene, un software open source de búsqueda e idexado. Como Lucene no estaba preparado para las demandas de Twitter, se realizaron adaptaciones significativas en ciertas partes del código. Éstas ya están siendo devueltas a la comunidad a través de una nueva rama en el árbol de código de Lucene que está dedicada al tiempo real.
¿Qué beneficios reporta la nueva arquitectura?
  • Sólo están usando el 5% de sus recursos de respaldo. (No ofrecen datos de cuánto era antes).
  • Twitter indexa 50 veces más tweets por segundo.
  • El sistema es más estable y sin problemas en general.
Administrar Twitter es una proeza técnica. Allí dentro existe una selva de capas de software y protocolos equilibrados para ofrecer un servicio sin duda útil —u ocioso, claro— para millones.

Fuente: alt1040