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 :P

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! ;)

Fonte

Related Posts with Thumbnails