Uso de Facebook de bases de datos NoSQL

Publicado: 2022-11-22

Facebook ha implementado una serie de bases de datos NoSQL para ayudarlo a escalar su gráfico social masivo. Estas bases de datos incluyen Apache HBase, Apache Cassandra y Apache Thrift. Mediante el uso de estas bases de datos NoSQL, Facebook puede brindar una experiencia rápida y con capacidad de respuesta a sus usuarios, al mismo tiempo que mantiene una gran cantidad de datos.

Los perfiles de más de dos mil millones de personas se almacenan en la base de datos de Facebook. Hoy en día, muchas aplicaciones empresariales críticas para el negocio, como SaaS multiinquilino, se basan en la arquitectura distribuida globalmente a escala de Internet de Facebook, y hay lecciones que aprender al comprender la evolución de la base de datos de Facebook. Mystria, una popular base de datos de código abierto , es la base de la API Graph NoSQL de FB, TAO. Como resultado, TAO transformó los 1000 esclavos maestros MySQL reforzados manualmente existentes en FB en esclavos fragmentados. Como resultado, la aplicación ya no emplea la base de datos para realizar transacciones entre fragmentos y operaciones conjuntas. Además de esto, si se llevara a cabo una saturación fallida, se perderían los datos comprometidos recientemente. Los objetos y las asociaciones se almacenan en el mismo clúster de servidores, sin que se realicen cambios en el fragmento.

Se determinó que el grado de colocación de datos es una técnica de optimización importante para facilitar el acceso a datos de baja latencia. Cuando FB decidió abandonar SQL como API de consulta y adoptar la API NoSQL personalizada de TAO, sus desarrolladores abandonaron SQL por completo. Google, a diferencia de Facebook, estaba creando una base de datos completamente nueva llamada Spanner, que es globalmente consistente. El modelo de datos de Spanner se basó en OLTP tradicional de acceso aleatorio en lugar de un gráfico social. La escalabilidad masiva y la distribución global de datos están integradas en la capa de base de datos de la segunda generación de bases de datos distribuidas. Spanner emplea consenso distribuido por fragmento para garantizar que cada fragmento (y no solo una instancia) esté altamente disponible en caso de falla. Este cambio de configuración se realiza en el contexto de la aplicación y continúa funcionando normalmente.

Los datos relevantes para la región local aún se pueden ubicar en la misma región si las funciones geoespaciales, como la geopartición a nivel de tabla y de fila, están habilitadas. Se utiliza una confirmación de dos fases en transacciones de fragmentos múltiples, y un administrador de transacciones distribuidas realiza un seguimiento de los desfases de reloj en todos los nodos. Construimos TAO en FB para mantener nuestra inversión existente en MySQL fragmentado. Google decidió romper con la tradición al crear Spanner, una base de datos completamente nueva que puede escalar horizontalmente, replicar georeplicar y manejar fallas de infraestructura como si estuvieran ocurriendo.

Usamos MySQL en Facebook por una variedad de razones. Con MySQL, un pequeño equipo puede administrar miles de servidores mientras brinda un servicio de alta calidad al menor costo posible.

TAO, una API gráfica de NoSQL creada por FB a principios de 2009, estaba destinada a ejecutarse en Apache Cassandra basado en MySQL. El objetivo principal de esta sección era eliminar los problemas destacados en la anterior. TAO, el acrónimo de Associations and Objects, se refiere a asociaciones y objetos.

El almacenamiento de datos inicial de Facebook dependía en gran medida de una base de datos MySQL relacional. Aunque los ingenieros de Facebook se inspiraron en el artículo de Google sobre las bases de datos NoSQL de Google BigTable, crearon Cassandra, una tienda familiar de columnas basada en la base de datos NoSQL de Facebook.

Facebook tiene un sistema de base de datos relacional para mantener sus datos primarios. Mantiene el gráfico social y los datos de mensajería de Facebook (más de mil millones de usuarios) para más de mil millones de usuarios que utilizan la bifurcación de MySql 5.6.

¿Facebook usa Nosql?

Imagen tomada por: redmondpie.com

No existe una respuesta única para esta pregunta, ya que el uso de bases de datos NoSQL varía según las necesidades específicas de cada aplicación individual. Sin embargo, generalmente se acepta que Facebook usa una combinación de bases de datos SQL y NoSQL para almacenar y administrar su gran volumen de datos.

Tanto Cloud Datastore como Cloud Firestore son excelentes opciones para las empresas que buscan una base de datos orientada a documentos que se pueda usar para el análisis de datos en tiempo real. Cloud Firestore es una excelente opción para documentos pequeños debido a su arquitectura optimizada y su facilidad de uso en dispositivos móviles. Cloud Datastore está diseñado para manejar cargas de trabajo extremadamente altas y escalar automáticamente. También tiene mucho uso.

¿Cómo almacena Facebook los datos en la base de datos?

Facebook almacena datos en una base de datos relacional que se organiza en tablas. Luego, los datos se almacenan en columnas y filas dentro de las tablas. Los datos se almacenan en forma de texto, números y fechas.

Instalación de almacenamiento de datos de Facebook en Prineville, Oregón. Lleve un registro de todo, desde los eventos a los que asiste hasta su estado (o amor, jaja, wow, cara triste o enojada), hasta su línea de tiempo. Las instalaciones de Facebook en Oregón pueden tener hasta 300 petabytes de capacidad de almacenamiento, según las estimaciones. Con esta cantidad de datos, podríamos almacenar alrededor de 100 mil millones de fotos de tamaño medio. Si Facebook no tuviera una forma de mantener seguras todas sus publicaciones, fotos, videos, actualizaciones de estado, etc. Si elige no hacerlo, Facebook no podrá recordar quién es usted. Hay una pequeña cantidad de espacio (o unos pocos millones) reservado para que te expreses de la manera que realmente deseas.

Se utiliza para personalizar anuncios y aumentar la frecuencia con la que interactúas con Facebook. Hay ciertos sitios web que Facebook conoce sobre usted, así como los anuncios que ve y las publicaciones que le gustan.
Facebook también vende estos datos a empresas de terceros. Cambridge Analytica, una firma de datos que trabajó en la campaña presidencial de Donald Trump, obtuvo información personal de 87 millones de usuarios de Facebook.
Para estar seguro, debe saber cómo Facebook recopila y utiliza sus datos, así como tomar medidas para salvaguardar su privacidad. Puede eliminar su cuenta de Facebook utilizando una herramienta de privacidad de Facebook, o puede deshabilitar el píxel de Facebook y el botón Me gusta de Facebook, entre otras cosas.
Se han planteado preocupaciones sobre Facebook y empresas de terceros como resultado del reciente escándalo de datos.
Durante el transcurso del escándalo de Cambridge Analytica, Facebook ha sido criticado por no ser transparente y por no actuar con la suficiente rapidez. Mark Zuckerberg, director ejecutivo de Facebook, anunció el martes que se ausentaría para lidiar con el escándalo.
Desde las revelaciones de violaciones masivas de datos en Facebook y WhatsApp, Mark Zuckerberg ha sido objeto de escrutinio por su falta de responsabilidad y su incapacidad para abordar las preocupaciones de privacidad.
Según las acusaciones, Facebook ha estado manipulando la opinión política mediante el uso de datos de usuarios.
Como resultado de los problemas de privacidad que se han planteado, Facebook ha sido criticado por su falta de transparencia y por no abordarlos.
Se ha afirmado que Facebook manipuló la opinión política de sus usuarios mediante la recopilación de datos de usuarios.
Los usuarios tienen la opción de realizar una serie de pasos.


¿Cómo usa Facebook a Cassandra?

Imagen tomada por: eurekastreet.com.au

Cassandra emplea una combinación de técnicas bien conocidas para escalar y disponibilidad. El objetivo de Cassandra era abordar los requisitos de almacenamiento del problema de búsqueda en la bandeja de entrada. In-box Search es una nueva característica que permite a los usuarios de Facebook buscar sus mensajes desde su bandeja de entrada.

Facebook utiliza Cassandra como motor de búsqueda de correo electrónico, con 25 TB y más de 100 millones de buzones. Facebook lanzó Cassandra como código abierto bajo la licencia de Apache el 1 de julio de 2017. En este video, veremos en profundidad la arquitectura y el diseño de Cassandra. Cassandra originalmente tenía la intención de resolver el problema de encontrar direcciones de correo electrónico en una bandeja de entrada. Al escribir en una tabla de memoria, siempre escribirá en un registro de confirmación (secuencial), que es secuencial para cada nodo del clúster. Durante la configuración, lea los siguientes pasos para borrar la tabla del disco: * Falta de espacio * Teclas sobreespaciadas (128 por defecto) * Duración del tiempo (cliente proporcionado sin reloj). Cumple con la arquitectura impulsada por eventos por etapas (SEDA) y la detección de fallas a través de un protocolo de chismes. Tiene 100 millones de usuarios, 4B subprocesos y 25 TB de datos, y puede ejecutar Hadoop a 1,5 TB por hora.

El brillo está apagado: Facebook abandona a Cassandra por Mysql

En lugar de Cassandra, Facebook eligió Hbase para construir su sistema de mensajería. Debido a su arquitectura distribuida, fue una elección natural para Netflix usar Cassandra, y en 2013, la mayoría de sus datos estaban alojados allí y continúa usándolos en la actualidad. Facebook usa MySQL, en lugar de Cassandra, cuando se trata de almacenamiento de datos. La base de datos principal utilizada por Facebook para almacenar todos sus datos de redes sociales es MySQL. Crearon el primer motor de base de datos , MyRocksDB, y luego el motor de base de datos MySQL, InnoDB. MySQL y Memcache se han combinado para crear un caché.

Base de datos Nosql utilizada por Facebook

Imagen tomada por: medium.com

Facebook almacena todos sus datos de redes sociales en MySQL, la base de datos principal en la que se basa.

El proceso de recopilación de datos de una base de datos se conoce como su recopilación. Se puede utilizar de diversas maneras para almacenar y analizar datos. Un DBMS es el sistema de gestión de base de datos que opera en una base de datos específica. Para realizar un seguimiento de los diversos tipos de información que las personas de todo el mundo comparten entre sí, Facebook emplea una serie de bases de datos. El sistema de almacenamiento Cassandra está diseñado para administrar grandes cantidades de estructura de datos. Esta aplicación se creó para resolver el problema de encontrar los mejores resultados de búsqueda en la bandeja de entrada, que era causado por la falta de espacio de almacenamiento. Este método de almacenamiento en caché solo utiliza soluciones en memoria. En este caso, el acceso al grupo de almacenamiento compartido se proporciona a un precio asequible.

casandra vs. Nube Bigtable vs. Amazon Dynamodb

Cassandra es una de las opciones de almacenamiento de back-end más populares para Facebook, solo por detrás de Google y Amazon. Con Cloud Bigtable, puede ejecutar cargas de trabajo analíticas y operativas en un servicio de base de datos NoSQL de alto rendimiento. Amazon DynamoDB es una base de datos NoSQL de clave-valor sin servidor que se puede implementar a cualquier escala y es ideal para aplicaciones de alto rendimiento.

Base de datos utilizada por Facebook

Facebook utiliza un sistema de administración de bases de datos relacionales (RDBMS) para almacenar y organizar datos. Un RDBMS es un tipo de base de datos que almacena datos en tablas, y cada tabla está vinculada a otras tablas por relaciones. Facebook utiliza un RDBMS personalizado que está diseñado para manejar las cantidades masivas de datos que generan los usuarios de Facebook.

Hay más de mil millones de personas que usan Facebook. Los usuarios se expresan e interactúan con sus compañeros y amigos mediante el uso de publicaciones en el muro. A pesar de manejar cientos de millones de usuarios, los ingenieros de Facebook se han visto obligados a mantener el sitio funcionando sin problemas. Este artículo presenta a los lectores algunas de las herramientas y métodos que emplean para lograr sus objetivos. Facebook emplea una variedad de sistemas para mantener su sitio web lo más dinámico posible, con más de 500 millones de usuarios. Si necesita escalabilidad y alta disponibilidad al mismo tiempo que mantiene su rendimiento a un alto nivel, Apache Cassandra es una excelente opción. El sistema de registro de Scribe permite que Facebook inicie sesión internamente por una variedad de razones. Varnish se puede utilizar como un acelerador de HTTP para proporcionar contenido de caché y equilibrio de carga ultrarrápido.

¿Qué es Facebook?
Esta revelación de la infraestructura del centro de datos de Facebook tiene implicaciones significativas por varias razones. En primer lugar, demuestra el compromiso de Facebook con la calidad continua del servicio. Además, el centro de datos tiene un nivel de acceso sin precedentes a las operaciones de Facebook. Finalmente, enfatiza la importancia de Autoscale, que Facebook emplea para administrar el tráfico y optimizar el rendimiento.

Por qué Facebook usa MySQL

A medida que Facebook creció y SQL y MySQL se volvieron ubicuos, evolucionó hasta convertirse en una aplicación PHP que usaba MySQL como base de datos persistente y Memcache como caché de "búsqueda". Facebook emplea más de 1000 servidores MySql en la actualidad para alojar sus datos, lo que se conoce como una base de datos universal (de múltiples inquilinos). Una base de datos está muy particionada y replicada. Para reducir la cantidad de fragmentos necesarios para encontrar los datos, todos los datos relacionados se guardan en un fragmento. ¿Qué es una base de datos utilizada por Netflix? Oracle es el sistema de persistencia de datos más común en el centro de datos de Netflix. MySQL se utiliza en la infraestructura de recomendación de películas en algunas áreas. Las bases de datos en ambos son bases de datos relacionales .

Base de datos de Facebook

Una base de datos de Facebook es una colección de datos organizados y almacenados por el sitio de redes sociales Facebook. Estos datos pueden incluir información sobre los usuarios, sus amigos y su actividad en el sitio. La base de datos de Facebook se utiliza para potenciar las características y funciones del sitio.

Cómo Cassandra se convirtió en el almacén de datos de Facebook

Debido a la flexibilidad del modelado de datos de SQL y al uso generalizado de MySQL cuando se lanzó FB por primera vez, MySQL se usó inicialmente como la base de datos persistente y Memcache se usó como un caché de "búsqueda lateral" para el gráfico social.
Un petabyte de datos pesa aproximadamente un millón de gigabytes en Facebook cada día. Un petabyte equivale a aproximadamente 300 petabytes de datos, y todo reside dentro de una instalación de Hive.
A pesar del completo abandono de Cassandra por parte de Facebook, las principales empresas como Twitter, Netflix y Apple, por nombrar algunas, todavía lo utilizan. DataStax, por otro lado, tiene una versión de la herramienta disponible para una variedad de otras empresas.
Como resultado, aunque Facebook ya no almacena sus propios datos en Cassandra, otras empresas sí lo hacen.

Nueva base de datos Nosql

Una base de datos NoSQL, que no está basada en SQL, se define como aquella que recopila datos de una manera diferente a una base de datos relacional. Las bases de datos de tablas no necesitan columnas fijas en las tablas, son compatibles con la escala horizontal y no requieren JOIN como las bases de datos relacionales. Los tipos de bases de datos NoSQL difieren según el modelo de datos utilizado.

Es uno de los tipos de base de datos más utilizados en la industria para una variedad de propósitos. El uso de la computación en la nube tiene varias ventajas sobre las bases de datos tradicionales , como la facilidad de uso, una mayor capacidad de almacenamiento en la nube y una mayor seguridad de los datos. Las bases de datos NoSQL se utilizan para una amplia gama de propósitos, incluidos registros de atención médica, registros financieros y otras bases de datos. La base de datos de documentos RavenDB NoSQL admite transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) y es una sólida base de datos NoSQL con sólidas capacidades de tipo de documento. Con Couchbase, puede crear una aplicación móvil y de Internet de las cosas (IoT). También puede usar ArangoDB para buscar y mostrar gráficos, documentos y otros datos. OrientDB es una de las primeras bases de datos NoSQL que incluye soporte multimodelo para gráficos y documentos.

Puede encontrar Neo4j como una opción viable si necesita más contexto en su base de datos para obtener información sobre sus datos. MongoDB proporciona una plataforma diferente llamada Realm que le permite crear, probar y lanzar aplicaciones móviles rápidamente. MarkLogic Database está diseñado para manejar bases de datos de múltiples modelos, así como cargas de trabajo que requieren capacidades NoSQL. MarkLogic Database es una buena plataforma de base de datos NoSQL para almacenar datos de relaciones y ejecutar trabajos analíticos. Si no desea comprometerse, una solución completamente administrada es la mejor opción.

Arquitectura de la base de datos de Facebook

La arquitectura de la base de datos fb es una herramienta poderosa que puede ayudarlo a organizar y administrar sus datos. Es un sistema flexible que se puede personalizar para satisfacer sus necesidades. Con fb, puede almacenar y recuperar fácilmente datos de una variedad de fuentes.

Facebook emplea una arquitectura de pila con gráficos en caché para todo lo que está por encima del extremo inferior de MySQL. En otras palabras, significa que una base de datos relacional no funciona mejor que una base de datos gráfica . Además de amigos de amigos, es más difícil realizar consultas complejas que realizar consultas simples como "Todas las ubicaciones alrededor de una coordenada dada". Un gráfico es la mejor solución en este caso. Para poco más de 1 millón de usuarios, se gastarán 1,8 segundos, mientras que para poco más de 100k usuarios, se gastarán 18 segundos. Si tiene más de un usuario ejecutando la misma consulta, tenga en cuenta que esta no es la única consulta que está intentando. La respuesta a la pregunta de cómo diseñó Facebook su relación de amigos es que está muy bien diseñada. Me disculpo sinceramente por el hecho de que no puedo ayudarlo a implementarlo.