Handelt es sich um Oracle oder MySQL oder um etwas, das sie selbst entwickelt haben?
Antworten
Zu viele Anzeigen?Bigtable
Ein verteiltes Speichersystem für strukturierte Daten
Bigtable ist ein verteilter Speicher System (entwickelt von Google) zur Verwaltung strukturierter Daten das für die Skalierung auf sehr große skalierbar ist: Petabytes an Daten über Tausende von Standard-Servern.
Viele Projekte bei Google speichern Daten in Bigtable, einschließlich Web-Indexierung, Google Earth und Google Finance. Diese Anwendungen stellen sehr unterschiedliche Anforderungen an Bigtable, sowohl in in Bezug auf die Datengröße (von URLs über Web Seiten bis hin zu Satellitenbildern) und Latenzanforderungen (von Backend Massenverarbeitung bis hin zu Echtzeit-Daten servierung).
D Anforderungen hat Bigtable erfolgreich eine flexible und leistungsstarke Lösung Lösung für alle diese Google Produkte.
Einige Merkmale
- schnelles und extrem umfangreiches DBMS
- eine spärliche, verteilte mehrdimensionale sortierte Karte, die Merkmale sowohl von zeilenorientierten als auch von spaltenorientierten Datenbanken aufweist.
- entwickelt, um in den Petabyte-Bereich zu skalieren
- es funktioniert auf Hunderten oder Tausenden von Rechnern
- es ist einfach, dem System weitere Maschinen hinzuzufügen und diese Ressourcen automatisch zu nutzen, ohne dass eine Neukonfiguration erforderlich ist
- jede Tabelle hat mehrere Dimensionen (eine davon ist ein Feld für die Zeit, was die Versionierung ermöglicht)
- Tabellen werden für GFS (Google File System) optimiert, indem sie in mehrere Tabletten aufgeteilt werden - Segmente der Tabelle werden entlang einer Zeile aufgeteilt, die so gewählt wird, dass die Tablette ~200 Megabyte groß ist.
Architektur
BigTable ist keine relationale Datenbank. Es unterstützt weder Joins noch umfangreiche SQL-ähnliche Abfragen. Jede Tabelle ist eine mehrdimensionale Sparse Map. Die Tabellen bestehen aus Zeilen und Spalten, und jede Zelle hat einen Zeitstempel. Es kann mehrere Versionen einer Zelle mit unterschiedlichen Zeitstempeln geben. Der Zeitstempel ermöglicht Operationen wie "Auswahl von 'n' Versionen dieser Webseite" oder "Löschen von Zellen, die älter als ein bestimmtes Datum/eine bestimmte Uhrzeit sind".
Um die riesigen Tabellen zu verwalten, teilt Bigtable die Tabellen an den Zeilengrenzen auf und speichert sie als Tabletten. Eine Tablette ist etwa 200 MB groß, und jede Maschine speichert etwa 100 Tabletten. Auf diese Weise können die Tabletten einer einzigen Tabelle auf viele Server verteilt werden. Es ermöglicht auch eine fein abgestufte Lastverteilung. Wenn eine Tabelle viele Abfragen erhält, kann sie andere Tablets auslagern oder die ausgelastete Tabelle auf einen anderen Rechner verschieben, der nicht so stark ausgelastet ist. Fällt ein Rechner aus, kann ein Tablett auf viele andere Server verteilt werden, so dass die Auswirkungen auf die Leistung eines bestimmten Rechners minimal sind.
Die Tabellen werden als unveränderliche SSTables und eine Reihe von Protokollen (ein Protokoll pro Rechner) gespeichert. Wenn einem Rechner der Systemspeicher ausgeht, komprimiert er einige Tabellen mit Google-eigenen Komprimierungstechniken (BMDiff und Zippy). Geringfügige Komprimierungen betreffen nur einige wenige Tablets, während größere Komprimierungen das gesamte Tabellensystem betreffen und Festplattenspeicherplatz zurückgewinnen.
Die Standorte der Bigtabletten werden in Zellen gespeichert. Die Suche nach einer bestimmten Tablette wird über ein dreistufiges System abgewickelt. Die Clients erhalten einen Verweis auf eine META0-Tabelle, von denen es nur eine gibt. Die META0-Tabelle verwaltet viele META1-Tabletten, die die Standorte der gesuchten Tabletten enthalten. Sowohl META0 als auch META1 nutzen in hohem Maße Pre-Fetching und Caching, um Engpässe im System zu minimieren.
Umsetzung
BigTable basiert auf Google Dateisystem (GFS), das als Sicherungsspeicher für Protokoll- und Datendateien verwendet wird. GFS bietet einen zuverlässigen Speicher für SSTables, ein von Google entwickeltes Dateiformat, das für die Speicherung von Tabellendaten verwendet wird.
Ein weiterer Dienst, der von BigTable intensiv genutzt wird, ist Mollig einen hochverfügbaren, zuverlässigen verteilten Schließdienst. Chubby erlaubt es Klienten, eine Sperre zu nehmen und sie möglicherweise mit einigen Metadaten zu verknüpfen, die sie erneuern können, indem sie Keep-Alive-Nachrichten zurück an Chubby senden. Die Sperren werden in einer dateisystemähnlichen hierarchischen Namensstruktur gespeichert.
Es gibt drei Hauptbereiche Server-Typen von Interesse im Bigtable-System:
- Master-Server: Weisen Sie Tablets den Tablet-Servern zu, behalten Sie den Überblick, wo sich die Tablets befinden, und verteilen Sie die Aufgaben nach Bedarf neu.
- Tablet-Server: Sie bearbeiten Lese- und Schreibanfragen für Tablets und teilen Tablets auf, wenn sie die Größenbeschränkung (in der Regel 100 MB bis 200 MB) überschreiten. Wenn ein Tabletten-Server ausfällt, nehmen 100 Tabletten-Server jeweils eine neue Tablette auf und das System erholt sich.
- Sperrserver: Instanzen des verteilten Sperrdienstes Chubby. Viele Aktionen innerhalb von BigTable erfordern den Erwerb von Sperren, einschließlich des Öffnens von Tablets zum Schreiben, der Sicherstellung, dass nicht mehr als ein Master gleichzeitig aktiv ist, und der Überprüfung der Zugriffskontrolle.
Beispiel aus einem Forschungspapier von Google:
Ein Ausschnitt aus einer Beispieltabelle, die Web-Seiten speichert. Die Zeile umgekehrte URL . Die Inhaltsspalte Familie enthält die Seiteninhalt und die Ankersäulenfamilie co Text von Ankern t Seite. Die CNN-Homepage wird referenziert von sowohl von der Sports Illustrated als auch von der MY-look-Homepage verwiesen, so dass die Zeile enthält
anchor:cnnsi.com
etanchor:my.look.ca
. Jede Ankerzelle hat eine Version die Inhaltsspalte hat drei Versionen ,t3
,t5
yt6
.
API
Typische Operationen mit BigTable sind das Erstellen und Löschen von Tabellen und Spaltenfamilien, das Schreiben von Daten und das Löschen von Spalten in einer Zeile. BigTable stellt diese Funktionen den Anwendungsentwicklern in einer API zur Verfügung. Transaktionen werden auf Zeilenebene unterstützt, jedoch nicht über mehrere Zeilenschlüssel hinweg.
Voici le Link zur PDF-Datei der Forschungsarbeit .
Und hier finden Sie eine Video mit Jeff Dean von Google bei einer Vorlesung an der Universität von Washington über das Bigtable-System zur Speicherung von Inhalten, das in Googles Backend verwendet wird.
Es ist etwas, das sie selbst entwickelt haben - es heißt Bigtable.
http://en.wikipedia.org/wiki/BigTable
Es gibt ein Papier von Google über die Datenbank:
Schraubenschlüssel ist das weltweit verteilte relationale Datenbankmanagementsystem (RDBMS) von Google, der Nachfolger von BigTable . Google behauptet, dass es sich nicht um ein rein relationales System handelt, da jede Tabelle einen Primärschlüssel haben muss.
Aquí ist der Link zu dem Papier.
Spanner ist Googles skalierbares, multiversionsfähiges, weltweit verteiltes und synchron-replizierte Datenbank. Es ist das erste System, das Daten in globalem Maßstab verteilt und extern konsistente verteilte verteilte Transaktionen. Dieses Papier beschreibt, wie Spanner ist strukturiert ist, seine Funktionen, die Gründe für verschiedene Designentscheidungen Designentscheidungen und eine neuartige Zeit-API, die Unsicherheiten in Bezug auf die Uhrzeit aufdeckt. Diese API und ihre Implementierung sind entscheidend für die Unterstützung externer Konsistenz und eine Vielzahl leistungsfähiger Funktionen: nicht blockierende Lesevorgänge in der der Vergangenheit, sperrfreie Nur-Lese-Transaktionen und atomare Schemaänderungen, in ganz Spanner.
Eine weitere von Google erfundene Datenbank ist Megastore . Hier ist die Zusammenfassung:
Megastore ist ein Speichersystem, das für die Anforderungen von der heutigen interaktiven Online-Dienste zu erfüllen. Megastore verbindet die Skalierbarkeit eines NoSQL-Datenspeichers mit dem Komfort eines traditionellen RDBMS in einem neuartigen Weise und bietet sowohl starke Konsistenzgarantien als auch hohe Verfügbarkeit. Wir bieten vollständig serialisierbare ACID-Semantik innerhalb von feinkörnigen Partitionen von Daten. Diese Partitionierung ermöglicht es uns synchrones Replizieren jedes Schreibvorgangs über ein Weitverkehrsnetz mit mit angemessener Latenz zu replizieren und ein nahtloses Failover zwischen Rechenzentren zu unterstützen. Dieses Papier beschreibt die Semantik und den Replikationsalgorithmus von Megastore. Es beschreibt auch unsere Erfahrungen mit der Unterstützung einer Vielzahl von Google Produktionsdiensten, die mit Megastore erstellt wurden.
Wie bereits von anderen erwähnt, verwendet Google eine eigene Lösung namens BigTable und hat einige Dokumente veröffentlicht, in denen diese Lösung in der realen Welt beschrieben wird.
Die Apache-Leute haben eine Implementierung der in diesen Papieren vorgestellten Ideen namens HBase . HBase ist Teil des größeren Hadoop-Projekts, das laut seiner Website "ist eine Softwareplattform, mit der man auf einfache Weise Anwendungen schreiben und ausführen kann, die große Datenmengen verarbeiten." Einige der Benchmarks sind recht beeindruckend. Ihre Website ist unter http://hadoop.apache.org .
Obwohl Google BigTable für alle seine Hauptanwendungen verwendet, hat es auch MySQL verwenden für andere (vielleicht kleinere) Anwendungen.
- See previous answers
- Weitere Antworten anzeigen