Spanner | |
---|---|
Basisdaten | |
Entwickler | Google Inc. |
Kategorie | Datenbank |
cloud.google.com/spanner/ |
Spanner ist eine global-verteilte NewSQL-Datenbank von Google Inc. 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).
Spanner steht als kostenpflichtige Cloud-Anwendung öffentlich zur Verfügung. Auch das Datenbankmanagementsystem (DBMS) Google F1, welches zuvor auf einer Google-eigenen MySQL-Variante basierte, setzt auf Spanner auf.
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.
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. Die Zeitstempel bestehen hierbei aus zwei Zeiten, wobei eine Zeit garantiert in der Vergangenheit und eine andere Zeit garantiert in der Zukunft liegt.
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.
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.
Weblinks
- Cloud Spanner. No-Compromise Relational Database Service. In: Google Cloud Platform. Google, abgerufen am 21. März 2017 (englisch).
Einzelnachweise
- 1 2 3 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).
- 1 2 Spanner, TrueTime and the CAP Theorem. Google Research, 14. Februar 2017, abgerufen am 21. März 2017 (englisch).
- 1 2 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).
- 1 2 3 4 Sebastian Kanthak: Spanner. Google's Distributed Database. InfoQ, 28. November 2013, abgerufen am 22. März 2017 (englisch).