Spanner es un servicio de almacenamiento y gestión de bases de datos SQL distribuido desarrollado por Google . [1] Proporciona funciones como transacciones globales, lecturas muy consistentes y replicación y conmutación por error automáticas en varios sitios. Spanner se utiliza en Google F1 , la base de datos para su negocio de publicidad Google Ads , así como en Gmail y Google Photos. [2] [3]
Características
Spanner almacena grandes cantidades de datos estructurados mutables. Spanner permite a los usuarios realizar consultas arbitrarias mediante SQL con datos relacionales, manteniendo al mismo tiempo una gran consistencia y alta disponibilidad para esos datos con replicación sincrónica.
Características principales de Spanner:
Las transacciones se pueden aplicar en filas, columnas, tablas y bases de datos dentro de un universo Spanner.
Los clientes pueden controlar la replicación y la ubicación de los datos mediante la replicación automática de múltiples sitios y la conmutación por error.
La replicación es sincrónica y fuertemente consistente.
Las lecturas son muy consistentes y los datos están versionados para permitir lecturas obsoletas: los clientes pueden leer versiones anteriores de los datos, sujetos a ventanas de recolección de basura.
Admite una interfaz SQL nativa para leer y escribir datos.
La capacidad SQL de Spanner se agregó en 2017 y se documentó en un artículo de SIGMOD 2017. [5] Estuvo disponible como parte de Google Cloud Platform en 2017, bajo el nombre "Cloud Spanner". [6]
Arquitectura
Spanner utiliza el algoritmo Paxos como parte de su operación para fragmentar (particionar) datos en cientos de servidores. [1] Hace un uso intensivo de la sincronización de relojes asistida por hardware utilizando relojes GPS y relojes atómicos para garantizar la coherencia global . [1] TrueTime es la marca de la infraestructura de nube distribuida de Google, que proporciona a Spanner la capacidad de generar marcas de tiempo que aumentan de forma monótona en centros de datos de todo el mundo. [7]
^ "Anuncio de actualizaciones de rendimiento de precios de Cloud Spanner".
^ Clark, Jack (18 de septiembre de 2012). "Google revela Spanner, la tecnología de base de datos que puede abarcar todo el planeta". ZDNet . Consultado el 4 de agosto de 2021 .
^ Spanner: Cómo convertirse en un sistema SQL. 9 de mayo de 2017. págs. 331–343. doi :10.1145/3035918.3056103. ISBN9781450341974.S2CID3055672 .
^ Srivastava, Deepti (14 de febrero de 2017). «Presentación de Cloud Spanner: un servicio de base de datos global para aplicaciones de misión crítica». Blog de Google Cloud . Consultado el 4 de agosto de 2021 .
^ "Cloud Spanner: TrueTime y consistencia externa". Google Cloud . Consultado el 24 de noviembre de 2020 .
^ Shute et al. 2012, pág. 19: 'Resumen: hemos trasladado un conjunto de aplicaciones grande y crítico de MySQL a F1'.
Bibliografía
Corbett, James C; Dean, Jeffrey ; Epstein, Michael; Fikes, Andrew; Frost, Christopher; Furman, JJ; Ghemawat, Sanjay ; Gubarev, Andrey; Heiser, Christopher; Hochschild, Peter; Hsieh, Wilson; Kanthak, Sebastian; Kogan, Eugene; Li, Hongyi; Lloyd, Alexander; Melnik, Sergey; Mwaura, David; Nagle, David; Quinlan, Sean; Rao, Rajesh; Rolig, Lindsay; Saito, Yasushi; Szymaniak, Michal; Taylor, Christopher; Wang, Ruth; Woodford, Dale (2012). Spanner: Base de datos distribuida globalmente de Google (PDF) . 10º Simposio USENIX sobre diseño e implementación de sistemas operativos (OSDI'12). Hollywood, CA . Consultado el 18 de septiembre de 2012 .{{cite conference}}: CS1 maint: referencia duplicada predeterminada ( enlace ).
Fecha, Christopher 'Chris' J (2004), "6. Relaciones, Parte II. El modelo relacional", Introducción a los sistemas de bases de datos (8.ª ed.), Addison Wesley, ISBN 978-0-32119784-9.
Shute, Jeffrey 'Jeff'; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin 'Ben'; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), "F1: el RDBMS distribuido tolerante a fallos que respalda el negocio publicitario de Google", Investigación (presentación), SIGMOD{{citation}}: CS1 maint: location missing publisher (link).
Shute, Jeffrey 'Jeff'; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin 'Ben'; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Rae, Ian; Apte, Himani; Littlefield, Kyle; Cieslewicz, John (2013), "F1: una base de datos SQL distribuida que escala", Investigación (presentación), Conferencia internacional sobre bases de datos muy grandes{{citation}}: CS1 maint: location missing publisher (link).
Lectura adicional
Clark, Jack (30 de agosto de 2013). "Google vuelve al futuro con la base de datos SQL F1". www.theregister.com .