Mostrando postagens com marcador megadata. Mostrar todas as postagens
Mostrando postagens com marcador megadata. Mostrar todas as postagens

21 julho 2008

Cassandra: bigtable/dynamo em código aberto do facebook

Algumas semanas atrás o Facebook liberou sem chamar muita atenção sua implementação de uma base de dados robusta e replicada inspirada do BigTable do Google e utilizando conceitos de distribuição de dados do Dynamo da Amazon.

É um código feito em Java de cerca de 40 mil linhas que parece implementar um núcleo funcional mas sem todas as liberdades que existem nos sistemas da Google e da Amazon.

Foi implementado recentemente por uma equipe pequena interna a Facebook como uma alternativa mais simples que a plataforma Hadoop que já está sendo usada a algum tempo no Facebook.

O código está no Google Code e existe uma apresentação sobre o projeto discutindo alguns detalhes internos.

08 julho 2008

Consistência eventual de dados no eBay

A revista Queue da ACM publicou na edição maio/junho de 2008 um artigo chamado "ACID vs. BASE" de Dan Pritchett (eBay) falando do conceito de consistência eventual em armazenamento escalável de dados.

É uma ótima introdução dos conceitos de gerenciamento de dados distribuídos aonde a consistência perfeita "ACID" é abandonada para permitir níveis de performance e escalabilidade que são impossíveis de atingir numa plataforma monolítica.

Já fiz vários comentários sobre o conceito de dados distribuídos, o interessante é como que todos os grandes serviços na Internet (Google, Amazon, eBay, etc) só conseguiram atingir o público mundial abandonando a segurança da consistência tão defendida pelos fornecedores convencionais de banco de dados comerciais.

Na prática, quando os dados passam a ser divididos em milhares de servidores separados para conseguir a performance, a consistência "global" acaba sendo impossível de ser atingida.

13 junho 2008

Megadata, nova tendência para os banco de dados

Interessante este artigo de Joe Gregorio onde ele expõe uma tendência de crescimento do uso de quantidades absurdas de dados, exigências de robustez, facilidade para alteração constante da forma da representação dos dados e buscas praticamente instantâneas neste universo.

Os servidores de banco de dados comerciais já não dão conta desta demanda a vários anos. A Google, a Amazon, o eBay (leia isso!), e muitos outros já aprenderam na prática que vários conceitos aprendidos no passado de depender de uma caixa preta (banco de dados) para implementar garantias transacionais e integridade referencial não é mais viável.

Joe Gregorio tenta formular o conceito do Megadata:
  • dados distribuidos em múltiplas máquinas, em vez de centralizado num servidor gigante;
  • Joinless, sem joins e sem integridade referencial, pelo menos não no local de armazenamento;
  • De-normalizado, para evitar os joins;
  • Sem transações. Se as transações numa máquina separada já é cara, transações distribuidas em servidores torna isso completamente inviável pela perda de performance.
Ele termina argumentando que estas necessidades começaram em algumas grandes empresas de atuação global pela Internet, mas que logo caminharão para muitas outras aplicações, onde processamento e armazenamento massivo de baixo custo possam contruir novas oportunidades.