Bigtable es un sistema de almacenamiento de datos patentado y comprimido de alto rendimiento construido sobre el sistema de archivos de Google , el servicio Chubby Lock , SSTable (almacenamiento estructurado por registros como LevelDB ) y algunas otras tecnologías de Google . El 6 de mayo de 2015, se puso a disposición una versión pública de Bigtable como servicio. Bigtable también es la base de Google Cloud Datastore , que está disponible como parte de Google Cloud Platform . [1] [2]
Desarrollador (es) | |
---|---|
Versión inicial | Febrero de 2005 |
Escrito en | |
Plataforma | Google Cloud Platform |
Tipo | Almacenamiento en la nube |
Licencia | Propiedad |
Sitio web | nube |
Historia
El desarrollo de Bigtable comenzó en 2004 [3] y ahora lo utilizan varias aplicaciones de Google, como la indexación web, [4] MapReduce , que se utiliza a menudo para generar y modificar datos almacenados en Bigtable, [5] Google Maps , [6 ] Búsqueda de libros de Google , "Mi historial de búsqueda", Google Earth , Blogger.com , alojamiento de código de Google , YouTube , [7] y Gmail . [8] Las razones de Google para desarrollar su propia base de datos incluyen la escalabilidad y un mejor control de las características de rendimiento. [9]
Spanner RDBMS de Google se superpone a una implementación de Bigtable con un grupo Paxos para confirmaciones de dos fases para cada tabla. Google F1 se creó con Spanner para reemplazar una implementación basada en MySQL . [10]
Diseño
Bigtable es uno de los ejemplos prototípicos de una tienda de columna ancha . Asigna dos valores de cadena arbitrarios (clave de fila y clave de columna) y marca de tiempo (por lo tanto, mapeo tridimensional) en una matriz de bytes arbitraria asociada. No es una base de datos relacional y se puede definir mejor como un mapa ordenado multidimensional, disperso y distribuido. [4] : 1 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". [11] Por ejemplo, la copia de Google de la web se puede almacenar en una tabla grande 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. La columna de la página puede tener varias versiones con marca de tiempo que describen diferentes copias de la página web con marca de tiempo cuando se recuperaron. Cada celda de una tabla grande puede tener cero o más versiones de los datos con marca de tiempo. Otra función de la marca de tiempo es permitir tanto el control de versiones como la recolección de basura de los datos caducados.
Las tablas se dividen en varias tabletas : los segmentos de la tabla se dividen en determinadas teclas de fila para que cada tableta tenga un tamaño de unos pocos cientos de megabytes o unos pocos gigabytes. Un bigtable es algo así como un grupo de trabajadores de mapreduce en el que miles o cientos de miles de fragmentos de tabletas pueden ser servidos por cientos o 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 [12] [13] y el algoritmo de compresión Zippy [14] conocido públicamente y de código abierto como Snappy , [15] que es menos variación de espacio óptimo de LZ77 pero más eficiente en términos de tiempo de cálculo. Las ubicaciones en el GFS de las tabletas se registran como entradas de la base de datos en varias tabletas especiales, que se denominan tabletas "META1". Las tabletas META1 se encuentran consultando la tableta "META0" única, que normalmente reside en un servidor propio, ya que los clientes a menudo preguntan la ubicación de la tableta "META1", que a su vez tiene la respuesta a la pregunta de dónde está se localizan los datos reales. Al igual que el servidor maestro de GFS, el servidor META0 generalmente no es un cuello de botella, ya que el tiempo de procesador y el ancho de banda necesarios para descubrir y transmitir ubicaciones META1 son mínimos y los clientes almacenan en caché agresivamente las ubicaciones para minimizar las consultas.
Ver también
- Big data
- Almacén de datos distribuidos
- Dynamo (sistema de almacenamiento)
- Tienda de columna ancha
Referencias
- ^ "Anuncio de Google Cloud Bigtable: la misma base de datos que impulsa la búsqueda de Google, 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 .
- ^ "Empiece a utilizar Google Cloud Datastore: una base de datos NoSQL rápida y potente" .
- ^ Hitchcock, Andrew, BigTable de Google , recuperado 29 de de julio de de 2007 ,
Primera una visión general. Bigtable ha estado en desarrollo desde principios de 2004 y ha estado en uso activo durante unos ocho meses (alrededor de febrero de 2005).
. - ^ a b Chang y col. 2006 .
- ^ Chang y col. 2006 , pág. 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 envoltorios que permiten que un Bigtable se use como fuente de entrada y como destino de salida para trabajos de MapReduce.
- ^ Hitchcock, Andrew, BigTable de Google , recuperado 29 de de julio de de 2007 ,
momento hay alrededor de 100 células por servicios tales como impresión, historial de búsqueda, mapas, y Orkut
. - ^ Cordes, Kyle (12 de julio de 2007), escalabilidad de YouTube (charla) ,
su nueva solución para miniaturas es utilizar Bigtable de Google, que proporciona un alto rendimiento para una gran cantidad de filas, tolerancia a fallas, almacenamiento en caché, etc. ¿raro?) ejemplo de sinergia real en una adquisición.
. - ^ "Cómo se almacenan las entidades y los índices", Google App Engine , Google Code.
- ^ Chang y col. 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 proporciona la implementación de Bigtable, y que pueden escalar la capacidad de sus clústeres simplemente agregando más máquinas al sistema a medida que sus demandas de recursos cambian con el tiempo ... Por último, hemos descubierto que crear nuestra propia solución de almacenamiento en Google ofrece ventajas significativas. Hemos obtenido una gran flexibilidad al diseñar nuestro propio modelo de datos para Bigtable '.
- ^ Silencio, 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 fallas que respalda el negocio publicitario de Google", Investigación (presentación) , Sigmod , p. 19,
hemos trasladado una suite de aplicaciones grande y crítica de MySQL a F1
. - ^ "Google File System and Bigtable", Radar ( registro de la World Wide Web ) , Database War Stories, O'Reilly, mayo de 2006.
- ^ "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 ..
- ^ McIlroy, Bentley. Compresión de datos utilizando cadenas comunes largas . DCC '99. IEEE. doi : 10.1109 / DCC.1999.755678 ..
- ^ "Google's Bigtable", Outer court (Weblog) , 23 de octubre de 2005.
- ^ "Snappy", Code (proyecto).
Bibliografía
- Chang, Fay; Dean, Jeffrey; Ghemawat, Sanjay; Hsieh, Wilson C .; Wallach, Deborah A .; Burrows, Mike; Chandra, Tushar; Fikes, Andrew; Gruber, Robert E. (2006), "Bigtable: A Distributed Storage System for Structured Data" , (descargar libro electrónico) (PDF).
enlaces externos
- Bigtable: un sistema de almacenamiento estructurado distribuido , Washington. Video.
- UWTV , archivado desde el original (video) el 15 de junio de 2006.
- Hitchcock, Andrew, Bigtable de Google (notas sobre la presentación oficial) , consultado el 29 de julio de 2007.
- Carr, David F (6 de julio de 2006), "How Google Works" , Baseline.
- "¿Está condenada la base de datos relacional?", Web de lectura y escritura.