Por volta de 2004, cada produto do Google enfrentava o mesmo problema: armazenar enormes quantidades de dados estruturados, de rastreamentos da web a imagens de satélite e feeds financeiros. Construir um sistema de armazenamento personalizado por produto era caro, e os bancos de dados prontos para uso não alcançavam a escala necessária, então a empresa projetou um único sistema compartilhado.
O Bigtable apresenta um modelo simples: um mapa esparso e ordenado, indexado por linha, coluna e carimbo de data/hora, com valores armazenados como bytes não interpretados. As aplicações decidem seu próprio layout, controlam a localidade dos dados e até escolhem se os dados são servidos da memória ou do disco, enquanto a plataforma cuida do particionamento, da replicação e do failover em milhares de servidores de baixo custo.
Na época do artigo de 2006, mais de sessenta produtos do Google, incluindo Google Analytics, Google Finance, Pesquisa Personalizada e Google Earth, usavam o Bigtable. Os clusters variavam de um punhado a milhares de servidores, armazenando até várias centenas de terabytes cada.
Um único armazenamento compartilhado; cada produto ajusta seu esquema
Uma plataforma distribui o custo de engenharia e operações entre muitos produtos
As aplicações controlam o layout, então o modelo permanece simples enquanto os usos diferem
Servidores de baixo custo mais particionamento automático escalam para petabytes
Um sistema compartilhado significa que uma equipe pode fortalecê-lo para todos
Antes de escalar um produto, construa o substrato compartilhado uma vez: um sistema que muitas equipes ajustam supera muitos sistemas sob medida que ninguém consegue melhorar em conjunto.
O Bigtable permaneceu como a espinha dorsal dos próprios serviços do Google e mais tarde se tornou uma oferta do Google Cloud, 'o pioneiro do NoSQL': um armazenamento gerenciado de chave-valor e de colunas largas para cargas de trabalho sensíveis à latência de personalização, clickstream e IoT, com APIs compatíveis com HBase e Cassandra. Suas ideias também moldaram clones de código aberto como o HBase.
CONFIRA AS EVIDÊNCIAS
As fontes
- Bigtable: A Distributed Storage System for Structured Data USENIX (OSDI '06) · usenix.org
- Bigtable: fast, flexible NoSQL Google Cloud · cloud.google.com