Spanner (Datenbank)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Spanner
Basisdaten

Entwickler Google Inc.
Kategorie Datenbank
cloud.google.com/spanner/

Spanner ist eine global-verteilte NewSQL-Datenbank von Google Inc.[1][2] Spanner ist der Nachfolger der Google-Datenbanken Bigtable und MegaStore.

Spanner ist gemäß der Einteilung nach dem CAP-Theorem Konsistent (consistent, C) und Partitionstolerant (partition tolerant, P), besitzt allerdings auch eine sehr hohe Uptime von über 99,99958 % und ist damit de-facto auch Verfügbar (available, A).[3]

Spanner steht als kostenpflichtige Cloud-Anwendung öffentlich zur Verfügung.[4] Auch das Datenbankmanagementsystem (DBMS) Google F1, welches zuvor auf einer Google-eigenen MySQL-Variante basierte, setzt auf Spanner auf.[1]

Funktionsweise[Bearbeiten | Quelltext bearbeiten]

Spanner verwendet ein relationales Datenmodell. Allerdings muss jede Tabelle eine Index-Spalte besitzen. Physisch werden die Daten append-only als „interleaved table“ (sinngemäß: „verschachtelte Tabelle“) gespeichert. Der konkurrierende Zugriff auf Datensätze wird mittels Multiversion Concurrency Control (MVCC) realisiert. Records unterschiedlicher Tabellen werden abwechselnd in eine einzige Liste gespeichert und auf mehrere Shards verteilt.[5]

Die Zeitsynchronisierung erfolgt mittels Googles TrueTime-Infrastruktur, welche Atomuhren und hochgenaue GPS-Empfänger in jedem Rechenzentrum für die Zeitsynchronisierung verwendet und damit global gültige Zeitstempel garantiert.[1][4][5] Die Zeitstempel bestehen hierbei aus zwei Zeiten, wobei eine Zeit garantiert in der Vergangenheit und eine andere Zeit garantiert in der Zukunft liegt.[5]

Bei einem Schreibzugriff wird der zu schreibende Record im Rahmen einer Transaktion mit einem TrueTime-Zeitstempel versehen, um eine einheitliche Reihenfolge der Schreibzugriffe über alle Shards garantieren zu können. Die Schreibzugriffe werden mittels Googles Paxos-Algorithmus über mehrere Shards synchronisiert und anschließend auf einen angegebenen Zeitpunkt gewartet, zu dem der Schreibzugriff erfolgen soll, bevor der Record synchron persistiert und die Transaktion abgeschlossen wird.[5]

Auch bei Abfragen wird ein Zeitstempel mit angegeben, damit die Ergebnisse verteilter MapReduce-Abfragen konsistent sind. Hierdurch sind auch historische Sichten auf die Datenbank möglich.[3]

Weblinks[Bearbeiten | Quelltext bearbeiten]

  • Cloud Spanner. No-Compromise Relational Database Service. In: Google Cloud Platform. Google, abgerufen am 21. März 2017 (englisch).

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b c Spanner. Google's Globally-Distributed Database. Google Research, September 2012, abgerufen am 21. März 2017 (englisch, Whitepaper von 2012).
  2. Eric Larson: Google's Spanner: Database Tech That Can Scan the Planet. In: Mashable. 21. Oktober 2012, abgerufen am 21. März 2017 (englisch).
  3. a b Spanner, TrueTime and the CAP Theorem. Google Research, 14. Februar 2017, abgerufen am 21. März 2017 (englisch).
  4. a b Cade Metz: Spanner, the Google Database That Mastered Time, Is Now Open to Everyone. In: Wired. 14. Februar 2017, abgerufen am 21. März 2017 (englisch).
  5. a b c d Sebastian Kanthak: Spanner. Google's Distributed Database. InfoQ, 28. November 2013, abgerufen am 22. März 2017 (englisch).