| Google-BigTable | |||||
|
Google BigTable ist ein verteiltes Speichersystem welches ausgelegt ist, um grosse Mengen an strukturierten Daten zu verwalten. Es kann sich dabei um Größenordnungen bis in den Petabytebereich handeln. Diese Daten können auf tausenden Commodity Servern verteilt sein. Commodity Server sind in der Praxis leicht einsetzbar für kommerzielle Zwecke oder wichtige Datenanforderungen. Sie sind leicht ersetzbar (Plug and Play) und nachbestellbar, in einfacher Ausführung. Sie können in Blade Zentern leicht eingesetzt und ausgetauscht werden. Google Table wird sowohl für große strukturierte Daten in NoSQL Datenbanken eingesetzt als auch für Anwendungen die eine geringe Antwortzeit benötigen (von Backend Massenverarbeitung bis zu Echtzeit Datenverarbeitung). Eigenschaften von Google BigTable sind Skalierbarkeit, vielseitige Anwendbarkeit, hochleistungsfähig, und geringe Ausfallzeiten. In BigTable sind mehrere Datenbankstrategien vereint: Parallele Datenbanken, In-Memory Datenbanken und ein eigenes Interface: es werden keine Relationen Schemata implementiert sondern ein einfaches, strukturiertes Datenmodell (structured storage), welches eine dynamische Kontrolle über das Datenlayout und Datenformat ermöglicht. Google BigTable ist eine Key-Value In-Memory NoSQL Datenbank und indexiert Daten durch Row Names und Column Names die auch Strings sein können. BigTable behandelt Daten als uninterpretierte Strings, obwohl die Clients oft verschiedene Formen der strukturieren und semi-strukturieren (bei XML-Daten z.B.) Daten in diese Zeichenketten serialisieren. Google BigTable läuft auf dem Google File System (GFS) und basiert auf dem Chubby Lock Service. Big Table wird bei verschiedenen Google Diensten bereits produktiv eingesetzt: Google Maps, Google Earth, MapReduce, Youtube, Google Finance, Google Analytics oder Orkut und Google Books. MapReduce ist ein Framework für niedrig-priorisierte Berechnungen für grosse Datenbestände auf Computerclustern. Ein BigTable ist vom Datenmodell her eine einfache, verteilte, persistente multidimensionale sortierte Map. Die Map ist indexiert durch einen Row Key, einen Column Key und einen Zeitstempel. Jeder Wert in der Map ist ein uninterpretiertes Array von Bytes. Wenn man annimmt, dass man eine grosse Anzahl von Webpages und den dazugehörigen Informationen für verschiedene Anwendungen speichern und verwalten will so kann man diesen "Webtable" als Google BigTable folgendermassen ablegen: URL wäre der Wert für Row Keys, die zu den Webpages gehörigen Informationen (z.B. Typos, Farbe, Hyperlinks, Schriftarten usw) die Column Names. Der Inhalt der Webseiten wird in einem Dokumentennamen CONTENT gespeichert. Diese Einträge werden je nach Zugang mit Zeitstempeln versehen. BigTable speichert Daten in lexikographischer Ordnung oder sortiert durch Row Keys ab. Die Row Breite ist dynamisch partitioniert. Jede Row Range wird als Tablet bezeichnet. BigTable unterstützt Single Row Transaktionen, allgemeine Transaktionen über Row Keys werden nicht unterstützt, Zellen können als ganzzahliger Zähler verwendet werden. Clientseitige Scripts die im Adressraum der Server laufen werden unterstützt. Die Scripts werden mit Sawzall entwickelt, eine interpretierte, prozedurale und Domänenspezifische Sprache (domain specific language (dsl)) um grosse Datenmengen zu handhaben. Sawzall wurde von Google für seine Anforderungen entwickelt und verwendet die bestehende Googleware: das Google File System, MapReduce, die Workqueue und Protocol Buffers. In der jetzigen Implementierung von Google BigTable ist es den Client Scripts von der Sawzall-basierten API nicht erlaubt auf Daten in BigTable zurück zu schreiben, aber die Sawzall-API erlaubt verschiedene Formen der Daten-Transformation, das Filtern über verschiedene Ausdrücke und die Aggregation mit einigen Operanden. Die BigTable API enthält Funktionen zur Schaffung und Löschung von Tabellen und Spaltenfamilien (gruppierte Spalten), sowie um Tabellen, Spaltenfamilien und Metadaten zu verändern. Mit Hilfe des verteilten Google File Systems werden Logdateien und Daten gespeichert. BigTable läuft in einer verteilten Maschinenpoolumgebung in der verschiedene Anwendungen laufen, so dass sich BigTable Rechen-Ressourcen mit anderen Anwendungen teilen muss. BigTable benötigt ein Cluster Managementsystem um Jobs einzulasten. Das Google SSTable Dateiformat wird intern verwendet um BigTable Daten zu speichern. BigTable verwendet einen hochverfügbaren und persistent verteilten Lock Service der Chubby genannt wurde. |
|||||
| Siehe auch: NoSQL datenbank Verteilte-Datenbank Multiversion-Concurrency-Control In-Memory-Datenbanken Google Google-Server Google-BigData Green-Grid | |||||