Spanner (banco de dados) - Spanner (database)
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.