name keywords google etiquetas ejemplos description content database google-search google-cloud-datastore bigtable

database - keywords - meta tags generator



¿Qué base de datos utiliza Google? (7)

Mesa grande

Un sistema de almacenamiento distribuido para datos estructurados

Bigtable es un sistema de almacenamiento distribuido (creado por Google) para administrar datos estructurados que está diseñado para escalar a un tamaño muy grande: petabytes de datos en miles de servidores de productos básicos.

Muchos proyectos en Google almacenan datos en Bigtable, incluida la indexación web, Google Earth y Google Finance. Estas aplicaciones imponen exigencias muy diferentes a Bigtable, tanto en términos de tamaño de datos (desde URL a páginas web a imágenes satelitales) como a requisitos de latencia (desde procesamiento masivo de back-end hasta servicio de datos en tiempo real).

A pesar de estas variadas demandas, Bigtable ha proporcionado con éxito una solución flexible y de alto rendimiento para todos estos productos de Google.

Algunas caracteristicas

  • DBMS rápidos y extremadamente grandes
  • un mapa distribuido, multidimensional y distribuido, que comparte las características de las bases de datos orientadas a filas y las orientadas a columnas.
  • diseñado para escalar en el rango de petabyte
  • Funciona a través de cientos o miles de máquinas.
  • Es fácil agregar más máquinas al sistema y comenzar a aprovechar automáticamente esos recursos sin ninguna reconfiguración.
  • Cada tabla tiene múltiples dimensiones (una de las cuales es un campo para el tiempo, que permite la creación de versiones)
  • las tablas están optimizadas para GFS (Sistema de archivos de Google) al dividirse en múltiples tabletas: los segmentos de la tabla se dividen en una fila elegida de tal manera que la tableta tendrá un tamaño de ~ 200 megabytes.

Arquitectura

BigTable no es una base de datos relacional. No admite uniones ni admite consultas de tipo SQL enriquecidas. Cada tabla es un mapa disperso multidimensional. Las tablas constan de filas y columnas, y cada celda tiene una marca de tiempo. Puede haber múltiples versiones de una celda con diferentes sellos de tiempo. La marca de tiempo permite operaciones como "seleccionar ''n'' versiones de esta página web" o "eliminar celdas que son más antiguas que una fecha / hora específica".

Para administrar las tablas enormes, Bigtable divide las tablas en los límites de las filas y las guarda como tabletas. Una tableta es de alrededor de 200 MB, y cada máquina guarda alrededor de 100 tabletas. Esta configuración permite que las tabletas de una sola tabla se distribuyan entre muchos servidores. También permite equilibrar la carga de grano fino. Si una tabla recibe muchas consultas, puede deshacerse de otras tabletas o mover la tabla ocupada a otra máquina que no esté tan ocupada. Además, si una máquina deja de funcionar, una tableta puede estar distribuida en muchos otros servidores para que el impacto en el rendimiento de cualquier máquina sea mínimo.

Las tablas se almacenan como SSTables inmutables y una cola de registros (un registro por máquina). Cuando una máquina se queda sin memoria del sistema, comprime algunas tabletas utilizando técnicas de compresión propias de Google (BMDiff y Zippy). Las compactaciones menores solo involucran unas pocas tabletas, mientras que las principales incluyen el sistema completo de la tabla y recuperan espacio en el disco duro.

Las ubicaciones de las tabletas de Bigtable se almacenan en celdas. La búsqueda de cualquier tableta en particular es manejada por un sistema de tres niveles. Los clientes obtienen un punto en una tabla META0, de la cual solo hay una. La tabla META0 realiza un seguimiento de muchas tabletas META1 que contienen las ubicaciones de las tabletas que se buscan. Tanto META0 como META1 hacen un uso intensivo de la captura previa y el almacenamiento en caché para minimizar los cuellos de botella en el sistema.

Implementación

BigTable se basa en el Sistema de archivos de Google (GFS), que se utiliza como almacén de respaldo para los archivos de registro y datos. GFS proporciona almacenamiento confiable para SSTables, un formato de archivo patentado por Google que se utiliza para conservar los datos de la tabla.

Otro servicio del que BigTable hace un uso intensivo es Chubby , un servicio de bloqueo distribuido confiable y de alta disponibilidad. Chubby permite que los clientes tomen un bloqueo, posiblemente asociándolo con algunos metadatos, que puede renovar enviando mensajes de mantener vivos a Chubby. Los bloqueos se almacenan en una estructura de nombres jerárquica similar a un sistema de archivos.

Hay tres tipos principales de servidores de interés en el sistema Bigtable:

  1. Servidores maestros: asigne tabletas a servidores de tabletas, realiza un seguimiento de dónde se encuentran las tabletas y redistribuye las tareas según sea necesario.
  2. Servidores de tabletas: manejan las solicitudes de lectura / escritura de tabletas y tabletas divididas cuando exceden los límites de tamaño (generalmente de 100 MB a 200 MB). Si un servidor de tableta falla, entonces 100 servidores de tableta recogen 1 tableta nueva y el sistema se recupera.
  3. Servidores de bloqueo: instancias del servicio de bloqueo distribuido Chubby. Muchas acciones dentro de BigTable requieren la adquisición de bloqueos, incluidas la apertura de tabletas para la escritura, lo que garantiza que no haya más de un Maestro activo a la vez y la verificación del control de acceso.

Ejemplo del trabajo de investigación de Google:

Una porción de una tabla de ejemplo que almacena páginas web. El nombre de la fila es una URL invertida . La familia de columnas de contenido contiene los contenidos de la página , y la familia de columnas de anclaje contiene el texto de los anclajes que hacen referencia a la página. La página de inicio de CNN está referenciada tanto por Sports Illustrated como por las páginas de inicio de MY-look, por lo que la fila contiene columnas con el nombre de anchor:cnnsi.com y anchor:my.look.ca Cada celda de anclaje tiene una versión ; La columna de contenido tiene tres versiones , en las marcas de tiempo t3 , t5 y t6 .

API

Las operaciones típicas de BigTable son la creación y eliminación de tablas y familias de columnas, la escritura de datos y la eliminación de columnas de una fila. BigTable proporciona estas funciones a los desarrolladores de aplicaciones en una API. Las transacciones se admiten en el nivel de fila, pero no en varias teclas de fila.

Aquí está el enlace al PDF del artículo de investigación .

Y aquí puede encontrar un video que muestra a Jeff Dean de Google en una conferencia en la Universidad de Washington , en la que se analiza el sistema de almacenamiento de contenido Bigtable utilizado en el backend de Google.

¿Es Oracle o MySQL o algo que ellos mismos han construido?


Aunque Google usa BigTable para todas sus aplicaciones principales, también usan MySQL para otras aplicaciones (quizás menores).


Como han mencionado otros, Google utiliza una solución de cosecha propia llamada BigTable y han publicado algunos artículos que lo describen en el mundo real.

La gente de Apache tiene una implementación de las ideas presentadas en estos documentos llamados HBase . HBase es parte del proyecto más grande de Hadoop, que según su sitio "es una plataforma de software que le permite a uno escribir y ejecutar fácilmente aplicaciones que procesan grandes cantidades de datos". Algunos de los puntos de referencia son bastante impresionantes. Su sitio está en http://hadoop.apache.org .



Google utiliza principalmente Bigtable.

Bigtable es un sistema de almacenamiento distribuido para administrar datos estructurados que está diseñado para escalar a un tamaño muy grande.

Para más información, descargue el documento desde here .

Google también utiliza bases de datos Oracle y MySQL para algunas de sus aplicaciones.

Cualquier información adicional que pueda agregar es altamente apreciada.


Y quizás también sea útil saber que BigTable no es una base de datos relacional (como MySQL) sino una tabla hash enorme (distribuida) que tiene características muy diferentes. Puede jugar con (una versión limitada) de BigTable usted mismo en la plataforma Google AppEngine .

Junto a Hadoop mencionado anteriormente, hay muchas otras implementaciones que intentan resolver los mismos problemas que BigTable (escalabilidad, disponibilidad). Ayer vi una bonita publicación en el blog con una lista de la mayoría de ellos here


Spanner es el sistema de gestión de bases de datos relacionales (RDBMS) distribuido globalmente de Google, el sucesor de http://en.wikipedia.org/wiki/BigTable . Google afirma que no es un sistema relacional puro porque cada tabla debe tener una clave principal.

Here está el enlace del papel.

Spanner es la base de datos escalable, de múltiples versiones, distribuida globalmente y de forma sincronizada de Google. Es el primer sistema que distribuye datos a escala global y admite transacciones distribuidas coherentes externamente. Este documento describe cómo se estructura Spanner, su conjunto de características, los fundamentos que subyacen en varias decisiones de diseño y una nueva API de tiempo que expone la incertidumbre del reloj. Esta API y su implementación son fundamentales para admitir la coherencia externa y una variedad de características potentes: lecturas sin bloqueo en el pasado, transacciones de solo lectura sin bloqueo y cambios de esquema atómico en todo Spanner.

Otra base de datos inventada por Google es Megastore . Aquí está el resumen:

Megastore es un sistema de almacenamiento desarrollado para cumplir con los requisitos de los servicios en línea interactivos de hoy. Megastore combina la escalabilidad de un almacén de datos NoSQL con la conveniencia de un RDBMS tradicional de una manera novedosa, y proporciona garantías de alta consistencia y alta disponibilidad. Ofrecemos semántica ACID completamente serializable dentro de particiones de datos de grano fino. Esta partición nos permite replicar de forma sincrónica cada escritura en una red de área amplia con una latencia razonable y admite la conmutación por error sin interrupciones entre los centros de datos. Este artículo describe la semántica y el algoritmo de replicación de Megastore. También describe nuestra experiencia en el apoyo a una amplia gama de servicios de producción de Google creados con Megastore.