mar 3 2010
Software Livre ajuda Twitter a melhorar performance e alta-disponibilidade!
O Twitter teve um crescimento absurdo, todos nós sabemos, mas, com números, as coisas ficam ainda mais “interessantes”. Em janeiro do ano passado, o Twitter tinha pouco mais de 2 milhões de tweets, agora em fevereiro de 2010, esse número subiu para os impressionantes 50 milhões de tweets diários!
Com esse tipo de desafio, com crescimento e para manter-se escalável e com boa redundância a falhas, Ryan King (engenheiro de software do Twitter) pensa em trocar em trocar o atual banco de dados Mysql, para o projeto Open Source da Apache Cassandra.
Cassandra foi um software desenvolvido pelo Facebook, liberado para o mundo Open Source em 2008. Ele leva o conceito de banco de dados sem ser no formato dos bancos atuais, como Oracle, Postgree ou SQL Server.
A idéia que permeia o conceito usado no cassandra é conhecida como MyNoSQL, onde não existe um banco de dados, mas, um conjunto de arquivos como índices (como o Google faz). Ele retira algumas facilidades que banco de dados como Oracle, para determinar uma maior escalabilidade e performance, ja que você só precisa da biblioteca JSO (Java) + Sistema de arquivos do seu Sistema Operacional, ou seja, no caso do conceito NyNoSql, a escolha de tipo de sistema de arquivos (NTFS, Ext, Reiserfs, etc…) é a escolha mais impactante para a implementação.
Mas, voltemos ao assunto principal ![]()
King, comenta sobre os seus problemas, com o Cluster em Mysql que tem hoje:
“Nós temos um bocado de dados, o fator de crescimento desses dados é enorme e a taxa de crescimento está acelerando, está rapidamente se tornando proibitivo para operar. Precisamos de um sistema que possa crescer de forma mais automática e que tenha alta disponibilidade”.
Como nos últimos 12 meses o Twitter esteve no ar 99,72%, com downtime de 23 horas e 45 minutos, houve uma melhora grande em comparação com 2008, onde ficou 84 horas fora do ar. Essa marca deve melhorar quando o projeto Cassandra estiver completamente implementado.
A ideia é usar a pior tabela (que tem Tweets e Re-Tweets) para um banco Cassandra, testa-lo lado a lado com o Mysql e depois de satisfatório, migrar todas as outras tabelas e retirar o Mysql da produção.
Assim como Twitter, Facebook o Digg também esta eliminaram o Mysql pelo mesmo problema, passando a usar o projeto Cassandra, além de outras empresas de grande porte, como a Cisco.
Um outro detalhe que me chama a atenção é que com essa “debandada” de empresas que usavam Mysql em sistemas de alta performance + disponibilidade + alta carga para outro projeto Open Source, deixa a entender que o Mysql não é um banco tão robusto e escalável como muitos achavam, quando o “trabalho é realmente pesado”.
Parece que o conceito de arquivos, substituindo banco de dados relacionais que precisam de grande escalabilidade sem ter que gastar muita licença (com Oracle, Mysql ou DB2, com certeza a conta seria salgada), esta funcionando.
Ponto para o Software livre! ![]()





mar 03, 2010 @ 13:19:17
“deixa a entender que o Mysql não é um banco tão robusto e escalável como muitos achavam, quando o “trabalho é realmente pesado”.”
Nada, acho que o conceito sql é que não é mais tão robusto e escalável como muitos achavam… provavelmente teriam o mesmo problema com SqlServer, Oracle, Postgre… =D
mar 03, 2010 @ 13:36:37
não entendo muito de My sql, mas será que será uma mudança realmente significativa em termos de velocidade?
mar 03, 2010 @ 13:59:59
Sql Server e Oracle são bem escaláveis, tanto que o banco de dados que mais recebe dados diários (na casa dos terabytes) é Sql Server.
O problema é o custo, que no caso, o Twitter, não quis pagar, ja que com certeza, seria algo bem “salgado”.
mar 03, 2010 @ 14:26:15
Só corrigindo um erro, os dados diários estão na casa dos Gigabytes e não Terabytes (Que a cada 6 meses aumenta em 4 teras), como tinha mencionado acima.
mar 03, 2010 @ 14:26:42
Pelas empresas que migraram, disseram que sim.