Nyckel (databas)
Spanner är en distribuerad SQL- databashanterings- och lagringstjänst utvecklad av Google . Den tillhandahåller funktioner som globala transaktioner, starkt konsekventa läsningar och automatisk replikering och failover på flera platser. Spanner används i Google F1 , databasen för dess reklamverksamhet Google Ads .
Funktioner
Spanner lagrar stora mängder föränderlig strukturerad data. Spanner tillåter användare att utföra godtyckliga frågor med SQL med relationsdata samtidigt som de bibehåller stark konsistens och hög tillgänglighet för dessa data med synkron replikering.
Nyckelfunktioner hos Spanner:
- Transaktioner kan tillämpas över rader, kolumner, tabeller och databaser inom ett Spanner-universum.
- Klienter kan kontrollera replikeringen och placeringen av data med hjälp av automatisk multi-site replikering och failover.
- Replikeringen är synkron och starkt konsekvent.
- Läsningarna är mycket konsekventa och data är versionsifierade för att möjliggöra inaktuella läsningar: klienter kan läsa tidigare versioner av data, med förbehåll för skräpinsamlingsfönster.
- Stöder ett inbyggt SQL-gränssnitt för att läsa och skriva data.
Historia
Spanner beskrevs första gången 2012 för Googles interna datacenter .
Spanners SQL-kapacitet lades till 2017 och dokumenterades i ett SIGMOD 2017-dokument. Den blev tillgänglig som en del av Google Cloud Platform 2017, under namnet "Cloud Spanner".
Arkitektur
Spanner använder Paxos-algoritmen som en del av sin verksamhet för att skära (partitionera) data över upp till hundratals servrar. Den använder sig hårt av hårdvaruassisterad klocksynkronisering med GPS-klockor och atomur för att säkerställa global konsistens . TrueTime är varumärket för Googles distribuerade molninfrastruktur, som ger Spanner möjligheten att generera monotont ökande tidsstämplar i datacenter runt om i världen.
Googles F1 SQL- databashanteringssystem (DBMS) är byggt ovanpå Spanner och ersätter Googles anpassade MySQL- variant.
Bibliografi
- 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, "Spanner: Google's Globally-Distributed Database" (PDF) , Proceedings of OSDI 2012 , hämtad 18 september 2012 .
- Date, Christopher 'Chris' J (2004), "6. Relations, Del II. The Relational Model", An Introduction to Database Systems (8:e upplagan), Addison Wesley, ISBN 978-0-32119784-9 .
- Shute, Jeffrey 'Jeff'; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin 'Ben'; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Tchad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), "F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", Research (presentation), SIGMOD .
- Shute, Jeffrey 'Jeff'; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin 'Ben'; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Tchad; Rae, Ian; Apte, Himani; Littlefield, Kyle; Cieslewicz, John (2013), "F1: A Distributed SQL Database That Scales", Research (presentation), International Conference on Very Large Data Bases .