Facebooks Verwendung von NoSQL-Datenbanken
Veröffentlicht: 2022-11-22Facebook hat eine Reihe von NoSQL-Datenbanken implementiert, um seinen massiven sozialen Graphen zu skalieren. Zu diesen Datenbanken gehören Apache HBase, Apache Cassandra und Apache Thrift. Durch die Verwendung dieser NoSQL-Datenbanken ist Facebook in der Lage, seinen Benutzern ein schnelles und reaktionsschnelles Erlebnis zu bieten und gleichzeitig eine große Datenmenge zu verwalten.
In der Datenbank von Facebook sind die Profile von mehr als zwei Milliarden Menschen gespeichert. Heutzutage verlassen sich viele geschäftskritische Unternehmensanwendungen, wie z. B. mandantenfähige SaaS, auf die internetfähige, global verteilte Architektur von Facebook, und aus dem Verständnis der Entwicklung der Facebook-Datenbank können Lehren gezogen werden. Mystria, eine beliebte Open-Source-Datenbank , ist die Grundlage für die NoSQL-Graph-API von FB, TAO. Infolgedessen verwandelte TAO die vorhandenen 1000 manuell gehärteten MySQL-Master-Slaves von FB in Sharding-Slaves. Infolgedessen verwendet die Anwendung die Datenbank nicht mehr, um Shard-übergreifende Transaktionen und gemeinsame Operationen durchzuführen. Zusätzlich dazu würden, wenn ein fehlgeschlagener Überlauf durchgeführt würde, kürzlich festgeschriebene Daten verloren gehen. Die Objekte und Zuordnungen werden auf demselben Servercluster gespeichert, ohne dass Änderungen am Shard vorgenommen werden.
Der Grad der Datenkollokation wurde als wichtige Optimierungstechnik zur Erleichterung des Datenzugriffs mit geringer Latenzzeit bestimmt. Als FB beschloss, SQL als Abfrage-API aufzugeben und die benutzerdefinierte NoSQL-API von TAO zu übernehmen, haben seine Entwickler SQL vollständig aufgegeben. Google hat im Gegensatz zu Facebook eine völlig neue Datenbank namens Spanner erstellt, die global konsistent ist. Das Datenmodell von Spanner basierte eher auf herkömmlichem OLTP mit wahlfreiem Zugriff als auf einem sozialen Diagramm. Massive Skalierbarkeit und globale Datenverteilung sind in die Datenbankschicht der zweiten Generation verteilter Datenbanken integriert. Spanner verwendet einen pro Shard verteilten Konsens, um sicherzustellen, dass jeder Shard (und nicht nur eine Instanz) im Falle eines Ausfalls hochverfügbar ist. Diese Konfigurationsänderung wird im Kontext der Anwendung vorgenommen und funktioniert weiterhin normal.
Daten, die für die lokale Region relevant sind, können sich immer noch in derselben Region befinden, wenn Geodatenfeatures wie die Geopartitionierung auf Tabellen- und Zeilenebene aktiviert sind. Bei Multi-Shard-Transaktionen wird ein zweiphasiges Commit verwendet, und ein verteilter Transaktionsmanager verfolgt Taktverschiebungen über die Knoten hinweg. Wir haben TAO bei FB entwickelt, um unsere bestehende Investition in Sharded MySQL zu erhalten. Google beschloss, mit der Tradition zu brechen, indem es Spanner erstellte, eine völlig neue Datenbank, die horizontal skalieren, georeplizieren und Infrastrukturausfälle so behandeln kann, als ob sie tatsächlich passierten.
Wir verwenden MySQL in Facebook aus verschiedenen Gründen. Mit MySQL kann ein kleines Team Tausende von Servern verwalten und gleichzeitig qualitativ hochwertigen Service zu möglichst geringen Kosten anbieten.
TAO, eine NoSQL-Grafik-API, die Anfang 2009 von FB entwickelt wurde, sollte auf dem MySQL-basierten Apache Cassandra laufen. Das Hauptziel dieses Abschnitts bestand darin, die im vorherigen hervorgehobenen Probleme zu beseitigen. TAO, das Akronym für Associations and Objects, bezieht sich auf Assoziationen und Objekte.
Die frühe Datenspeicherung von Facebook stützte sich stark auf eine relationale MySQL-Datenbank. Obwohl sich die Facebook-Ingenieure von Googles Papier zu Google BigTable NoSQL-Datenbanken inspirieren ließen, erstellten sie Cassandra, einen Column-Family-Store, der auf der NoSQL-Datenbank von Facebook basiert.
Facebook verfügt über ein relationales Datenbanksystem , um seine Primärdaten zu speichern. Es speichert die Social Graph- und Facebook-Messenger-Daten (mehr als eine Milliarde Benutzer) für mehr als eine Milliarde Benutzer, die einen Fork von MySql 5.6 verwenden.
Verwendet Facebook Nosql?
Auf diese Frage gibt es keine allgemeingültige Antwort, da die Verwendung von NoSQL-Datenbanken je nach den spezifischen Anforderungen der einzelnen Anwendungen variiert. Es ist jedoch allgemein anerkannt, dass Facebook eine Mischung aus SQL- und NoSQL-Datenbanken verwendet, um seine großen Datenmengen zu speichern und zu verwalten.
Sowohl Cloud Datastore als auch Cloud Firestore sind eine ausgezeichnete Wahl für Unternehmen, die nach einer dokumentenorientierten Datenbank suchen, die für Echtzeit-Datenanalysen verwendet werden kann. Cloud Firestore ist aufgrund seiner optimierten Architektur und Benutzerfreundlichkeit auf Mobilgeräten eine ausgezeichnete Wahl für kleine Dokumente. Der Cloud Datastore ist darauf ausgelegt, extrem hohe Workloads zu bewältigen und automatisch zu skalieren. Es gibt auch viel Verwendung dafür.
Wie speichert Facebook Daten in der Datenbank?
Facebook speichert Daten in einer relationalen Datenbank, die in Tabellen organisiert ist. Die Daten werden dann in Spalten und Zeilen innerhalb der Tabellen gespeichert. Die Daten werden in Form von Text, Zahlen und Datum gespeichert.
Facebooks Datenspeicher in Prineville, Oregon. Verfolgen Sie alles, von den Ereignissen, an denen Sie teilnehmen, über Ihren Status (oder Liebe, haha, wow, trauriges oder wütendes Gesicht) bis hin zu Ihrer Zeitleiste. Schätzungen zufolge verfügt die Facebook-Einrichtung in Oregon über eine Speicherkapazität von bis zu 300 Petabyte. Mit dieser Datenmenge könnten wir etwa 100 Milliarden Fotos in durchschnittlicher Größe darauf speichern. Wenn Facebook keine Möglichkeit hätte, alle Ihre Beiträge, Fotos, Videos, Statusaktualisierungen usw. sicher aufzubewahren. Wenn Sie sich dagegen entscheiden, kann sich Facebook nicht daran erinnern, wer Sie sind. Es gibt eine kleine Menge Platz (oder wenige Millionen), die für Sie reserviert ist, um sich so auszudrücken, wie Sie es sich wirklich wünschen.
Es wird verwendet, um Anzeigen zu personalisieren und die Häufigkeit zu erhöhen, mit der Sie mit Facebook interagieren. Es gibt bestimmte Websites, die Facebook über Sie kennt, sowie die Anzeigen, die Sie sehen, und die Beiträge, die Ihnen gefallen.
Facebook verkauft diese Daten auch an Drittunternehmen. Cambridge Analytica, eine Datenfirma, die an der Präsidentschaftskampagne von Donald Trump arbeitete, erhielt persönliche Informationen von 87 Millionen Facebook-Nutzern.
Um auf der sicheren Seite zu sein, müssen Sie sich darüber im Klaren sein, wie Facebook Ihre Daten sammelt und verwendet, und Maßnahmen zum Schutz Ihrer Privatsphäre ergreifen. Sie können Ihr Facebook-Konto löschen, indem Sie ein Facebook-Datenschutztool verwenden, oder Sie können unter anderem das Facebook-Pixel und den Facebook-Like-Button deaktivieren.
Als Folge des jüngsten Datenskandals wurden Bedenken über Facebook und Drittunternehmen geäußert.
Im Zuge des Cambridge-Analytica-Skandals wurde Facebook vorgeworfen, nicht transparent zu sein und nicht schnell genug zu handeln. Mark Zuckerberg, CEO von Facebook, kündigte am Dienstag an, sich wegen der Aufarbeitung des Skandals beurlauben zu lassen.
Seit der Enthüllung massiver Datenschutzverletzungen bei Facebook und WhatsApp wurde Mark Zuckerberg wegen seiner mangelnden Rechenschaftspflicht und seines Versäumnisses, die Datenschutzbedenken auszuräumen, unter die Lupe genommen.
Facebook soll laut Vorwürfen durch die Nutzung von Nutzerdaten politische Meinungsbildung betrieben haben.
Infolge der angesprochenen Datenschutzprobleme ist Facebook wegen mangelnder Transparenz und fehlender Behandlung unter Beschuss geraten.
Es wurde behauptet, Facebook habe die politische Meinung seiner Nutzer durch das Sammeln von Nutzerdaten manipuliert.
Benutzer haben die Möglichkeit, eine Reihe von Schritten durchzuführen.
Wie verwendet Facebook Cassandra?
Cassandra verwendet eine Kombination bekannter Techniken für Skalierung und Verfügbarkeit. Das Ziel von Cassandra bestand darin, die Speicheranforderungen des Problems der Posteingangssuche zu lösen. Die Posteingangssuche ist eine neue Funktion, mit der Facebook-Benutzer ihre Nachrichten von ihrem Posteingang aus durchsuchen können.
Facebook nutzt Cassandra als Suchmaschine für E-Mails mit 25 TB und mehr als 100 Millionen Postfächern. Facebook hat Cassandra am 1. Juli 2017 als Open Source unter der Apache-Lizenz veröffentlicht. In diesem Video erhalten wir einen detaillierten Einblick in die Architektur und das Design von Cassandra. Cassandra sollte ursprünglich das Problem lösen, E-Mail-Adressen in einem Posteingang zu finden. Beim Schreiben in eine Speichertabelle schreiben Sie immer in ein Commit-Protokoll (sequenziell), das für jeden Knoten im Cluster sequenziell ist. Lesen Sie während der Einrichtung die folgenden Schritte, um die Tabelle von der Festplatte zu löschen: * Zu wenig Speicherplatz * Tasten mit zu großem Abstand (128 Standard) * Zeitdauer (Client ohne Uhr). Entspricht der Staged Event-Driven Architecture (SEDA) und der Fehlererkennung über ein Klatschprotokoll. Es hat 100 Millionen Benutzer, 4 Milliarden Threads und 25 TB an Daten und kann Hadoop mit 1,5 TB pro Stunde ausführen.
Der Glanz ist aus: Facebook verlässt Cassandra für Mysql
Anstelle von Cassandra entschied sich Facebook für Hbase, um sein Messaging-System aufzubauen. Aufgrund seiner verteilten Architektur war es für Netflix eine natürliche Wahl, Cassandra zu verwenden, und bis 2013 waren die meisten seiner Daten dort untergebracht und werden auch heute noch verwendet. Facebook verwendet MySQL anstelle von Cassandra, wenn es um die Datenspeicherung geht. Die primäre Datenbank, die von Facebook zum Speichern aller seiner Social-Media-Daten verwendet wird, ist MySQL. Sie erstellten die erste Datenbank-Engine , MyRocksDB, und dann die MySQL-Datenbank-Engine, InnoDB. MySQL und Memcache wurden kombiniert, um einen Cache zu erstellen.
Von Facebook verwendete Nosql-Datenbank
Facebook speichert alle seine Social-Media-Daten in MySQL, der primären Datenbank, auf die es sich stützt.
Das Sammeln von Daten aus einer Datenbank wird als Sammeln bezeichnet. Es kann auf vielfältige Weise zum Speichern und Analysieren von Daten verwendet werden. Ein DBMS ist das Datenbankverwaltungssystem, das in einer bestimmten Datenbank arbeitet. Um den Überblick über die verschiedenen Arten von Informationen zu behalten, die Menschen auf der ganzen Welt miteinander teilen, verwendet Facebook eine Reihe von Datenbanken. Das Cassandra-Speichersystem soll große Mengen an Datenstrukturen verwalten. Diese App wurde entwickelt, um das Problem zu lösen, die besten Suchergebnisse für den Posteingang zu finden, das durch Speicherplatzmangel verursacht wurde. Diese Caching-Methode verwendet nur In-Memory-Lösungen. In diesem Fall wird der Zugriff auf den gemeinsam genutzten Speicherpool zu einem erschwinglichen Preis bereitgestellt.
Kassandra vs. Cloud Bigtable vs. Amazon Dynamodb
Cassandra ist eine der beliebtesten Backend-Speicheroptionen für Facebook und liegt nur hinter Google und Amazon. Mit Cloud Bigtable können Sie analytische und operative Workloads auf einem hochleistungsfähigen NoSQL-Datenbankdienst ausführen. Amazon DynamoDB ist eine serverlose Schlüsselwert-NoSQL-Datenbank, die in jeder Größenordnung bereitgestellt werden kann und sich ideal für Hochleistungsanwendungen eignet.
Von Facebook verwendete Datenbank
Facebook verwendet ein relationales Datenbankmanagementsystem (RDBMS), um Daten zu speichern und zu organisieren. Ein RDBMS ist eine Art Datenbank, die Daten in Tabellen speichert, und jede Tabelle ist durch Beziehungen mit anderen Tabellen verknüpft. Facebook verwendet ein speziell entwickeltes RDBMS, das darauf ausgelegt ist, die riesigen Datenmengen zu verarbeiten, die Facebook-Benutzer generieren.
Es gibt mehr als eine Milliarde Menschen, die Facebook nutzen. Benutzer drücken sich aus und interagieren mit Gleichaltrigen und Freunden durch die Verwendung von Pinnwand-Posts. Trotz des Umgangs mit Hunderten Millionen Benutzern waren die Facebook-Ingenieure gezwungen, die Website reibungslos am Laufen zu halten. Dieser Artikel stellt den Lesern einige der Tools und Methoden vor, die sie anwenden, um ihre Ziele zu erreichen. Facebook setzt eine Vielzahl von Systemen ein, um seine Website mit über 500 Millionen Nutzern so dynamisch wie möglich zu halten. Wenn Sie Skalierbarkeit und Hochverfügbarkeit benötigen und gleichzeitig Ihre Leistung auf einem hohen Niveau halten möchten, ist Apache Cassandra eine ausgezeichnete Wahl. Das Scribe-Protokollierungssystem ermöglicht es Facebook, sich aus verschiedenen Gründen intern anzumelden. Varnish kann als HTTP-Beschleuniger verwendet werden, um blitzschnelles Load-Balancing und Cache-Inhalte bereitzustellen.
Was ist Facebook?
Diese Enthüllung der Rechenzentrumsinfrastruktur von Facebook hat aus mehreren Gründen erhebliche Auswirkungen. Erstens demonstriert es das Engagement von Facebook für kontinuierliche Servicequalität. Darüber hinaus hat das Rechenzentrum einen beispiellosen Zugang zu den Aktivitäten von Facebook. Schließlich wird die Bedeutung von Autoscale betont, das Facebook zur Verwaltung des Datenverkehrs und zur Optimierung der Leistung einsetzt.
Warum Facebook Mysql verwendet
Als Facebook wuchs und SQL und MySQL allgegenwärtig wurden, entwickelte es sich zu einer PHP-Anwendung, die MySQL als persistente Datenbank und Memcache als „Lookaside“-Cache verwendete. Facebook verwendet heute über 1000 MySql-Server, um seine Daten zu speichern, die als universelle (mehrere Mandanten-) Datenbank bezeichnet werden. Eine Datenbank ist stark partitioniert und repliziert. Um die Anzahl der zum Auffinden der Daten erforderlichen Shards zu reduzieren, werden alle zugehörigen Daten in einem Shard gespeichert. Was ist eine von Netflix verwendete Datenbank? Oracle ist das am weitesten verbreitete Datenpersistenzsystem im Rechenzentrum von Netflix. In einigen Bereichen wird MySQL in der Filmempfehlungsinfrastruktur verwendet. Die Datenbanken in beiden sind relationale Datenbanken .
Facebook-Datenbank
Eine Facebook-Datenbank ist eine Sammlung von Daten, die von der sozialen Netzwerkseite Facebook organisiert und gespeichert werden. Diese Daten können Informationen über Benutzer, ihre Freunde und ihre Aktivitäten auf der Website enthalten. Die Facebook-Datenbank wird verwendet, um die Features und Funktionen der Website zu betreiben.
Wie Cassandra zum Datenspeicher für Facebook wurde
Aufgrund der Flexibilität von SQL bei der Datenmodellierung und der weit verbreiteten Verwendung von MySQL beim ersten Start von FB wurde MySQL zunächst als persistente Datenbank und Memcache als „Lookaside“-Cache für den Social Graph verwendet.
Ein Petabyte an Daten wiegt bei Facebook jeden Tag etwa eine Million Gigabyte. Ein Petabyte entspricht ungefähr 300 Petabyte an Daten, und alles befindet sich in einer Hive-Einrichtung.
Trotz der vollständigen Aufgabe von Cassandra durch Facebook wird es immer noch von großen Unternehmen wie Twitter, Netflix und Apple verwendet, um nur einige zu nennen. DataStax hingegen bietet eine Version des Tools für eine Vielzahl anderer Unternehmen an.
Infolgedessen speichert Facebook zwar keine eigenen Daten mehr in Cassandra, andere Unternehmen tun dies jedoch.
Neue Nosql-Datenbank
Eine NoSQL-Datenbank, die nicht SQL-basiert ist, wird als eine Datenbank definiert, die Daten auf andere Weise sammelt als eine relationale Datenbank. Tabellendatenbanken benötigen keine fest eingestellten Spalten in Tabellen, sind mit horizontaler Skalierung kompatibel und erfordern keine JOINs wie relationale Datenbanken. Die Arten von NoSQL-Datenbanken unterscheiden sich je nach verwendetem Datenmodell.
Es ist einer der am häufigsten verwendeten Datenbanktypen in der Branche für eine Vielzahl von Zwecken. Die Verwendung von Cloud Computing bietet gegenüber herkömmlichen Datenbanken mehrere Vorteile, wie z. B. Benutzerfreundlichkeit, erhöhte Cloud-Speicherkapazität und verbesserte Datensicherheit. NoSQL-Datenbanken werden für eine Vielzahl von Zwecken verwendet, darunter Gesundheitsunterlagen, Finanzunterlagen und andere Datenbanken. Die RavenDB NoSQL-Dokumentendatenbank unterstützt ACID-Transaktionen (Atomicity, Consistency, Isolation und Durability) und ist eine solide NoSQL-Datenbank mit soliden Dokumenttyp-Fähigkeiten. Mit Couchbase können Sie eine Anwendung für Mobilgeräte und das Internet der Dinge (IoT) erstellen. Sie können ArangoDB auch verwenden, um Diagramme, Dokumente und andere Daten zu suchen und anzuzeigen. OrientDB ist eine der ersten NoSQL-Datenbanken, die Multi-Model-Unterstützung für Diagramme und Dokumente enthält.
Möglicherweise ist Neo4j eine praktikable Option, wenn Sie mehr Kontext in Ihrer Datenbank benötigen, um Einblicke in Ihre Daten zu erhalten. MongoDB bietet eine andere Plattform namens Realm, mit der Sie mobile Anwendungen schnell erstellen, testen und freigeben können. Die MarkLogic-Datenbank wurde entwickelt, um Datenbanken mit mehreren Modellen sowie Workloads zu verarbeiten, die NoSQL-Funktionen erfordern. Die MarkLogic-Datenbank ist eine gute NoSQL- Datenbankplattform zum Speichern von Beziehungsdaten und zum Ausführen von Analysearbeiten. Wenn Sie keine Kompromisse eingehen möchten, ist eine vollständig verwaltete Lösung die beste Option.
Fb-Datenbankarchitektur
Die fb-Datenbankarchitektur ist ein leistungsstarkes Tool, mit dem Sie Ihre Daten organisieren und verwalten können. Es ist ein flexibles System, das an Ihre Bedürfnisse angepasst werden kann. Mit fb können Sie Daten aus einer Vielzahl von Quellen einfach speichern und abrufen.
Facebook verwendet eine Stack-Architektur mit zwischengespeicherten Graphen für alles oberhalb des unteren MySQL-Endes. Mit anderen Worten bedeutet dies, dass eine relationale Datenbank nicht besser abschneidet als eine Graphdatenbank . Neben Freunden von Freunden ist es schwieriger, komplexe Abfragen durchzuführen als einfache Abfragen wie „Alle Orte um eine bestimmte Koordinate herum“. Eine Grafik ist in diesem Fall die beste Lösung. Für etwas mehr als 1 Million Benutzer werden 1,8 Sekunden aufgewendet, während für etwas mehr als 100.000 Benutzer 18 Sekunden aufgewendet werden. Wenn mehr als ein Benutzer dieselbe Abfrage ausführt, denken Sie daran, dass dies nicht die einzige Abfrage ist, die Sie versuchen. Die Antwort auf die Frage, wie Facebook seine Freundesbeziehung gestaltet hat, ist, dass es sehr gut gestaltet ist. Ich entschuldige mich aufrichtig dafür, dass ich Ihnen bei der Umsetzung nicht behilflich sein kann.