É Oracle ou MySQL ou algo que eles mesmos construíram?
É Oracle ou MySQL ou algo que eles mesmos construíram?
Respostas:
Um sistema de armazenamento distribuído para dados estruturados
O Bigtable é um sistema de armazenamento distribuído (desenvolvido pelo Google) para gerenciar dados estruturados projetados para serem dimensionados para um tamanho muito grande: petabytes de dados em milhares de servidores comuns.
Muitos projetos no Google armazenam dados no Bigtable, incluindo indexação na web, Google Earth e Google Finance. Esses aplicativos impõem demandas muito diferentes ao Bigtable, tanto em termos de tamanho dos dados (de URLs a páginas da Web em imagens de satélite) quanto em requisitos de latência (do processamento em massa de back-end à veiculação de dados em tempo real).
Apesar dessas demandas variadas, a Bigtable forneceu com sucesso uma solução flexível e de alto desempenho para todos esses produtos do Google.
Algumas funcionalidades
Arquitetura
BigTable não é um banco de dados relacional. Ele não oferece suporte a junções nem a consultas avançadas do tipo SQL. Cada tabela é um mapa esparso multidimensional. As tabelas consistem em linhas e colunas e cada célula tem um carimbo de hora. Pode haver várias versões de uma célula com carimbos de hora diferentes. O registro de data e hora permite operações como "selecione as versões desta página da Web" ou "exclua células anteriores a uma data / hora específica".
Para gerenciar as grandes tabelas, o Bigtable divide as tabelas nos limites das linhas e as salva como tablets. Um tablet tem cerca de 200 MB e cada máquina economiza cerca de 100 comprimidos. Essa configuração permite que tablets de uma única tabela sejam distribuídos entre muitos servidores. Ele também permite o balanceamento de carga refinado. Se uma tabela estiver recebendo muitas consultas, ela poderá liberar outros tablets ou mover a tabela ocupada para outra máquina que não esteja tão ocupada. Além disso, se uma máquina cair, um tablet poderá se espalhar por muitos outros servidores, para que o impacto no desempenho de qualquer máquina seja mínimo.
As tabelas são armazenadas como SSTables imutáveis e um final de logs (um log por máquina). Quando uma máquina fica sem memória do sistema, compacta alguns tablets usando técnicas de compressão proprietárias do Google (BMDiff e Zippy). As pequenas compactação envolvem apenas alguns tablets, enquanto as principais compactação envolvem todo o sistema de tabelas e recuperam espaço no disco rígido.
Os locais dos tablets Bigtable são armazenados nas células. A pesquisa de qualquer tablet em particular é realizada por um sistema de três camadas. Os clientes obtêm um ponto para uma tabela META0, da qual existe apenas uma. A tabela META0 controla muitos tablets META1 que contêm os locais dos tablets que estão sendo procurados. O META0 e o META1 fazem uso intenso de pré-busca e armazenamento em cache para minimizar gargalos no sistema.
Implementação
BigTable é construído no sistema de arquivos do Google (GFS), usado como repositório de arquivos de log e dados. O GFS fornece armazenamento confiável para o SSTables, um formato de arquivo proprietário do Google usado para manter os dados da tabela.
Outro serviço que o BigTable faz uso pesado é o Chubby , um serviço de bloqueio distribuído confiável e altamente disponível. O Chubby permite que os clientes bloqueiem, possivelmente associando-o a alguns metadados, que podem ser renovados enviando mensagens mantidas ativas de volta ao Chubby. Os bloqueios são armazenados em uma estrutura de nomeação hierárquica semelhante ao sistema de arquivos.
Existem três tipos principais de servidores de interesse no sistema Bigtable:
Exemplo do trabalho de pesquisa do Google:
Uma fatia de uma tabela de exemplo que armazena páginas da Web. O nome da linha é um URL invertido . A família de colunas de conteúdo contém o conteúdo da página e a família de colunas de âncora contém o texto de qualquer âncora que faça referência à página. A home page da CNN é referenciada pelas home pages Sports Illustrated e MY-look, portanto, a linha contém colunas nomeadas
anchor:cnnsi.com
eanchor:my.look.ca
. Cada célula âncora possui uma versão ; a coluna de conteúdo possui três versões , nos registros de datat3
e horat5
, et6
.
API
As operações típicas do BigTable são criação e exclusão de tabelas e famílias de colunas, gravação de dados e exclusão de colunas de uma linha. O BigTable fornece essas funções para desenvolvedores de aplicativos em uma API. As transações são suportadas no nível da linha, mas não em várias chaves de linha.
Aqui está o link para o PDF do trabalho de pesquisa .
E aqui você pode encontrar um vídeo mostrando Jeff Dean, do Google, em uma palestra na Universidade de Washington , discutindo o sistema de armazenamento de conteúdo Bigtable usado no back-end do Google.
É algo que eles mesmos construíram - se chama Bigtable.
http://en.wikipedia.org/wiki/BigTable
Há um artigo do Google no banco de dados:
Spanner é o sistema de gerenciamento de banco de dados relacional distribuído globalmente (RDBMS) do Google, o sucessor do BigTable . O Google alega que não é um sistema relacional puro, porque cada tabela deve ter uma chave primária.
Aqui está o link do artigo.
O Spanner é o banco de dados escalável, com várias versões, distribuído globalmente e replicado de forma síncrona do Google. É o primeiro sistema a distribuir dados em escala global e dar suporte a transações distribuídas externamente consistentes. Este artigo descreve como o Spanner está estruturado, seu conjunto de recursos, a lógica subjacente a várias decisões de design e uma nova API de tempo que expõe a incerteza do relógio. Essa API e sua implementação são essenciais para suportar a consistência externa e uma variedade de recursos poderosos: leituras sem bloqueio no passado, transações somente leitura sem bloqueio e alterações de esquema atômico em todo o Spanner.
Outro banco de dados inventado pelo Google é o Megastore . Aqui está o resumo:
O Megastore é um sistema de armazenamento desenvolvido para atender aos requisitos dos serviços online interativos atuais. O Megastore combina a escalabilidade de um armazenamento de dados NoSQL com a conveniência de um RDBMS tradicional de uma maneira inovadora e fornece garantias fortes de consistência e alta disponibilidade. Fornecemos semânticas ACID totalmente serializáveis em partições refinadas de dados. Esse particionamento nos permite replicar de forma síncrona cada gravação em uma rede de área ampla com latência razoável e oferecer suporte a failover contínuo entre os datacenters. Este artigo descreve o algoritmo de semântica e replicação do Megastore. Também descreve nossa experiência no suporte a uma ampla variedade de serviços de produção do Google criados com a Megastore.
Como outros já mencionaram, o Google usa uma solução doméstica chamada BigTable e eles lançaram alguns documentos descrevendo-a no mundo real.
O pessoal do Apache implementa as idéias apresentadas nesses documentos, chamadas HBase . O HBase faz parte do projeto maior do Hadoop, que de acordo com o site "é uma plataforma de software que permite escrever e executar facilmente aplicativos que processam grandes quantidades de dados". Alguns dos benchmarks são bastante impressionantes. O site deles está em http://hadoop.apache.org .
Embora o Google use o BigTable para todos os seus principais aplicativos, eles também usam o MySQL para outros aplicativos (talvez menores).
E talvez também seja útil saber que o BigTable não é um banco de dados relacional (como MySQL), mas uma enorme tabela de hash (distribuída) que possui características muito diferentes. Você pode brincar com (uma versão limitada) do BigTable na plataforma Google AppEngine .
Ao lado do Hadoop mencionado acima, existem muitas outras implementações que tentam resolver os mesmos problemas que o BigTable (escalabilidade, disponibilidade). Ontem vi um bom post de blog listando a maioria deles aqui .
O Google usa principalmente o Bigtable.
O Bigtable é um sistema de armazenamento distribuído para gerenciar dados estruturados projetados para serem dimensionados para um tamanho muito grande.
Para mais informações, baixe o documento aqui .
O Google também usa bancos de dados Oracle e MySQL para alguns de seus aplicativos.
Mais informações que você pode adicionar são muito apreciadas.
Google also use Oracle
- referência necessária.
Os serviços do Google têm uma arquitetura de persistência poliglota. O BigTable é alavancado pela maioria de seus serviços, como YouTube, Pesquisa do Google, Google Analytics etc. O serviço de pesquisa inicialmente usou o MapReduce para sua infraestrutura de indexação, mas depois passou para o BigTable durante o lançamento do Caffeine.
O armazenamento de dados do Google Cloud tem mais de 100 aplicativos em produção no Google, tanto para usuários internos quanto externos. Aplicativos como Gmail, Picasa, Google Agenda, Android Market e AppEngine usam o Cloud Datastore & Megastore.
O Google Trends usa o MillWheel para processamento de fluxo. O Google Ads inicialmente usou o MySQL e depois migrou para o F1 DB - um banco de dados relacional distribuído e personalizado. O YouTube usa o MySQL com Vitess. O Google armazena exabytes de dados nos servidores de commodities com a ajuda do Google File System.
Banco de Dados do YouTube - Como ele armazena tantos vídeos sem ficar sem espaço de armazenamento?