¿Cómo replican sus datos las grandes empresas como Google y Facebook?

Nathan Bronson presentó una descripción general de su infraestructura de datos pequeños actual y dirigió una discusión de tres desafíos. Primero, hablaron sobre cómo modificar la infraestructura de datos de Facebook para optimizar los dispositivos móviles, que tienen conectividad intermitente y latencias de red más altas que la mayoría de los clientes web. Luego, discutieron cómo reducir la huella de la base de datos en los centros de datos sin aumentar la latencia visible del usuario o reducir la disponibilidad del sistema. Finalmente, exploraron la eficiencia / compensaciones disponibles de las memorias caché de RAM.

Grandes desafíos de datos

Los grandes almacenes de datos son los caballos de batalla para el análisis de datos en Facebook. Crecen en millones de eventos (inserciones) por segundo y procesan decenas de petabytes y cientos de miles de consultas por día. Los tres almacenes de datos más utilizados son:
1. ODS (Almacén de datos operativos) almacena 2 mil millones de series temporales de contadores. Se usa con mayor frecuencia en alertas y tableros de control y para las métricas del sistema de solución de problemas con un retraso de 1 a 5 minutos. Hay alrededor de 40,000 consultas por segundo.
2. Scuba es el almacén de datos rápido de Facebook. Almacena miles de tablas en aproximadamente 100 terabytes en la memoria. Ingesta millones de filas nuevas por segundo y elimina la misma cantidad. El rendimiento alcanza alrededor de 100 consultas por segundo, escaneando 100 mil millones de filas por segundo, con la mayoría de los tiempos de respuesta por debajo de 1 segundo.
3. Hive es el almacén de datos de Facebook, con 300 petabytes de datos en 800,000 tablas. Facebook genera 4 nuevos petabyes de datos y ejecuta 600,000 consultas y 1 millón de trabajos de reducción de mapas por día. Presto , HiveQL , Hadoop y Giraph son los motores de consulta comunes sobre Hive.
ODS, Scuba y Hive comparten una característica importante: ninguna es una base de datos relacional tradicional. Procesan datos para el análisis, no para servir a los usuarios, por lo que no necesitan garantías de ACID para el almacenamiento o recuperación de datos. En cambio, los desafíos surgen de las altas tasas de inserción de datos y cantidades masivas de datos.

Sistema de archivos de Google

Según lo informado por Sean Gallagher, Google fue uno de los primeros jugadores web que enfrentó el problema de escalabilidad de almacenamiento. Y la respuesta a la que llegaron los ingenieros de Google en 2003 fue crear un sistema de archivos distribuido adaptado a la estrategia del centro de datos de Google: Google File System (GFS).

GFS es la base de casi todos los servicios en la nube de la compañía. Maneja el almacenamiento de datos, incluida la base de datos BigTable de la compañía y el almacén de datos para la plataforma como servicio AppEngine de Google, y proporciona la fuente de datos para el motor de búsqueda de Google y otras aplicaciones. Las decisiones de diseño que Google tomó al crear GFS han impulsado gran parte de la ingeniería del software detrás de su arquitectura en la nube, y viceversa. Google tiende a almacenar datos para aplicaciones en archivos enormes, y utiliza archivos como “colas productor-consumidor”, donde cientos de máquinas que recopilan datos pueden estar escribiendo en el mismo archivo. Ese archivo podría ser procesado por otra aplicación que combine o analice los datos, tal vez incluso mientras los datos aún se están escribiendo.

“Algunos de esos servidores están destinados a fallar, por lo que GFS está diseñado para ser tolerante sin perder (demasiados) datos”

Google guarda la mayoría de los detalles técnicos de GFS para sí mismo, por razones obvias. Pero según lo descrito por el investigador de Google, Sanjay Ghemawat, el ingeniero principal Howard Gobioff y el ingeniero senior Shun-Tak Leung en un artículo publicado por primera vez en 2003, GFS fue diseñado con algunas prioridades muy específicas en mente: Google quería convertir grandes cantidades de productos baratos servidores y discos duros en un almacén de datos confiable para cientos de terabytes de datos que podrían manejarse en caso de fallas y errores. Y necesitaba ser diseñado para la forma en que Google recopila y lee datos, permitiendo que múltiples aplicaciones agreguen datos al sistema simultáneamente en grandes volúmenes y accedan a ellos a altas velocidades.

La gran unidad de disco en el cielo: cómo los gigantes de la Web almacenan grandes, y queremos decir, grandes datos

Los principales problemas de datos abiertos de Facebook