stringtranslate.com

Mesa grande

Bigtable es un servicio de base de datos NoSQL de valores clave y columnas anchas totalmente administrado para grandes cargas de trabajo analíticas y operativas como parte de la cartera de Google Cloud .

Historia

El desarrollo de Bigtable comenzó en 2004. [1] Ahora lo utilizan varias aplicaciones de Google, como Google Analytics , [2] indexación web, [3] MapReduce , que a menudo se utiliza para generar y modificar datos almacenados en Bigtable, [4] Google Maps , [5] búsqueda de Google Books , "Mi historial de búsqueda", Google Earth , Blogger.com , alojamiento de Google Code , YouTube , [6] y Gmail . [7] Las razones de Google para desarrollar su propia base de datos incluyen escalabilidad y un mejor control de las características de rendimiento. [8]

Google F1 se creó utilizando Spanner para reemplazar una implementación basada en MySQL . [9]

Apache HBase y Cassandra son algunos de los proyectos de código abierto más conocidos que se inspiraron en Bigtable.

El 6 de mayo de 2015, se puso a disposición una versión pública de Bigtable como parte de Google Cloud con el nombre Cloud Bigtable. [2]

A partir de enero de 2022, Bigtable administra más de 10 exabytes de datos y atiende más de 5 mil millones de solicitudes por segundo. [10] El 27 de enero de 2022, Google anunció una serie de actualizaciones para Bigtable, incluida la escalabilidad automatizada. [11]

Diseño

Bigtable es uno de los ejemplos prototípicos de un almacén de columnas anchas . Asigna dos valores de cadena arbitrarios (clave de fila y clave de columna) y marca de tiempo (de ahí el mapeo tridimensional) a una matriz de bytes arbitraria asociada. No es una base de datos relacional y se puede definir mejor como un mapa ordenado multidimensional, distribuido y disperso. [3] : 1  Está construido sobre Colossus ( sistema de archivos de Google ), Chubby Lock Service , SSTable (almacenamiento estructurado en registros como LevelDB ) y algunas otras tecnologías de Google . Bigtable está diseñado para escalar en el rango de petabytes en "cientos o miles de máquinas, y para facilitar la adición de más máquinas [al] sistema y comenzar automáticamente a aprovechar esos recursos sin ninguna reconfiguración". [12] Por ejemplo, la copia de Google de la web se puede almacenar en una bigtable donde la clave de fila es una URL de dominio invertido , y las columnas describen varias propiedades de una página web, con una columna en particular que contiene la página en sí. La columna de página puede tener varias versiones con marca de tiempo que describen diferentes copias de la página web con marca de tiempo según el momento en que se obtuvieron. Cada celda de una tabla grande puede tener cero o más versiones con marca de tiempo de los datos. Otra función de la marca de tiempo es permitir tanto el control de versiones como la recolección de basura de datos vencidos.

Las tablas se dividen en varias tabletas : los segmentos de la tabla se dividen en ciertas claves de fila para que cada tableta tenga un tamaño de unos pocos cientos de megabytes o unos pocos gigabytes. Una tabla grande es algo así como un grupo de trabajadores de mapreduce en el que miles a cientos de miles de fragmentos de tabletas pueden ser atendidos por cientos a miles de servidores BigTable. Cuando el tamaño de la tabla amenaza con crecer más allá de un límite especificado, las tabletas pueden comprimirse utilizando el algoritmo BMDiff [13] [14] y el algoritmo de compresión Zippy [15] conocido públicamente y de código abierto como Snappy , [16] que es una variación menos óptima en términos de espacio de LZ77 pero más eficiente en términos de tiempo de cómputo. Las ubicaciones en el GFS de las tabletas se registran como entradas de base de datos en múltiples tabletas especiales, que se denominan tabletas "META1". Las tabletas META1 se encuentran consultando la tableta "META0", que normalmente reside en un servidor propio, ya que los clientes suelen consultarle la ubicación de la tableta "META1", que tiene la respuesta a la pregunta de dónde se encuentran los datos reales. Al igual que el servidor maestro de GFS, el servidor META0 no suele ser un cuello de botella , ya que el tiempo de procesador y el ancho de banda necesarios para descubrir y transmitir las ubicaciones de META1 son mínimos y los clientes almacenan en caché las ubicaciones de forma agresiva para minimizar las consultas.

Referencias

  1. ^ Hitchcock, Andrew, Google's Bigtable , consultado el 29 de julio de 2007 , Primero, una descripción general. Bigtable ha estado en desarrollo desde principios de 2004 y ha estado en uso activo durante aproximadamente ocho meses (aproximadamente febrero de 2005)..
  2. ^ ab "Anuncio de Google Cloud Bigtable: la misma base de datos que impulsa Google Search, Gmail y Analytics ahora está disponible en Google Cloud Platform". Blog de Google . 6 de mayo de 2015 . Consultado el 21 de septiembre de 2016 .
  3. ^ desde Chang y otros. 2006.
  4. ^ Chang et al. 2006, p. 3: 'Bigtable se puede utilizar con MapReduce, un marco para ejecutar cálculos paralelos a gran escala desarrollado en Google. Hemos escrito un conjunto de contenedores que permiten utilizar Bigtable como fuente de entrada y como destino de salida para trabajos de MapReduce'
  5. ^ Hitchcock, Andrew, Google's Bigtable , consultado el 29 de julio de 2007 , Actualmente hay alrededor de 100 celdas para servicios como Imprimir, Historial de búsqueda, Mapas y Orkut..
  6. ^ Cordes, Kyle (12 de julio de 2007), Escalabilidad de YouTube (discusión) , Su nueva solución para las miniaturas es utilizar Bigtable de Google, que proporciona un alto rendimiento para una gran cantidad de filas, tolerancia a fallos, almacenamiento en caché, etc. Este es un buen (¿y raro?) ejemplo de sinergia real en una adquisición..
  7. ^ "Cómo se almacenan las entidades y los índices", Google App Engine, Google Code, archivado desde el original el 7 de enero de 2012 , consultado el 17 de abril de 2014.
  8. ^ Chang et al. 2006, Conclusión: 'Hemos descrito Bigtable, un sistema distribuido para almacenar datos estructurados en Google... A nuestros usuarios les gusta el rendimiento y la alta disponibilidad que ofrece la implementación de Bigtable, y que pueden escalar la capacidad de sus clústeres simplemente añadiendo más máquinas al sistema a medida que sus demandas de recursos cambian con el tiempo... Por último, hemos descubierto que existen ventajas significativas en la creación de nuestra propia solución de almacenamiento en Google. Hemos obtenido una cantidad sustancial de flexibilidad al diseñar nuestro propio modelo de datos para Bigtable.'
  9. ^ Shute, Jeffrey 'Jeff'; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin 'Ben'; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), "Resumen; F1: el RDBMS distribuido tolerante a fallos que respalda el negocio publicitario de Google", Investigación (presentación) , Sigmod, pág. 19, Hemos trasladado un conjunto de aplicaciones grande y crítico de MySQL a F1{{citation}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace ).
  10. ^ "Cloud Bigtable ahora es aún más fácil de administrar con escalamiento automático".
  11. ^ Kerner, Sean Michael (27 de enero de 2022). "Google amplía la base de datos NoSQL de Cloud Bigtable". TechTarget . Consultado el 10 de octubre de 2022 .
  12. ^ "Sistema de archivos de Google y Bigtable", Radar ( registro en la World Wide Web ) , Historias de guerra de bases de datos, O'Reilly, mayo de 2006.
  13. ^ "Google Bigtable, Compression, Zippy y BMDiff". 12 de octubre de 2008. Archivado desde el original el 1 de mayo de 2013. Consultado el 14 de abril de 2015 ..
  14. ^ Bentley, Jon; McIlroy, Douglas (1999). Compresión de datos mediante cadenas comunes largas . DCC '99: Actas de la Conferencia sobre compresión de datos. IEEE Computer Society. CiteSeerX 10.1.1.11.8470 . doi :10.1109/DCC.1999.755678. 
  15. ^ "Bigtable de Google", Outer Court (Weblog) , 23 de octubre de 2005.
  16. ^ Snappy (proyecto).

Bibliografía

Enlaces externos