Spanner (Datenbank)
Spanner ist eine global-verteilte NewSQL-Datenbank von Google Inc.[1][2] Spanner ist der Nachfolger der Google-Datenbanken Bigtable und MegaStore.
Spanner | |
---|---|
Basisdaten | |
Entwickler | Google Inc. |
Kategorie | Datenbank |
cloud.google.com/spanner/ |
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
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, welches 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
- Cloud Spanner. No-Compromise Relational Database Service. In: Google Cloud Platform. Google, abgerufen am 21. März 2017 (englisch).
Referenzen
- Spanner. Google's Globally-Distributed Database. Google Research, September 2012, abgerufen am 21. März 2017 (englisch, Whitepaper von 2012).
- Eric Larson: Google's Spanner: Database Tech That Can Scan the Planet. In: Mashable. 21. Oktober 2012, abgerufen am 21. März 2017 (englisch).
- Spanner, TrueTime and the CAP Theorem. Google Research, 14. Februar 2017, abgerufen am 21. März 2017 (englisch).
- 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).
- Sebastian Kanthak: Spanner. Google's Distributed Database. InfoQ, 28. November 2013, abgerufen am 22. März 2017 (englisch).