Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Crescimento faz Twitter trocar o MySQL pelo Cassandra

Antes de falar sobre a mudança, um trecho sobre a tecnologia:

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.

Via ComputerWorld:

Ryan King, engenheiro do Twitter, contou 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. (…) (via computerworld.uol.com.br, link enviado pelo Fernando Miranda)


• Publicado por Augusto Campos em 2010-02-25

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Gustavo Franco (usuário não registrado) em 25/02/2010 às 4:16 pm

    MapReduce e Hadoop não são banco de dados! Hadoop é um conjunto de ferramentas livres para MapReduce. MapReduce é um modelo de programacao para processar grandes quantidades de dados. Com Hadoop você pode salvar a entrada e a saída dos mesmos em um de seus componentes chamados de HBase, esse sim uma base de dados NoSQL como: Cassandra, Tokyo Cabinet, CouchDB e etc.

    Profeta do Caos (usuário não registrado) em 25/02/2010 às 5:00 pm

    Agora entendi porque o twitter tem tantos problemas

    João (usuário não registrado) em 25/02/2010 às 5:09 pm

    Por que você acha que o Twitter tem tantos problemas, Profeta do Caos?

    Conan (usuário não registrado) em 25/02/2010 às 5:26 pm

    Alguem sabe porque não usam algo mais “tradicional” e bem testado em sitemas de H.A., como oracle ou db2?

    Allan Taborda dos Santos (usuário não registrado) em 25/02/2010 às 5:34 pm

    Oracle e DB2 são proprietários e custosos!

    Gustavo Henrique (usuário não registrado) em 25/02/2010 às 5:45 pm

    Muito interessante a migração do twitter para essa paltaforma do banco de dados, achei tb uma outra materia muito interessante, acho que pode complementar essa aqui: http://goo.gl/7W4N
    Fica ai a dica, é um novo conceito de banco de dados entrando no mercado e na cabeça do povo, lembrando que quem movimenta um projeto é a intensidade com o que povo o realiza.
    abraços
    Gustavo

    digao (usuário não registrado) em 25/02/2010 às 6:40 pm

    magina se fosse feito em rails… fala ai felix!

    erico (usuário não registrado) em 25/02/2010 às 6:58 pm

    Alternativas abertas começam a despontar, e nascem bem longe e mais apropriadas aos novos tempos que o monty(ex-mysql) imagina.

    Um detalhe, talvez este seja um dos maiores ações de um dos projetos que estão sob o guarda-chuva da apache foundation, na mesma semana de aniversário do apache. A fundação diga-se de passagem é provavelmente quem mais desenvolve aplicativos em java, depois da oracle-sun é claro.

    sergio (usuário não registrado) em 25/02/2010 às 8:41 pm

    daqui a pouco eles chegam lá…. onde??? no velho, imbativel, confiavel, escalonavel DB (da sleepcat…).. Por que??? por que quando nem o oracle dá conta… vamos de Sleepcat agora na versao 4.8… e tem uma versao em puro java tb… ferramentas para portabilidade… etc… etc…
    Para grandes volumes de dados.. é a coisa mais rapida que conheco… algo em torno de logN onde log=> base 16, 64… leituras em disco para achar um registro.. tipo assim em um database de 1099511627776 (2^40) registros… (nao bytes…) ele demoraria 24 acessos de disco para pegar um registro..
    se o acesso a disco for de 2ms -> 48ms para pegar qualquer coisa no disco… sem contar cache….etc…etc… e voce nao consegue perder nada, nunca….

    Curioso (usuário não registrado) em 25/02/2010 às 9:49 pm

    Sleepcat = Oracle Berkeley DB certo?

    Estava começando a implementar uma aplicação (ERP) em PostgreSQL e pelo comentário do @Sergio fiquei impressionado com o Sleepcat, alguém utiliza o mesmo? O mesmo é seguro em transações? É seguro contra corrupções no Banco? É indicado para um ERP de pequeno porte? Gostaria de relatos de uso, se possível.

    devnull (usuário não registrado) em 25/02/2010 às 11:00 pm

    “Alguem sabe porque não usam algo mais “tradicional” e bem testado em sitemas de H.A., como oracle ou db2?”

    Por causa de algo conhecido como “performance”.

    Cara, eu fico assustado quando alguém lembra que o DB/2 existe. É o pior banco com que eu já trabalhei. Sem flexibilidade, capacidade de integração mínima… é o anti-PostgreSQL.

    Alexandercsq (usuário não registrado) em 26/02/2010 às 3:53 am

    Só aparecer algo melhor aparecer,começam a defecar no antigo que tanto serviu, e foi tão aclamado.

    “Cara, eu fico assustado quando alguém lembra que o DB/2 existe. É o pior banco com que eu já trabalhei. ”

    Engraçado, minha experiência com ele foi diferente, o banco mais resistente à crash e menos sujeito à corrupção de dados ou índice. E em escalabilidade ele só perdeu pro Oracle.

    Paul (usuário não registrado) em 26/02/2010 às 8:44 am

    DB2 é horrível, fato (sou IBM employee).

    Depois de mudarem todos os daemons para Scala (JVM), agora a solução de bd também.

    E depois quem não conhece Java, fica se perguntando o pq uma linguagem menos amigável que as mais modernas, é o padrão da indústria.

    Challado (usuário não registrado) em 26/02/2010 às 10:01 am

    E o Firebird?

    Olha que esse banco de dados também é bom viu… Já trabalhei com ele e é show de bola!!!

    João (usuário não registrado) em 26/02/2010 às 10:02 am

    Sobre o Sleepycat, não sei se há como compará-lo com o Cassandra. O Sleepycat não parece ter replicação multi-master e failover “fácil”. Com o Cassandra, você pode adicionar novos servidores facilmente. É claro, nada disso vem de graça. Sua aplicação tem que permitir o modelo “eventualmente consistente”. É o caso do Twitter, mas em outros lugares tal modelo é inaceitável.

    Dyego Souza do Carmo (usuário não registrado) em 26/02/2010 às 10:06 am

    Rapaz…
    O twitter inteiro tá migrando para a plataforma java , só não usa a linguagem…

    Banco em Java
    CORE em scala (que é uma linguagem que roda na JVM)

    Será que o Rails para a parte visual roda com JRuby ?

    Mas java não era um monstro lento ? Hummmm…

    Profeta do Caos (usuário não registrado) em 26/02/2010 às 10:21 am

    O DB2 é horrivel para quem não sabe usar. Assim como o Oracle é lento para quem não conhece o banco, isto não entra no mérito de ser proprietario ou não. Assim como gosto bastante do Postgresql, já vi casos de sucesso com este banco.
    Mas vem bastante “dba” dizer que o banco não presta e com certeza não conhecer metade dos recursos do banco e muitas vezes nem SQL direito. Poupe-me.

    Paul (usuário não registrado) em 26/02/2010 às 10:42 am

    Profeta do Caos, o fato de eu trabalhar para a fabricante do banco, pressupõe que eu saiba bem SQL, e utilizar o banco deles.

    E vc, sem ao menos saber quem sou, já afirma eu é quem não sei SQL.

    DB2 é um lixo quando comparado com concorrentes. Só usamos na IBM pq aqui é a fonte da síndrome “not invented here”.

    Conan (usuário não registrado) em 26/02/2010 às 11:53 am

    @Allan Taborda dos Santos,
    Qual o problema de uma ferramenta ser “proprietária e custosa”?

    Eu trabalho a muitos anos com oracle e já trabalhei um pouco com DB2. Acho que o custo da indisponibilidade de um sistema é infinitamente maior que o custo do gerenciador de banco de dados e do suporte.

    Juliano Martins (usuário não registrado) em 26/02/2010 às 12:19 pm

    @Paul, DB2 não é lixo. Prova disso é que nos últimos 60 meses só se escuta que empresas estão migrando de Oracle pra DB2 ou MS. Vide o caso Unibanco-Itaú, foram para DB2.
    Eu também trabalho na IBM, e por sinal, no lab de desenvolvimento de DB2. Como você trabalha na IBM, deveria ter lido o guia de conduta e ética, e saber que (resumindo a ópera) nunca devemos atacar publicamente o concorrente e nem nós mesmos. No mínimo, sua atitude mostra o tipo de profissional que você deve ser…
    Finalizando, para cada problema existe uma solução, não vejo que nenhum banco seja tão melhor que o outro, existem DBAs e DBAs, já vi gente fazer maravilhas tanto com Oracle, quanto DB2 e quanto com outros. A tempo, sou DBA certificado Oracle e DB2 (não que um certificado valha alguma coisa).
    Por fim, quem fala que DB2 está morto, está muito por fora do que acontece no mercado.

    Concordo com o @Conan. A segurança que um banco proporciona pode ser muito maior que o preço pago por ele.

    Como disse antes, não tenho a reclamar do DB2. Em segurança ele deu uma surra nos outros testados e em performance perdeu por pouca diferença. Como segurança e escala pra nós vem em primeiro lugar, não houve dúvida da escolha e nem arrependimento.

    Trabalhar na IBM só dá garantia de alguma coisa se você trabalha envolvido no projeto. Como você não apresentou um motivo técnico sequer, é natural que alguém duvide da sua capacidade.

    João (usuário não registrado) em 26/02/2010 às 2:10 pm

    @marcosalex,

    Um dos problema de se usar um Oracle, por exemplo, é o altíssimo custo de escalabilidade. O Oracle RAC é MUITO caro. Para um website como o Twitter, pode ser impraticável depender de uma hemorragia de dinheiro para manter sua infra-estrutura.
    Não podemos comparar uma grande empresa, como uma instituição financeira, para quem a indisponibilidade poder inaceitável, com um Twitter.

    Wagner Santos (usuário não registrado) em 26/02/2010 às 3:28 pm

    @Paul,

    DB2 é um lixo assim como seu perfil profissional. Você trabalha numa grande empresa e pelo visto se gaba de dizer que trabalha lá (se é que realmente trabalha). Concordo com o Juliano Martins. DB2 é sim um excelente banco de dados.

    E para os que estão sentando o porrete no Java, acho que deveriam ler melhor a respeito, pois não é “O monstro lento e pesado”. É só saber onde irá aplicar Java. Cada caso é um caso, e há casos que não vale a pena utilizar Java, porém existem outros casos onde é muito melhor utilizar.

    Dyego Souza do Carmo (usuário não registrado) em 26/02/2010 às 4:49 pm

    Morte ao Java ! Morte ao Java !
    hahaha :P

    Por que não trabalhar com Oracle e DB2? certamente por que o Cassandra se mostrou uma melhor opção pra eles, assim como pro Facebook, que foi a empresa que desenvolveu o Cassandra inicialmente. O Cassandra não é um banco tradicional como esses que estamos acostumados, ele sacrifica parcialmente algumas características básicas dos bancos relacionais em busca de performance e escalabilidade.

    Eden (usuário não registrado) em 26/02/2010 às 5:01 pm

    Toda vez que tem alguma notícia de banco de dados tem esse tititi de DBAs…

    Eu acho o seguinte. Pelo que me disseram, o forte do mysql é peformance de leitura, é isso mesmo? Pq se for então não deveriam ter escolhido ele para o twitter que recebe tanta escrita o tempo todo. Ou seja, falha de decisão no momento da implantação.

    Igor Cavalcante (usuário não registrado) em 27/02/2010 às 3:11 pm

    Muito irado quando uma aplicação cresce e seus desenvolvedores tem que se desdobrar pra melhorar a performace. Vou procurar saber como este cassandra funciona. Deve ter uma estrutura bem mais simples que os bancos de dados relacionais, pra ganhar em performace. Será que ele é um banco orientado a objetos?

    Concordo com o Juliano Martins quando ele fala a respeito do DB2. Também trabalho na IBM e uma das ferramentas que sou responsável despejam dados em um DB2. A única coisa que acho chata nele (deve ser por mau uso, já que sou software developer, não DBA) é que ao remover grandes quantidades de dados o banco fica lockado fácinho e a aplicação pára. Como contorno quando tenho que remover uma quantidade de registros que passam de 50.000 uso um robô que elimina registro por registro e grava em log o evento de cada deleção. Tirando isso é raro esse banco ficar indisponível por corrupção ou falha sistêmica.

    Profeta do Caos (usuário não registrado) em 28/02/2010 às 6:11 pm

    @paul, você ficou todo magoadinho comigo, porque não respondeu aos outros DBAS que deram suas opiniões, para reclamar publicamente de quem trabalha só pode ser profissional meia boca mesmo, e realmente tenho duvidas dos seus conhecimentos de SQL.

    Para as pessoas leigas, técnicos e as que se acham técnicos na área, mas que julgam as coisas através do SENSO COMUM, vão dizer que o MySQL é uma porcaria, não presta e outros argumentos sem prova, sem é e sem cabeça!!!

    A pressão por escalabilidade é a tônica do momento. São grandes quantidades de informações, e a coisa tá passando ou passou de aritmético para geométrico.

    Diante disso, o que Twitter quer, é minimizar os custos da expansão. Isso não quer dizer que o MySQL não está suportando ou não tenha capacidade. O problema reside nos custos da escalabilidade.

    É por isso, que estão procurando alternativas para implantar um gerenciador de dados que seja mais dedicado, mais coerente ao negócio e assim, aproveitar melhor os recursos.

    Em outras palavras, um servidor de banco de dados, como o MySQL, Oracle e outros não se aplica ao modelo de negócio (a forma com que os dados são tratado e transacionados), diante da demanda exponencial do Twitter.

    Portanto, é necessário dar outro tratamento (opção pelo cassandra), ou investir na infraestrutura para manter no MySQL como está, ou investir na criação de um plugin para que o MySQL se comporte como o cassandra, já que o MySQL tem a habilidade de mudança de comportamento.

    Henry (usuário não registrado) em 2/03/2010 às 12:06 am

    Porque não usam dbase? Sempre funcionou nos meus projetos.

Este post é antigo (2010-02-25) e foi arquivado. O envio de novos comentários a este post já expirou.