¿Es Oracle o MySQL o algo que ellos mismos han construido?
¿Es Oracle o MySQL o algo que ellos mismos han construido?
Respuestas:
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 básicos.
Muchos proyectos en Google almacenan datos en Bigtable, incluida la indexación web, Google Earth y Google Finance. Estas aplicaciones imponen demandas muy diferentes a Bigtable, tanto en términos de tamaño de datos (desde URLs a páginas web hasta imágenes satelitales) como requisitos de latencia (desde el procesamiento masivo de back-end hasta el servicio de datos en tiempo real).
A pesar de estas demandas variadas, Bigtable ha proporcionado con éxito una solución flexible y de alto rendimiento para todos estos productos de Google.
Algunas caracteristicas
Arquitectura
BigTable no es una base de datos relacional. No admite combinaciones ni admite consultas ricas en SQL. Cada tabla es un mapa disperso multidimensional. Las tablas consisten en filas y columnas, y cada celda tiene una marca de tiempo. Puede haber múltiples versiones de una celda con diferentes marcas de tiempo. La marca de tiempo permite operaciones como "seleccionar 'n' versiones de esta página web" o "eliminar celdas que son anteriores a 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 tiene alrededor de 200 MB, y cada máquina ahorra alrededor de 100 tabletas. Esta configuración permite que las tabletas de una sola tabla se distribuyan entre muchos servidores. También permite un equilibrio de carga de grano fino. Si una tabla recibe muchas consultas, puede eliminar otras tabletas o mover la tabla ocupada a otra máquina que no esté tan ocupada. Además, si una máquina se cae, una tableta puede extenderse a 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 usando técnicas de compresión patentadas por Google (BMDiff y Zippy). Las compactaciones menores involucran solo unas pocas tabletas, mientras que las compactaciones mayores involucran todo el sistema de tablas y recuperan espacio en el disco duro.
Las ubicaciones de las tabletas Bigtable se almacenan en celdas. La búsqueda de cualquier tableta en particular se maneja mediante 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 captación 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 archivos de registro y datos. GFS proporciona almacenamiento confiable para SSTables, un formato de archivo propiedad de Google que se utiliza para conservar los datos de la tabla.
Otro servicio que utiliza BigTable es Chubby , un servicio de bloqueo distribuido confiable y de alta disponibilidad. Chubby permite a los clientes tomar un candado, posiblemente asociándolo con algunos metadatos, que puede renovar enviando mensajes vivos a Chubby. Los bloqueos se almacenan en una estructura de nomenclatura jerárquica similar a un sistema de archivos.
Existen tres tipos de servidores principales de interés en el sistema Bigtable:
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 el contenido de la página , y la familia de columnas de ancla contiene el texto de cualquier ancla que haga referencia a la página. La página de inicio de CNN está referenciada por las páginas de inicio de Sports Illustrated y MY-look, por lo que la fila contiene columnas con el nombre
anchor:cnnsi.com
yanchor:my.look.ca
. Cada celda de anclaje tiene una versión ; la columna de la contenidos tiene tres versiones , en las marcas de tiempot3
,t5
yt6
.
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 son compatibles a nivel de fila, pero no a través de varias claves de fila.
Aquí está el enlace al PDF del trabajo de investigación .
Y aquí puede encontrar un video que muestra a Jeff Dean de Google en una conferencia en la Universidad de Washington , que discute el sistema de almacenamiento de contenido Bigtable utilizado en el backend de Google.
Es algo que ellos mismos han construido, se llama Bigtable.
http://en.wikipedia.org/wiki/BigTable
Hay un artículo de Google en la base de datos:
Spanner es el sistema de gestión de bases de datos relacionales (RDBMS) de distribución global de Google, el sucesor de BigTable . Google afirma que no es un sistema relacional puro porque cada tabla debe tener una clave primaria.
Aquí está el enlace del artículo.
Spanner es la base de datos escalable, de múltiples versiones, distribuida globalmente y replicada sincrónicamente. Es el primer sistema que distribuye datos a escala global y admite transacciones distribuidas externamente consistentes. Este documento describe cómo se estructura Spanner, su conjunto de características, la lógica subyacente a 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 interactivos en línea actuales. Megastore combina la escalabilidad de un almacén de datos NoSQL con la conveniencia de un RDBMS tradicional de una manera novedosa, y ofrece fuertes garantías de consistencia y alta disponibilidad. Proporcionamos semántica de ACID completamente serializable dentro de particiones de datos de grano fino. Esta partición nos permite replicar sincrónicamente cada escritura a través de una red de área amplia con 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 soporte de una amplia gama de servicios de producción de Google creados con Megastore.
Como otros han mencionado, Google utiliza una solución local llamada BigTable y han publicado algunos documentos que lo describen en el mundo real.
La gente de Apache tiene una implementación de las ideas presentadas en estos documentos llamada HBase . HBase es parte del proyecto más grande de Hadoop que según su sitio "es una plataforma de software que permite 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 .
Aunque Google usa BigTable para todas sus aplicaciones principales, también usan MySQL para otras aplicaciones (quizás menores).
Y quizás también sea útil saber que BigTable no es una base de datos relacional (como MySQL) sino una gran tabla hash (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 buena publicación en el blog que enumera la mayoría de ellos aquí .
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 aquí .
Google también usa bases de datos Oracle y MySQL para algunas de sus aplicaciones.
Cualquier información adicional que pueda agregar es muy apreciada.
Google also use Oracle
- Referencia necesaria.
Los servicios de Google tienen una arquitectura de persistencia políglota. BigTable es aprovechado por la mayoría de sus servicios como YouTube, Búsqueda de Google, Google Analytics, etc. El servicio de búsqueda inicialmente utilizó MapReduce para su infraestructura de indexación, pero luego pasó a BigTable durante el lanzamiento de Caffeine.
El almacén de datos de Google Cloud tiene más de 100 aplicaciones en producción en Google, tanto para usuarios internos como externos. Las aplicaciones como Gmail, Picasa, Google Calendar, Android Market y AppEngine usan Cloud Datastore & Megastore.
Google Trends utiliza MillWheel para el procesamiento continuo. Google Ads inicialmente usó MySQL luego migró a F1 DB, una base de datos relacional distribuida escrita personalizada. Youtube usa MySQL con Vitess. Google almacena exabytes de datos en los servidores básicos con la ayuda del Sistema de archivos de Google.
Base de datos de YouTube: ¿cómo almacena tantos videos sin quedarse sin espacio de almacenamiento?