Instâncias

Nesta página, apresentamos os conceitos de instâncias do Cloud Spanner, configurações de instâncias e nós. Também descrevemos as diferenças e as vantagens e desvantagens das instâncias regionais e multirregionais. Se não souber como a replicação funciona no Cloud Spanner, leia sobre a replicação primeiro.

Visão geral de instâncias

Para usar o Cloud Spanner, crie primeiro uma instância do Cloud Spanner no projeto do Google Cloud. Essa instância do Cloud Spanner é uma alocação de recursos utilizados pelos bancos de dados dele criados na instância.

A criação de instâncias inclui duas escolhas importantes: a configuração da instância e a contagem de nós. Essas escolhas determinam a localização e a quantidade de recursos de serviço e armazenamento da instância. Sua escolha de configuração é permanente para uma instância, mas você pode mudar a contagem de nós mais tarde, se necessário.

Configuração de instâncias

A configuração de uma instância define a localização geográfica e a replicação dos bancos de dados na instância. Ao criar uma instância, é necessário configurá-la como regional (ou seja, com todos os recursos contidos em uma única região do Google Cloud) ou multirregional (ou seja, com os recursos distribuídos em mais de uma região). Essa escolha é feita selecionando a configuração de uma instância, que determina onde seus dados serão armazenados para essa instância. As configurações regionais e multirregionais são descritas em mais detalhes abaixo.

Contagem de nós

Ao criar uma instância, além de escolher onde seus dados serão armazenados, você também precisa escolher a contagem de nós, ou o número de nós a serem alocados à instância. Sua escolha de contagem de nós determina a quantidade de recursos de serviço e armazenamento disponíveis para os bancos de dados nessa instância.

Para ilustrar a relação entre nós, réplicas e instâncias, considere o diagrama a seguir de uma configuração de instância regional.

Uma instância de quatro nós criada em uma configuração de instância regional

O diagrama representa uma instância de quatro nós, criada em uma configuração de instância regional. Cada zona no diagrama contém uma réplica completa do banco de dados. Em cada zona, a réplica do banco de dados é disponibilizada por quatro tarefas de exibição.

Uma instância de N nós tem N tarefas de exibição em cada zona da configuração da instância, em que cada zona exibe uma réplica completa do banco de dados.

Cada nó fornece até 2 TB de armazenamento. Os valores máximos de capacidade de leitura e gravação que os nós podem fornecer dependem da configuração da instância, bem como da concepção do esquema e das características do conjunto de dados. Veja mais detalhes nas seções Desempenho da configuração regional e Desempenho da configuração multirregional.

Depois de criar uma instância, é possível adicionar nós à instância posteriormente. Na maioria dos casos, também é possível remover nós. Há alguns casos em que não é possível remover nós:

  • A remoção dos nós exigiria que a instância armazenasse mais de 2 TB de dados por nó.
  • Com base nos padrões históricos de uso, o Cloud Spanner criou um grande número de divisões nos dados da instância, e o Cloud Spanner não consegue gerenciar as divisões depois da remoção dos nós.

Ao remover nós, monitore a utilização da CPU e as latências de solicitação em Monitoramento do Cloud para garantir que a utilização da CPU permaneça abaixo de 65% para instâncias regionais e 45% para cada região em instâncias multirregionais. Pode haver um aumento temporário nas latências da solicitação ao remover nós.

É possível usar o Console do Cloud, a ferramenta de linha de comando gcloud ou as bibliotecas de cliente para alterar o número de nós.

O Cloud Spanner não tem um modo de suspensão. Os nós do Cloud Spanner são recursos dedicados e, mesmo que você não esteja executando uma carga de trabalho, eles normalmente realizam trabalhos em segundo plano para otimizar e proteger seus dados.

Nós versus réplicas

Se for necessário escalonar verticalmente os recursos de serviço e armazenamento em sua instância, adicione mais nós a ela. Observe que a adição de um nó não aumenta o número de réplicas, que são fixas em determinada configuração, mas aumenta os recursos que cada réplica tem na instância. A adição de nós fornece a cada réplica mais CPU e RAM, o que aumenta a capacidade da réplica, ou seja, é possível realizar mais leituras e gravações por segundo. Efetivamente, o número de servidores do Cloud Spanner em cada uma das réplicas da instância é igual à contagem de nós dessa instância. Assim, o número total de servidores em uma instância do Cloud Spanner é o número de nós da instância multiplicado pelo número de réplicas nela.

Configurações regionais

Os serviços do Google Cloud estão disponíveis em locais da América do Norte, América do Sul, Europa, Ásia e Austrália. Se os seus usuários e serviços estão localizados em uma única região, escolha uma configuração de instância regional para ter leituras e gravações com a menor latência.

Configurações disponíveis

O Cloud Spanner oferece as seguintes configurações de instâncias regionais:

Nome da região Descrição da região
América
northamerica-northeast1 Montreal
southamerica-east1 São Paulo
us-central1 Iowa
us-east1 Carolina do Sul
us-east4 Virgínia do Norte
us-west1 Oregon
us-west2 Los Angeles
us-west3 Salt Lake City
us-west4 Las Vegas
Europa
europe-north1 Finlândia
europe-west1 Bélgica
europe-west2 Londres
europe-west3 Frankfurt
europe-west4 Países Baixos
europe-west6 Zurique
Ásia-Pacífico
asia-south1 Mumbai
asia-east1 Taiwan
asia-east2 Hong Kong
asia-northeast1 Tóquio
asia-northeast2 Osaka
asia-northeast3 Seul
asia-southeast1 Singapura
asia-southeast2 Jacarta
australia-southeast1 Sydney

Para qualquer configuração regional, o Cloud Spanner mantém três réplicas de leitura/gravação, cada uma dentro de uma zona diferente do Google Cloud naquela região. Cada réplica de leitura/gravação contém uma cópia completa do seu banco de dados operacional que pode atender a solicitações de leitura/gravação e somente leitura. O Cloud Spanner usa réplicas em diferentes zonas para que, caso ocorra uma falha em uma única zona, o banco de dados permaneça disponível.

Replicação

As configurações regionais contêm exatamente três réplicas de leitura/gravação. Conforme descrito em Replicação do Cloud Spanner, cada mutação do Cloud Spanner requer um quórum de gravação composto de uma maioria de réplicas votantes. Os quóruns de gravação são formados a partir de duas das três réplicas em configurações regionais.

Práticas recomendadas

Para um desempenho ideal, siga estas práticas recomendadas:

  • Crie um esquema que previna uso excessivo do ponto de acesso e outros problemas de desempenho.
  • Coloque os recursos de computação essenciais dentro da mesma região de sua instância do Cloud Spanner.
  • Provisione nós do Cloud Spanner suficientes para manter a utilização de CPU de alta prioridade abaixo de 65%.

Desempenho

Quando você segue as práticas recomendadas descritas acima, cada nó do Cloud Spanner pode fornecer até 10.000 consultas por segundo (QPS, na sigla em inglês) de leituras ou 2.000 QPS de gravações (gravando linhas simples a 1 KB de dados por linha).

Configurações multirregionais

Conforme descrito acima, as configurações regionais do Cloud Spanner replicam dados entre várias zonas dentro de uma única região. No entanto, se o aplicativo precisa ler dados de vários locais geográficos (por exemplo, para disponibilizar dados para usuários na América do Norte e na Ásia) ou se as suas gravações se originam em um local diferente das suas leituras (por exemplo, se você tem grandes cargas de trabalho de gravação na América do Norte e grandes cargas de trabalho de leitura na Europa), uma configuração regional pode não ser a ideal.

As configurações multirregionais permitem replicar os dados do banco de dados, não apenas em várias zonas, mas também em muitas zonas em diversas regiões, conforme definido pela configuração da instância. Essas réplicas adicionais permitem que você leia dados com baixa latência de vários locais próximos ou dentro da região na configuração. No entanto, há desvantagens, porque em uma configuração multirregional as réplicas de quórum (leitura/gravação) estão espalhadas por mais de uma região. Portanto, elas podem sofrer uma latência de rede adicional quando se comunicarem entre si para votar em gravações. Em outras palavras, as configurações multirregionais permitem que seu aplicativo tenha leituras mais rápidas em mais locais ao custo de um pequeno aumento na latência de gravação.

Configurações disponíveis

Um continente

Nome Local Regiões de leitura/gravação Regiões somente leitura Região de testemunha
asia1 Ásia Tóquio: asia-northeast1 L,2R
Osaka: asia-northeast2 2R
Nenhum Seul: asia-northeast3
eur3 Europa Bélgica: europe-west1 L,2R
Países Baixos: europe-west4 2R
Nenhum Finlândia: europe-north1
eur5 Europa Londres: europe-west2 L,2R
Bélgica: europe-west1 2R
Nenhum Países Baixos: europe-west4
nam3 América do Norte Virgínia do Norte: us-east4 L,2R
Carolina do Sul: us-east1 2R
Nenhum Iowa: us-central1
nam6 América do Norte Iowa: us-central1 L,2R
Carolina do Sul: us-east1 2R
Oregon: us-west1 1R
Los Angeles: us-west2 1R
Oklahoma: us-central2
nam10 América do Norte Iowa: us-central1 L,2R
Salt Lake City: us-west3 2R
Nenhum Oklahoma: us-central2
nam11 América do Norte Iowa: us-central1 L,2R
Carolina do Sul: us-east1 2R
Nenhum Oklahoma: us-central2
  • L: região líder padrão

  • 1R: uma réplica na região

  • 2R: 2 réplicas na região

Três continentes

Nome Locais Regiões de leitura/gravação Regiões somente leitura Região das Testemunhas
nam-eur-asia1 América do Norte
Europa
Ásia
Iowa: us-central1 L,2R
Oklahoma: us-central2 2R
Bélgica: europe-west1 2R
Taiwan: asia-east1 2R
Carolina do Sul: us-east1

Vantagens

Instâncias multirregionais oferecem estas vantagens principais:

  • Disponibilidade de 99,999%: maior do que a disponibilidade de 99,99% fornecida pelas configurações regionais do Cloud Spanner.

  • Distribuição de dados: o Cloud Spanner replica automaticamente seus dados entre regiões com garantias fortes de consistência. Isso permite que seus dados sejam armazenados onde serão utilizados, o que pode reduzir a latência e melhorar a experiência do usuário.

  • Consistência externa: mesmo que o Cloud Spanner replique em locais geograficamente distantes, ainda é possível usá-lo como se fosse um banco de dados em execução em uma única máquina. As transações têm a garantia de serem serializáveis, e a ordem das transações dentro do banco de dados é a mesma em que os clientes observam as transações que foram confirmadas. A consistência externa é uma garantia mais forte do que a "consistência forte", que é oferecida por alguns outros produtos. Saiba mais sobre essa propriedade em TrueTime e consistência externa.

Replicação

Cada configuração multirregional contém duas regiões designadas como regiões de leitura/gravação. Cada uma delas contém duas réplicas de leitura/gravação. Uma dessas regiões de leitura/gravação é designada como região líder padrão, o que significa que ela contém as réplicas líderes de seu banco de dados. O Cloud Spanner também coloca uma réplica testemunha em uma terceira região, chamada de região testemunha.

Cada vez que o cliente emite uma mutação para seu banco de dados, forma-se um quórum de gravação, que consiste em uma das réplicas da região líder padrão e quaisquer duas das quatro réplicas votantes adicionais. O quórum pode ser formado por réplicas de duas ou três das regiões que compõem suas configurações, dependendo de quais outras réplicas participam da votação. Além dessas cinco réplicas votantes, a configuração também pode conter réplicas somente leitura para atender a leituras de baixa latência. As regiões que contêm réplicas somente leitura são chamadas de regiões somente leitura.

Em geral, as regiões votantes em uma configuração multirregional são colocadas geograficamente próximas (uma distância inferior a 1.600 km) para formar um quórum de baixa latência que permite gravações rápidas (saiba mais). No entanto, as regiões ainda estão suficientemente distantes, geralmente algumas centenas de quilômetros, para evitar falhas coordenadas.

Nas próximas seções, descrevemos cada um desses tipos de região mais detalhadamente e fornecemos orientações sobre como distribuir suas cargas de trabalho de leitura e gravação conforme o caso.

Tipos de região

Regiões de leitura/gravação

Conforme descrito acima, cada configuração multirregional contém duas regiões de leitura/gravação, cada uma com duas réplicas de leitura/gravação. Uma dessas regiões de leitura/gravação é designada como a região líder padrão. Um líder será escolhido entre as réplicas na região líder padrão de cada divisão. Caso ocorra uma falha na réplica líder, a outra réplica na região líder padrão assume automaticamente a liderança. Na realidade, as líderes executam verificações de integridade em si mesmas e podem desistir da liderança preventivamente se detectarem que não estão íntegras. Em condições normais, quando as réplicas na região líder padrão estão disponíveis, a região líder padrão contém as líderes e, portanto, é onde as gravações são processadas primeiro.

A segunda região de leitura/gravação contém as réplicas adicionais que estão qualificadas para serem líderes. No caso improvável de perda de todas as réplicas na região líder padrão, novas réplicas líderes são escolhidas a partir da segunda região de leitura/gravação.

Regiões somente leitura

As regiões somente leitura contêm réplicas somente leitura que podem disponibilizar leituras de baixa latência a clientes que estejam fora das regiões de leitura/gravação.

Regiões testemunhas

Uma região testemunha contém uma réplica testemunha, que é usada para votar em gravações. As testemunhas se tornam importantes no raro caso de as regiões de leitura/gravação ficarem indisponíveis.

Práticas recomendadas

Para um desempenho ideal, siga estas práticas recomendadas:

  • Crie um esquema que previna uso excessivo do ponto de acesso e outros problemas de desempenho.
  • Coloque os recursos de computação para cargas de trabalho de gravação pesadas dentro ou próximos da região líder padrão para conseguir a latência de gravação ideal.
  • Use uma inatividade de pelo menos 15 segundos para ter o desempenho de leitura ideal fora da região líder padrão.
  • Coloque os recursos de computação essenciais em, no mínimo, duas regiões para evitar a dependência de uma única região para suas cargas de trabalho. Uma boa opção é colocá-los ao lado das duas regiões de leitura e gravação diferentes para que qualquer interrupção de região única não afete todos os aplicativos.
  • Provisione nós do Cloud Spanner suficientes para manter a utilização total de CPU de alta prioridade abaixo de 45% em cada região.

Desempenho

Cada configuração do Cloud Spanner tem características de desempenho ligeiramente diferentes dependendo da topologia de replicação.

Quando você segue as melhores práticas descritas acima, cada nó do Cloud Spanner pode fornecer o seguinte desempenho aproximado:

Configuração multirregional Pico de leitura aproximado (QPS por região) Pico de gravação aproximado (total de QPS)
asia1 7.000 1.800
eur3 7.000 1.800
eur5 7.000 1.800
nam3 7.000 1.800
nam6 7.000 em us-central1 e us-east1
3.500 em us-west1 e us-west2
1.800
nam10 7.000 1.800
nam11 7.000 1.800
nam-eur-asia1 7.000 1.000

A orientação de leitura é fornecida por região, porque as leituras podem ser disponibilizadas em qualquer lugar, enquanto a orientação de gravação se refere a toda a configuração. Na orientação de gravação, presume-se que você esteja gravando linhas simples a 1 KB de dados por linha.

Vantagens e desvantagens: configurações regionais versus multirregionais

Configuração Disponibilidade Latência Custo Localidade dos dados
Regional 99,99% Menores latências de gravação dentro da região. Custo mais baixo, consulte a tabela de preços. Permite a governança de dados geográficos.
Multirregional 99,999% Menores latências de leitura de várias regiões geográficas. Custo mais elevado, consulte a tabela de preços. Distribui dados em várias regiões dentro da configuração.

A seguir