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 desvantagens entre instâncias regionais e multirregionais. Se você não está familiarizado com o funcionamento da replicação no Cloud Spanner, leia o artigo Replicação primeiro.

Consulte Como criar e gerenciar instâncias para saber como criar, listar, editar e excluir instâncias.

Visão geral de instâncias

Para usar o Cloud Spanner, o primeiro passo é criar uma instância dele em seu projeto do Google Cloud Platform. 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 nessa 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 GCP) 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

Além de escolher onde seus dados serão armazenados ao criar uma instância, também é necessário escolher a contagem de nós, ou o número de nós que serão alocados para essa 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.

Cada nó fornece até 2 TiB 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, você pode alterar o número de nós para a instância mais tarde. É possível usar a página Cloud Spanner no Console do Google Cloud Platform ou a ferramenta de linha de comando gcloud 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.

Comparação entre nós e réplicas

Se for necessário expandir 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 Platform 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 estiverem localizados em uma única região, escolha uma configuração de instância regional para realizar 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éricas
northamerica-northeast1 Montreal
us-central1 Iowa
us-east1 Carolina do Sul
us-east4 Virgínia do Norte
us-west1 Oregon
us-west2 Los Angeles
Europa
europe-north1 Finlândia
europe-west1 Bélgica
europe-west2 Londres
europe-west4 Países Baixos
Ásia-Pacífico
asia-south1 Mumbai
asia-east1 Taiwan
asia-east2 Hong Kong
asia-northeast1 Tóquio
asia-southeast1 Singapura
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 Platform nessa 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, cada uma com capacidade de voto.

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, recomendamos:

  • seguir as Práticas recomendadas para concepção de esquemas;
  • colocar recursos de computação essenciais dentro da mesma região de sua instância do Cloud Spanner;
  • provisionar nós do Cloud Spanner suficientes para manter a utilização geral da CPU abaixo de 75%.

Desempenho

Quando as práticas recomendadas descritas acima são seguidas, 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 da configuração Localização da configuração Região líder padrão Região adicional de leitura/gravação Regiões somente leitura
nam3 América do Norte us-east4 us-east1 Nenhuma
nam6 América do Norte us-central1 us-east1 us-west1
us-west2
eur3 Europa europe-west1 europe-west4 Nenhuma

Três continentes

Nome da configuração Localizações da configuração Região líder padrão Região adicional de leitura/gravação Regiões somente leitura
nam-eur-asia1 América do Norte, Europa e Ásia us-central1 us-central2
(Oklahoma: região privada do GCP)
europe-west1
asia-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. Consulte Por que usar réplicas somente leitura e testemunhas? para mais informações. 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 em que as réplicas líderes são colocadas. Em condições normais, quando todas as réplicas 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. Caso ocorra uma falha na liderança, outras réplicas na região líder padrão assumem a liderança automaticamente. 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.

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 da 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, recomendamos:

  • seguir as Práticas recomendadas para a concepção de esquemas;
  • colocar 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 a latência de gravação ideal;
  • usar uma inatividade de pelo menos 15 segundos para o desempenho de leitura ideal fora da região líder padrão;
  • colocar 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;
  • provisionar nós do Cloud Spanner suficientes para manter a utilização geral da CPU 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 as práticas recomendadas descritas acima são seguidas, 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)
nam3 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.

Desvantagens: comparação entre configurações regionais e 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.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Spanner