Utilisation par Facebook des bases de données NoSQL

Publié: 2022-11-22

Facebook a mis en place un certain nombre de bases de données NoSQL pour l'aider à faire évoluer son énorme graphe social. Ces bases de données incluent Apache HBase, Apache Cassandra et Apache Thrift. En utilisant ces bases de données NoSQL, Facebook est en mesure de fournir une expérience rapide et réactive à ses utilisateurs tout en conservant une grande quantité de données.

Les profils de plus de deux milliards de personnes sont stockés dans la base de données de Facebook. Aujourd'hui, de nombreuses applications d'entreprise critiques, telles que le SaaS multi-tenant, s'appuient sur l'architecture distribuée à l'échelle mondiale de Facebook, et il y a des leçons à tirer de la compréhension de l'évolution de la base de données de Facebook. Mystria, une base de données open source populaire , est la base de l'API NoSQL Graph de FB, TAO. En conséquence, TAO a transformé les 1000 esclaves maîtres MySQL durcis manuellement existants de FB en esclaves fragmentés. Par conséquent, l'application n'utilise plus la base de données pour effectuer des transactions inter-fragments et des opérations conjointes. En plus de cela, si un dépassement raté était effectué, les données récemment validées seraient perdues. Les objets et les associations sont stockés sur le même cluster de serveurs, sans qu'aucune modification ne soit apportée au fragment.

Le degré de colocalisation des données a été déterminé comme étant une technique d'optimisation importante pour faciliter l'accès aux données à faible latence. Lorsque FB a décidé d'abandonner SQL en tant qu'API de requête et d'adopter l'API NoSQL personnalisée de TAO, ses développeurs ont complètement abandonné SQL. Google, contrairement à Facebook, créait une toute nouvelle base de données appelée Spanner, qui est globalement cohérente. Le modèle de données de Spanner était basé sur l'OLTP traditionnel à accès aléatoire plutôt que sur un graphe social. Une évolutivité massive et une distribution globale des données sont intégrées à la couche de base de données de la deuxième génération de bases de données distribuées. Spanner utilise un consensus distribué par partition pour garantir que chaque partition (et pas seulement une instance) est hautement disponible en cas de panne. Ce changement de configuration est effectué dans le contexte de l'application et continue de fonctionner normalement.

Les données pertinentes pour la région locale peuvent toujours être situées dans la même région si les fonctionnalités géospatiales, telles que le géopartitionnement au niveau de la table et au niveau de la ligne, sont activées. Une validation en deux phases est utilisée dans les transactions multi-fragments, et un gestionnaire de transactions distribué suit les décalages d'horloge à travers les nœuds. Nous avons construit TAO chez FB pour conserver notre investissement existant dans MySQL partagé. Google a décidé de rompre avec la tradition en créant Spanner, une toute nouvelle base de données capable d'évoluer horizontalement, de répliquer la géoréplication et de gérer les pannes d'infrastructure comme si elles se produisaient.

Nous utilisons MySQL sur Facebook pour diverses raisons. Avec MySQL, une petite équipe peut gérer des milliers de serveurs tout en fournissant un service de haute qualité au moindre coût possible.

TAO, une API graphique NoSQL créée par FB au début de 2009, était destinée à fonctionner sur Apache Cassandra basé sur MySQL. L'objectif principal de cette section était d'éliminer les problèmes mis en évidence dans la précédente. TAO, l'acronyme d'Associations et d'Objets, fait référence aux associations et aux objets.

Le premier stockage de données de Facebook reposait fortement sur une base de données relationnelle MySQL. Bien que les ingénieurs de Facebook se soient inspirés de l'article de Google sur les bases de données Google BigTable NoSQL, ils ont créé Cassandra, un magasin de famille de colonnes basé sur la base de données NoSQL de Facebook.

Facebook a mis en place un système de base de données relationnelle pour conserver ses données primaires. Il conserve le graphe social et les données de messagerie Facebook (plus d'un milliard d'utilisateurs) pour plus d'un milliard d'utilisateurs utilisant le fork de MySql 5.6.

Facebook utilise-t-il Nosql ?

Image prise par : redmondpie.com

Il n'y a pas de réponse unique à cette question, car l'utilisation des bases de données NoSQL varie en fonction des besoins spécifiques de chaque application individuelle. Cependant, il est généralement admis que Facebook utilise un mélange de bases de données SQL et NoSQL afin de stocker et de gérer son grand volume de données.

Cloud Datastore et Cloud Firestore sont tous deux d'excellents choix pour les entreprises à la recherche d'une base de données orientée documents pouvant être utilisée pour l'analyse de données en temps réel. Cloud Firestore est un excellent choix pour les petits documents en raison de son architecture optimisée et de sa facilité d'utilisation sur les appareils mobiles. Le Cloud Datastore est conçu pour gérer des charges de travail extrêmement élevées et évoluer automatiquement. Il y a aussi beaucoup d'utilisation pour cela.

Comment Facebook stocke-t-il les données dans la base de données ?

Facebook stocke les données dans une base de données relationnelle organisée en tables. Les données sont ensuite stockées dans des colonnes et des lignes dans les tables. Les données sont stockées sous forme de texte, de nombres et de dates.

Installation de stockage de données de Facebook à Prineville, Oregon. Gardez une trace de tout, des événements auxquels vous assistez à votre statut (ou amour, haha, wow, visage triste ou en colère), jusqu'à votre chronologie. L'installation de Facebook dans l'Oregon pourrait avoir jusqu'à 300 pétaoctets de capacité de stockage, selon les estimations. Avec cette quantité de données, nous pourrions y stocker environ 100 milliards de photos de taille moyenne. Si Facebook ne disposait pas d'un moyen de protéger toutes vos publications, photos, vidéos, mises à jour de statut, etc. Si vous choisissez de ne pas le faire, Facebook ne pourra pas se souvenir de qui vous êtes. Il y a une petite quantité d'espace (ou quelques millions) qui vous est réservée pour vous exprimer d'une manière que vous désirez vraiment.

Il est utilisé pour personnaliser les publicités et augmenter la fréquence à laquelle vous interagissez avec Facebook. Facebook connaît certains sites Web à votre sujet, ainsi que les publicités que vous voyez et les publications que vous aimez.
Facebook vend également ces données à des entreprises tierces. Cambridge Analytica, une entreprise de données qui a travaillé sur la campagne présidentielle de Donald Trump, a obtenu des informations personnelles de 87 millions d'utilisateurs de Facebook.
Pour être en sécurité, vous devez être conscient de la manière dont Facebook collecte et utilise vos données, ainsi que prendre des mesures pour protéger votre vie privée. Vous pouvez supprimer votre compte Facebook en utilisant un outil de confidentialité Facebook, ou vous pouvez désactiver le Facebook Pixel et le bouton Facebook Like, entre autres.
Des inquiétudes concernant Facebook et des sociétés tierces ont été soulevées à la suite du récent scandale des données.
Au cours du scandale Cambridge Analytica, Facebook a été critiqué pour ne pas être transparent et ne pas agir assez rapidement. Mark Zuckerberg, PDG de Facebook, a annoncé mardi qu'il prendrait un congé pour faire face au scandale.
Depuis les révélations de violations massives de données sur Facebook et WhatsApp, Mark Zuckerberg a fait l'objet d'un examen minutieux pour son manque de responsabilité et son incapacité à répondre aux problèmes de confidentialité.
Selon les accusations, Facebook a manipulé l'opinion politique en utilisant les données des utilisateurs.
En raison des problèmes de confidentialité qui ont été soulevés, Facebook a été critiqué pour son manque de transparence et son incapacité à les résoudre.
Il a été affirmé que Facebook manipulait l'opinion politique de ses utilisateurs en collectant des données sur les utilisateurs.
Les utilisateurs ont la possibilité de suivre une série d'étapes.


Comment Facebook utilise Cassandra ?

Image prise par : eurekastreet.com.au

Cassandra utilise une combinaison de techniques bien connues pour la mise à l'échelle et la disponibilité. L'objectif de Cassandra était de répondre aux exigences de stockage du problème de recherche dans la boîte de réception. La recherche dans la boîte de réception est une nouvelle fonctionnalité qui permet aux utilisateurs de Facebook de rechercher leurs messages à partir de leur boîte de réception.

Facebook utilise Cassandra comme moteur de recherche pour les e-mails, avec 25 To et plus de 100 millions de boîtes aux lettres. Facebook a publié Cassandra en open source sous licence Apache le 1er juillet 2017. Dans cette vidéo, nous aurons un aperçu approfondi de l'architecture et de la conception de Cassandra. Cassandra était à l'origine destinée à résoudre le problème de la recherche d'adresses e-mail dans une boîte de réception. Lorsque vous écrivez dans une memtable, vous écrivez toujours dans un journal de validation (séquentiel), qui est séquentiel à chaque nœud du cluster. Lors de la configuration, lisez les étapes suivantes pour effacer la table du disque : * Espace insuffisant * Touches trop espacées (128 par défaut) * Durée (client fourni sans horloge). Conforme à la Staged Event-Driven Architecture (SEDA) et à la détection des pannes via un protocole de bavardage. Il compte 100 millions d'utilisateurs, 4 milliards de threads et 25 To de données, et il peut exécuter Hadoop à 1,5 To par heure.

The Sheen Is Off : Facebook abandonne Cassandra pour Mysql

Au lieu de Cassandra, Facebook a choisi Hbase pour construire son système de messagerie. En raison de son architecture distribuée, c'était un choix naturel pour Netflix d'utiliser Cassandra, et en 2013, la plupart de ses données y étaient hébergées, et il continue de l'utiliser aujourd'hui. Facebook utilise MySQL plutôt que Cassandra pour le stockage des données. La principale base de données utilisée par Facebook pour stocker toutes ses données de médias sociaux est MySQL. Ils ont créé le premier moteur de base de données , MyRocksDB, puis le moteur de base de données MySQL, InnoDB. MySQL et Memcache ont été combinés pour créer un cache.

Base de données Nosql utilisée par Facebook

Image prise par : medium.com

Facebook stocke toutes ses données de médias sociaux dans MySQL, la base de données principale sur laquelle il s'appuie.

Le processus de collecte de données à partir d'une base de données est appelé sa collecte. Il peut être utilisé de différentes manières pour stocker et analyser des données. Un SGBD est le système de gestion de base de données qui fonctionne dans une base de données spécifique. Pour garder une trace des différents types d'informations que les gens du monde entier partagent entre eux, Facebook utilise un certain nombre de bases de données. Le système de stockage Cassandra est destiné à gérer de grandes quantités de structure de données. Cette application a été créée pour résoudre le problème de la recherche des meilleurs résultats de recherche dans la boîte de réception, qui était causé par un manque d'espace de stockage. Cette méthode de mise en cache utilise uniquement des solutions en mémoire. Dans ce cas, l'accès au pool de stockage partagé est fourni à un prix abordable.

Cassandre contre. Cloud Bigtable contre. Amazon Dynamod

Cassandra est l'une des options de stockage backend les plus populaires pour Facebook, derrière Google et Amazon. Avec Cloud Bigtable, vous pouvez exécuter des charges de travail analytiques et opérationnelles sur un service de base de données NoSQL hautement performant. Amazon DynamoDB est une base de données NoSQL clé-valeur sans serveur qui peut être déployée à n'importe quelle échelle et est idéale pour les applications hautes performances.

Base de données utilisée par Facebook

Facebook utilise un système de gestion de base de données relationnelle (RDBMS) pour stocker et organiser les données. Un SGBDR est un type de base de données qui stocke des données dans des tables, et chaque table est liée à d'autres tables par des relations. Facebook utilise un SGBDR personnalisé conçu pour gérer les énormes quantités de données générées par les utilisateurs de Facebook.

Il y a plus d'un milliard de personnes qui utilisent Facebook. Les utilisateurs s'expriment et interagissent avec leurs pairs et amis grâce à l'utilisation de messages muraux. Malgré la gestion de centaines de millions d'utilisateurs, les ingénieurs de Facebook ont ​​été contraints de maintenir le bon fonctionnement du site. Cet article présente aux lecteurs certains des outils et méthodes qu'ils emploient pour atteindre leurs objectifs. Facebook utilise une variété de systèmes pour garder son site Web aussi dynamique que possible, avec plus de 500 millions d'utilisateurs. Si vous avez besoin d'évolutivité et de haute disponibilité tout en maintenant vos performances à un niveau élevé, Apache Cassandra est un excellent choix. Le système de journalisation Scribe permet à Facebook de se connecter pour diverses raisons en interne. Varnish peut être utilisé comme accélérateur HTTP pour servir un équilibrage de charge et un contenu de cache ultra-rapides.

Qu'est-ce que Facebook ?
Cette révélation de l'infrastructure du centre de données de Facebook a des implications importantes pour un certain nombre de raisons. Tout d'abord, cela démontre l'engagement de Facebook envers une qualité de service continue. De plus, le centre de données dispose d'un niveau d'accès sans précédent aux opérations de Facebook. Enfin, il souligne l'importance d'Autoscale, que Facebook utilise pour gérer le trafic et optimiser les performances.

Pourquoi Facebook utilise Mysql

Au fur et à mesure que Facebook grandissait et que SQL et MySQL devenaient omniprésents, il évoluait vers une application PHP qui utilisait MySQL comme base de données persistante et Memcache comme cache "lookaside". Facebook emploie aujourd'hui plus de 1000 serveurs MySql pour héberger ses données, appelées base de données universelle (multi locataire). Une base de données est fortement partitionnée et répliquée. Pour réduire le nombre de fragments requis pour trouver les données, toutes les données associées sont conservées dans un fragment. Qu'est-ce qu'une base de données utilisée par Netflix ? Oracle est le système de persistance des données le plus répandu dans le centre de données de Netflix. MySQL est utilisé dans l'infrastructure de recommandation de films dans certains domaines. Les bases de données des deux sont des bases de données relationnelles .

Base de données Facebook

Une base de données Facebook est une collection de données qui est organisée et stockée par le site de réseau social Facebook. Ces données peuvent inclure des informations sur les utilisateurs, leurs amis et leur activité sur le site. La base de données Facebook est utilisée pour alimenter les fonctionnalités et fonctions du site.

Comment Cassandra est devenue le magasin de données de Facebook

En raison de la flexibilité de modélisation des données de SQL et de l'utilisation généralisée de MySQL lorsque FB a été lancé pour la première fois, MySQL a été initialement utilisé comme base de données persistante, et Memcache a été utilisé comme cache "lookaside" pour le graphe social.
Un pétaoctet de données pèse environ un million de gigaoctets sur Facebook chaque jour. Un pétaoctet équivaut à environ 300 pétaoctets de données, et tout réside dans une installation Hive.
Malgré l'abandon complet de Cassandra par Facebook, il est toujours utilisé par de grandes entreprises comme Twitter, Netflix et Apple, pour n'en nommer que quelques-unes. DataStax, d'autre part, a une version de l'outil disponible pour une variété d'autres entreprises.
En conséquence, alors que Facebook ne stocke plus ses propres données dans Cassandra, d'autres entreprises le font.

Nouvelle base de données Nosql

Une base de données NoSQL, qui n'est pas basée sur SQL, est définie comme une base de données qui rassemble des données d'une manière différente d'une base de données relationnelle. Les bases de données de table n'ont pas besoin de colonnes fixes dans les tables, sont compatibles avec la mise à l'échelle horizontale et ne nécessitent pas de JOIN comme les bases de données relationnelles. Les types de bases de données NoSQL diffèrent selon le modèle de données utilisé.

C'est l'un des types de bases de données les plus couramment utilisés dans l'industrie à diverses fins. L'utilisation du cloud computing par rapport aux bases de données traditionnelles présente plusieurs avantages, tels que la facilité d'utilisation, l'augmentation de la capacité de stockage dans le cloud et l'amélioration de la sécurité des données. Les bases de données NoSQL sont utilisées à de nombreuses fins, notamment les dossiers médicaux, les dossiers financiers et d'autres bases de données. La base de données de documents RavenDB NoSQL prend en charge les transactions ACID (atomicité, cohérence, isolation et durabilité) et est une base de données NoSQL solide avec de solides capacités de type document. Avec Couchbase, vous pouvez créer une application mobile et Internet des objets (IoT). Vous pouvez également utiliser ArangoDB pour rechercher et afficher des graphiques, des documents et d'autres données. OrientDB est l'une des premières bases de données NoSQL à inclure la prise en charge de plusieurs modèles pour les graphiques et les documents.

Vous pouvez trouver Neo4j une option viable si vous avez besoin de plus de contexte sur votre base de données afin d'avoir un aperçu de vos données. MongoDB fournit une plate-forme différente appelée Realm qui vous permet de créer, tester et publier rapidement des applications mobiles. La base de données MarkLogic est conçue pour gérer les bases de données multimodèles ainsi que les charges de travail qui nécessitent des capacités NoSQL. La base de données MarkLogic est une bonne plate-forme de base de données NoSQL pour stocker des données de relation et exécuter des travaux analytiques. Si vous ne voulez pas faire de compromis, une solution entièrement gérée est la meilleure option.

Architecture de la base de données Facebook

L' architecture de base de données fb est un outil puissant qui peut vous aider à organiser et à gérer vos données. C'est un système flexible qui peut être personnalisé pour répondre à vos besoins. Avec fb, vous pouvez facilement stocker et récupérer des données à partir de diverses sources.

Facebook utilise une architecture de pile avec des graphiques mis en cache pour tout ce qui se trouve au-dessus du bas de MySQL. En d'autres termes, cela signifie qu'une base de données relationnelle n'est pas plus performante qu'une base de données de graphes . En plus des amis d'amis, il est plus difficile d'effectuer des requêtes complexes que d'effectuer des requêtes simples comme "Tous les emplacements autour d'une coordonnée donnée". Un graphique est la meilleure solution dans ce cas. Pour un peu plus d'un million d'utilisateurs, 1,8 seconde sera dépensée, tandis que pour un peu plus de 100 000 utilisateurs, 18 secondes seront dépensées. Si plusieurs utilisateurs exécutent la même requête, n'oubliez pas qu'il ne s'agit pas de la seule requête que vous tentez. La réponse à la question de savoir comment Facebook a conçu sa relation d'amis est qu'elle est très bien conçue. Je suis sincèrement désolé de ne pas pouvoir vous aider à le mettre en œuvre.