Crescimento faz Twitter trocar o MySQL pelo Cassandra
Com 50 milhões de tweets por dia e uma base de dados que cresce em ritmo acelerado, empresa encontrou no banco de dados livre uma alternativa rápida e escalável.Ryan King, engenheiro do Twitter, contou hoje ao blog MyNoSQL que a empresa de redes sociais planeja trocar o MySQL pelo banco de dados Cassandra, por causa de sua resiliência, escalabilidade e grande comunidade de desenvolvedores de código aberto.
“Nós temos um bocado de dados, o fator de crescimento desses dados é enorme e a taxa de cresciemento está acelerando”, disse King, em uma entrevista publicada no blog.
O Twitter usa atualmente um cluster de servidores MySQL com um sistema de cache em memória que “está rapidamente se tornando proibitivo para operar. Precisamos de um sistema que possa crescer de forma mais automática e que tenha alta disponibilidade”, disse King ao MyNoSQL.
O número de tweets diários cresceu mais que 20 vezes em comparação com o ano passado, de cerca de 2 milhões por dia em janeiro de 2009 para cerca de 50 milhões por dia em janeiro de 2010.
Este crescimento tem causado dor, e alguns usuários devotados reclamam bastante quando o Twitter cai e a figura da baleia aparece na tela.
Downtime reduzido
Apesar desses incidentes, o twitter tem melhorado seu tempo de atividade nos últimos 12 meses. O site esteve no ar por 99,72% do tempo (um downtime de 23 horas e 45 minutos), de acordo com a empresa de monitoramento Pingdom. Em 2008, de acordo com a Pingdom, o Twitter esteve fora do ar por 84 horas, a pior marca em 15 sites de redes sociais.
O Twitter espera que a implantação do banco de dados Cassandra, da Apache Software Foundation, melhore ainda mais essa marca.
Desenvolvido inicialmente pelo Facebook para ampliar sua instalação de MySQL, o Cassandra é um repositório de dados leve feito em Java, que dispensa a sobrecarga de recursos dos bancos de dados relacionais convencionais. A tecnologia é similar àquela oferecida por outros bancos de dados NoSQL emergentes, como MapReduce e Hadoop.
Para programadores habilidosos, os chamados bancos de dados NoSQL podem dar impulso à performance e à escalabilidade, e é por isso que eles têm atraído a atenção da comunidade web.
Como o Facebook e o Twitter, o Digg também está largando o MySQL, o queridinho de primeira hora da Web 2.0, para adotar o Cassandra.
A Cisco Systems, o provedor de hospedagem Rackspace e outras empresas também usam o Cassandra. A maior instalação do Cassandra em produção cuida de 100 terabytes de dados e usa 150 servidores, de acordo com o site do projeto.
Benchmark
Na entrevista para o blog, King disse que o Twitter analisou diversas opções para atualizar seu sistema, incluindo a rearquitetura do MySQL para que pudesse rodar melhor em cluster, e as ofertas de diversos rivais do Cassandra, como HBase, Voldemort, MongoDB, MemCacheDB, Redis e HyperTable.
King disse que o teste demonstrou que o Cassandra era o mais escalável, confiável e fácil de gerenciar que as alternativas.
O Twitter está “atualmente migrando sua maior (e talvez a mais dolorosa de manter) tabela – a tabela de status, que contém todos os tweets e retweets” para o Cassandra, disse. “Depois dissio, nós começaremos a colocar novos projetos no Cassandra e a migrar outras tabelas.”
Para minimizar o tempo de inatividade durante a migração, o Twitter planeja implementar novos recursos, rodando-os no Cassandra combinado com o MySQL, para o caso de qualquer imprevisto. Uma vez que se constate que não há bugs, o Twitter irá fazer um backup do MySQL e exportá-lo para o Cassandra, em um processo que deverá durar uma semana, disse ele.
Somente depois de mais testes, o Twitter deixará o Cassandra em produção e desativará o MySQL.
“Nosso processo para efetuar mudanças importantes na infraestrutura pode ser resumido como ‘integre primeiro, depois promova a iteração’, disse King.