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.

17 julho 2008

Um guia curto para dominar o mundo...

Você quer ser uma peça do tabuleiro ou você quer jogar o jogo da sua vida?

Este pequeno e-book é muito interessante porque levanta as perguntas mais importantes da vida de todos:
  • O que você realmente quer desta vida?
  • O que você pode oferecer ao mundo que ninguém mais pode?
Com estas perguntas você é levado a analisar e questionar seu comportamento com a vida e imaginar como seria enfrentar as forças de conformação da sociedade, sair da mediocridade e realizar o que o universo realmente espera de você: mudar o mundo.

O bacana é que na prática maximizar os objetivos de resultados para si e para o mundo não é contraditório. Na realidade o sucesso de um só é possível pelo sustento do sucesso do outro.

Sair da mediocridade é difícil mas você deve a você e ao mundo pelo menos tentar começar. O que você fará hoje para começar a tomar o mundo?

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.