Spanner (banco de dados) - Spanner (database)

Estande do Cloud Spanner no Google Cloud Summit

O Spanner é um serviço de gerenciamento e armazenamento de banco de dados SQL distribuído desenvolvido pelo Google . Ele fornece recursos como transações globais, leituras fortemente consistentes e replicação e failover automáticos em vários locais. O Spanner é usado no Google F1 , o banco de dados de sua empresa de publicidade Google Ads .

Recursos

O Spanner armazena grandes quantidades de dados estruturados mutáveis. O Spanner permite que os usuários executem consultas arbitrárias usando SQL com dados relacionais, mantendo a consistência forte e alta disponibilidade para esses dados com replicação síncrona.

Principais recursos do Spanner:

  • As transações podem ser aplicadas em linhas, colunas, tabelas e bancos de dados em um universo Spanner.
  • Os clientes podem controlar a replicação e o posicionamento dos dados usando replicação e failover multissite automáticos.
  • A replicação é síncrona e fortemente consistente.
  • As leituras são fortemente consistentes e os dados são versionados para permitir leituras obsoletas: os clientes podem ler versões anteriores dos dados, sujeitos a janelas de coleta de lixo.
  • Suporta uma interface SQL nativa para leitura e gravação de dados.

História

O Spanner foi descrito pela primeira vez em 2012 para data centers internos do Google .

O recurso SQL do Spanner foi adicionado em 2017 e documentado em um artigo SIGMOD 2017. Ele foi disponibilizado como parte do Google Cloud Platform em 2017, com o nome de "Cloud Spanner".

Arquitetura

O Spanner usa o algoritmo Paxos como parte de sua operação para fragmentar (particionar) dados em até centenas de servidores. Ele faz uso intenso de sincronização de relógio assistida por hardware usando relógios GPS e relógios atômicos para garantir consistência global . TrueTime é o nome da marca para a infraestrutura em nuvem distribuída do Google, que fornece ao Spanner a capacidade de gerar registros de data e hora monotonicamente crescentes em datacenters em todo o mundo.

O sistema de gerenciamento de banco de dados F1 SQL do Google (DBMS) é baseado no Spanner, substituindo a variante MySQL personalizada do Google .

Referências

Bibliografia

  • 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 , Google , recuperado em 18 de setembro de 2012.
  • Date, Christopher 'Chris' J (2004), "6. Relações, Parte II. O Modelo Relacional", Uma Introdução aos Sistemas de Banco de Dados (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 - the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", Pesquisa (apresentação), SIGMOD : Google.
  • 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: A Distributed SQL Database That Scales", Research (apresentação), International Conference on Very Large Data Bases : Google.

links externos