sexta-feira, 11 de fevereiro de 2011

Google revela segredos do Megastore

Por Thomas Claburn | InformationWeek EUA 
Um trabalho recentemente publicado revela um importante, mas raramente discutido, sistema de armazenamento da companhia
 


O sucesso do Google se deve, em grande parte, à sua infraestrutura em computação. Os engenheiros da empresa desenvolveram e distribuíram inovações como o MapReduce, uma maneira de processar grandes conjuntos de dados; o BigTable, um sistema de armazenamento distribuído; o Sawzall, uma linguagem interpretada de programação para análise de grandes conjuntos de dados distribuídos; o Google File System, um sistema de arquivos distribuídos; e o Google Workqueue, um sistema distribuído de gerenciamento de consulta.
Quer ficar por dentro de tudo o que acontece na comunidade de TI e telecom? Assine a nossa newsletter gratuitamente e receba, todos os dias, os destaques em sua caixa de e-mail

A esta lista, adicione a Megastore, o sistema de armazenamento que dá suporte ao Google App Engine, entre outros aplicativos. O Megastore vem sendo usado por muitos anos no Google. Foi discutido na conferência de SIGMOD 2008, mas as informações sobre a sua tecnologia só foram publicadas no mês passado na Conference on Innovative Data Systems Research (CIDR).

O documento que detalha a tecnologia, "Megastore: Providing Scalable, Highly Available Storage for Interactive Services", descreve um sistema de armazenamento adaptado aos modernos serviços interativos online.

“O Megastore mistura a escalabilidade de um armazenamento de dados NoSQL com a conveniência de um RDBMS tradicional de uma maneira nova e fornece garantia de forte consistência e alta disponibilidade”, afirma o estudo. “Nós fornecemos uma semântica completa serial ACID em partições finas de dados”.

Os aplicativos de rede hoje, diz o estudo, têm que ser altamente escaláveis, têm que competir por usuários por meio de um rápido desenvolvimento, têm que ser sensíveis em termo de latência; têm que fornecer aos usuários dados consistentes – não planilhas de fuga para a nuvem – e têm que estar disponíveis o tempo todo.

“Estes requisitos estão em conflito”, afirma o estudo. “Bancos de dados relacionais fornecem um rico conjunto de características para a fácil construção de aplicativos, mas  são difíceis de escalar para centenas de milhões de usuários. Datastores NoSQL, como o Bigtable, do Google, o HBase, da Apache Hadoop, ou o Cassandra ,do Facebook, são altamente escaláveis, mas suas APIs  limitadas e perda de modelo de consistência complicam o desenvolvimento dos aplicativos. Copiar dados por meio de centro de dados distantes enquanto fornece baixa latência é um desafio, pois consiste em garantir uma visão consistente de cópias de dados, especialmente durante os erros”, adicionou.

Tendo rejeitado o tradicional RDBMS (sistema de gerenciamento de banco de dados relacional) e o banco de dados open source, como o MySQL, o documento também critica “sistemas de banco de dados comerciais caros como o Oracle (que), significativamente, aumentam o custo total de propriedade em grandes implantações em nuvem”.

Reprodução de operações

O Megastore é projetado para reproduzir as operações de gravação de arquivo com sincronia por meio de uma rede de área ampla com latência razoável e suporte para failover através do centro de dados. O objetivo é encontrar um meio termo entre a escalabilidade do banco de dados NoSQL e a conveniência dos tradicionais RDBMS.

James Hamilton, vice-presidente e engenheiro da Amazon.com, notou a pouca informação pública sobre o Megastore em várias postagens em seu blog pessoal durante os anos e expressou sua admiração frente à tecnologia quando o estudo do Google foi publicado. “Apoiar a leitura consistente e atualização semântica completa do ACID é impressionante, embora a limitação de não ser possível a atualização de um grupo de entidades em mais do que “alguns por segundo” seja limitante”, ele escreveu.

O estudo afirma que mais de cem aplicativos de produção usam o Megastore como seu dispositivo de armazenamento e que a maioria dos clientes do Google percebem disponibilidade de 99,999% ou mais. A média de leitura de latência está na faixa de dezenas de milissegundos e a escrita média de latência varia de cem a 400 milissegundos, dependendo da distância do centro de dados e o tamanho da operação escrita.

O Google preferiu não comentar, deixando que o relatório falasse por si só.