Hacia 2004, cada producto de Google afrontaba el mismo problema: almacenar enormes cantidades de datos estructurados, desde rastreos web hasta imágenes satelitales y fuentes financieras. Crear un sistema de almacenamiento a medida para cada producto resultaba costoso, y las bases de datos comerciales no alcanzaban la escala requerida, así que la empresa diseñó un único sistema compartido.
Bigtable presenta un modelo simple: un mapa disperso y ordenado, indexado por fila, columna y marca temporal, con los valores almacenados como bytes sin interpretar. Las aplicaciones deciden su propia disposición, controlan la localidad de los datos e incluso eligen si los datos se sirven desde memoria o desde disco, mientras la plataforma gestiona la partición, la replicación y la conmutación por error en miles de servidores de uso general.
En el momento del artículo de 2006, más de sesenta productos de Google, incluidos Google Analytics, Google Finance, Personalized Search y Google Earth, usaban Bigtable. Los clústeres iban desde unos pocos hasta miles de servidores, y almacenaban hasta varios cientos de terabytes cada uno.
Un único almacén compartido; cada producto ajusta su esquema
Una sola plataforma reparte el costo de ingeniería y operaciones entre muchos productos
Las aplicaciones controlan la disposición, así que el modelo se mantiene simple aunque los usos difieran
Servidores de uso general más partición automática escalan hasta petabytes
Un sistema compartido significa que un solo equipo puede reforzarlo para todos
Antes de escalar un producto, construye una vez el sustrato compartido: un sistema que muchos equipos ajustan supera a muchos sistemas a medida que nadie puede mejorar en conjunto.
Bigtable siguió siendo la columna vertebral de los propios servicios de Google y más tarde se convirtió en una oferta de Google Cloud, 'el pionero de NoSQL': un almacén gestionado de clave-valor y de columnas anchas para cargas de trabajo de personalización, clickstream e IoT sensibles a la latencia, con API compatibles con HBase y Cassandra. Sus ideas también dieron forma a clones de código abierto como HBase.
CONSULTA LAS PRUEBAS
Las fuentes
- Bigtable: A Distributed Storage System for Structured Data USENIX (OSDI '06) · usenix.org
- Bigtable: fast, flexible NoSQL Google Cloud · cloud.google.com