Spanner
Spanner és un servei d'emmagatzematge i gestió de bases de dades SQL distribuïdes desenvolupat per Google.[1] Proporciona funcions com ara transaccions globals, lectures molt consistents, replicació automàtica de diversos llocs i migració per error. Spanner s'utilitza a Google F1, la base de dades del seu negoci publicitari Google Ads.[2]
Característiques
[modifica]Spanner emmagatzema grans quantitats de dades estructurades mutables. Spanner permet als usuaris realitzar consultes arbitràries mitjançant SQL amb dades relacionals, mantenint una gran consistència i una alta disponibilitat per a aquestes dades amb rèplica síncrona.
Característiques principals de Spanner:
- Les transaccions poden ser aplicades a través de files, columnes, taules i bases de dades, sense sortir de l'univers Spanner.
- Els clients poden controlar la replicació i la col·locació de les dades arreu de diferents llocs automàticament, gràcies a la rèplica i la recuperació després d'una fallada.
- La replicació és sincrònica i fortament consistent.
- Les lectures són molt consistents i les dades són versionades per permetre lectures desactualitzades: els clients poden llegir versions anteriors de dades, depenent de finestres d'escombrat de memòria.
- Suporta una interfície SQL nativa per llegir i escriure dades.
Història
[modifica]Spanner fou descrita per primera vegada el 2012 per als centres de dades interns de Google.[3]
El suport a SQL fou afegit el 2017 i documentat al SIGMOD 2017.[4] Esdevingué part de Google Cloud Platform el 2017, sota el nom de "Cloud Spanner".[5]
Arquitectura
[modifica]Spanner utilitza l'algorisme de Paxos com a part de la seva operació per dividir (particionar) dades en fins a centenars de servidors.[1] Fa un gran ús de la sincronització del rellotge assistida per maquinari utilitzant rellotges GPS i rellotges atòmics per garantir la consistència global.[1] TrueTime és la marca de la infraestructura de núvol distribuïda de Google, que proporciona a Spanner la capacitat de generar claus de temps úniques i incrementals als centres de dades de tot el món.[6]
El sistema de gestió de bases de dades (DBMS) F1 SQL de Google està construït sobre Spanner,[2] substituint la variant MySQL personalitzada de Google.[7]
Referències
[modifica]- ↑ 1,0 1,1 1,2 Corbett et al., 2012.
- ↑ 2,0 2,1 Shute et al., 2012.
- ↑ Clark, Jack. «Google reveals Spanner, the database tech that can span the planet». ZDNet, 18-09-2012. [Consulta: 10 maig 2023].
- ↑ «Spanner: Becoming a SQL System».
- ↑ Srivastava, Deepti. «Introducing Cloud Spanner: a global database service for mission-critical applications». Google Cloud Blog. [Consulta: 10 maig 2023].[Enllaç no actiu]
- ↑ «Cloud Spanner: TrueTime and external consistency» (en anglès). Google Cloud. [Consulta: 10 maig 2023].[Enllaç no actiu]
- ↑ Shute et al., 2012, p. 19.
Bibliografia
[modifica]- Corbett, James C; Dean, Jeffrey & Epstein, Michael et al., Spanner: Google's Globally-Distributed Database, <http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.cat/en//archive/spanner-osdi2012.pdf>. Consulta: 18 setembre 2012
- Date, Christopher ‘Chris’ J (2004), "6. Relations, Part II. The Relational Model", An Introduction to Database Systems (8th ed.), Addison Wesley, ISBN 978-0-32119784-9, <https://archive.org/details/introductiontoda0000date>
- Shute, Jeffrey ‘Jeff’; Oancea, Mircea & Ellner, Stephan et al. (2012), "F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", Research, SIGMOD, <http://research.google.cat/pubs/pub38125.html>[Enllaç no actiu]
- Shute, Jeffrey ‘Jeff’; Oancea, Mircea & Ellner, Stephan et al. (2013), "F1: A Distributed SQL Database That Scales", Research, International Conference on Very Large Data Bases, <https://research.google/pubs/pub41344/>.