E Novo Twitter Ganhou Uma Nova Busca
Como parte de sua recente reformulação na interface do usuário, o Twitter também fez algumas mudanças significativas em sua infraestrutura (backend), e ontem Michael Busch atualizou o blog Twitter Engineering com alguns detalhes sobre como o Twitter reformulou sua busca.
Inicialmente o motor de busca em tempo real do Twitter era baseado na tecnologia da Summize, uma empresa que o Twitter comprou em 2008. Mas desde então, o Twitter tem crescido de maneira incrível: mais de 1.000 tweets por segundo e 12.000 queries por segundo, resultando em muito mais de 1 bilhão de queries por dia. E a equipe de engenharia do Twitter vem buscando alternativas “já que escalar o velho sistema baseado em MySQL tem se tornado cada vez mais desafiador.”
Então o Twitter mudou para uma nova arquitetura de busca, e escolheu adotar o projeto open source Lucene.
Apesar dos pontos fortes do Lucene, existem algumas deficiências em termos de pesquisa em tempo real. Forçando o Twitter a reescrever partes de sua arquitetura, e ainda assim suportar as APIs do Lucene. As alterações são:
- Melhora significativa do desempenho da coleta de lixo (garbage collection)
- Reestruturação de modelos de dados e algoritmos
- Reformulação das listas de resultados, que são oferecidas em ordem cronológica reversa
- Performance das querys
Esta nova arquitetura de busca é mais rápida e mais escalável, e utiliza apenas cerca de 5% dos recursos disponíveis do backend, aproximando a equipe de engenharia de seu objetivo de construir a busca para suportar um volume de enorme carga, como ocorre em situações como foi na morte de Michael Jackson, por exemplo.
Para mais informações sobre como o Twitter lida com outros desafios de big data, confira os slides da palestra do engenheiro da empresa Kevin Weil na Web 2.0 Expo no mês passado:
Outra solução parecida com o Lucene é o Sphinx Search http://sphinxsearch.com/