Configurações regionais e multirregionais

Nesta página, descrevemos as configurações de instância e os dois tipos de configuração de instância que o Cloud Spanner oferece: configurações regionais e configurações multirregionais. Também descrevemos as diferenças e as vantagens e desvantagens das configurações regionais e multirregionais.

Configurações da instância

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 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.

Para alterar a configuração da instância, siga as instruções em Etapas para mover uma instância. Para informações gerais sobre como mover uma instância, consulte Como mover uma instância para uma configuração diferente.

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 Ícone de folha Baixo CO2
northamerica-northeast2 Toronto Ícone de folha Baixo CO2
southamerica-east1 São Paulo Ícone de folha Baixo CO2
southamerica-west1 Santiago
us-central1 Iowa Ícone de folha CO2 baixo
us-east1 Carolina do Sul
us-east4 Virgínia do Norte
us-west1 Oregon Ícone de folha Baixo CO2
us-west2 Los Angeles
us-west3 Salt Lake City
us-west4 Las Vegas
Europa
europe-central2 Varsóvia
europe-north1 Finlândia Ícone de folha Baixo CO2
europe-west1 Bélgica Ícone de folha Baixo CO2
europe-west2 Londres
europe-west3 Frankfurt
europe-west4 Países Baixos
europe-west6 Zurique Ícone de folha CO 2 baixo
Ásia-Pacífico
asia-east1 Taiwan
asia-east2 Hong Kong
asia-northeast1 Tóquio
asia-northeast2 Osaka
asia-northeast3 Seul
asia-south1 Mumbai
asia-south2 Délhi
asia-southeast1 Singapura
asia-southeast2 Jacarta
australia-southeast1 Sydney
australia-southeast2 Melbourne

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, 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.
  • colocar recursos de computação essenciais dentro da mesma região de sua instância do Cloud Spanner;
  • Provisione capacidade de computação suficiente para manter a utilização total da CPU de alta prioridade abaixo de 65%.

Desempenho

Quando você segue as práticas recomendadas descritas acima, cada 1.000 unidades de processamento (1 nó) de capacidade de computação podem fornecer até 10.000 consultas por segundo (QPS) de leituras ou 2.000 QPS de gravações (gravando linhas únicas 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
eur6 Europa Países Baixos: europe-west4 L,2R
Frankfurt: europe-west3 2R
Nenhum Zurique: europe-west6
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
nam7 América do Norte Iowa: us-central1 L,2R
Virgína do Norte: us-east4 2R
Nenhum Oklahoma: us-central2
nam8 América do Norte Los Angeles: us-west2 L,2R
Oregon: us-west1 2R
Nenhum Salt Lake City: us-west3
nam9 América do Norte Virgínia do Norte: us-east4 L,2R
Iowa: us-central1 2R
Oregon: us-west1 2R Carolina do Sul: us-east1
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
nam12 América do Norte Iowa: us-central1 L,2R
Virgína do Norte: us-east4 2R
Oregon: us-west1 2R 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.

É possível configurar a região líder de um banco de dados seguindo as instruções em Como alterar a região líder de um banco de dados. Para informações gerais sobre como configurar a região líder, consulte Configuração da região líder padrã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 capacidade de computação suficiente para manter a utilização total da 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.

Ao seguir as práticas recomendadas descritas acima, cada 1.000 unidades de processamento (1 nó) de capacidade de computação podem 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
eur6 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]
1.800
nam7 7.000 1.800
nam8 7.000 1.800
nam9 7.000 1.800
nam10 7.000 1.800
nam11 7.000 1.800
nam12 7.000 1.800
nam-eur-asia1 7.000 1.000
  • [1]: us-west1 e us-west2 fornecem apenas metade do desempenho de QPS porque contêm uma réplica por região em vez de duas.

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.

Como mover uma instância para uma configuração diferente

É possível mover sua instância de qualquer configuração para outra configuração da instância, incluindo configurações regionais e multirregionais.

Mover a instância não causa inatividade, e o Cloud Spanner continua a fornecer as garantias de transação comuns durante um movimento, incluindo consistência forte.

Etapas para mover uma instância

  1. Acesse a página Instâncias do Spanner no Console do Cloud.

    Acessar a página "Instâncias"

  2. Clique no nome da instância que você quer mexer.

    O Console do Cloud exibe a página Visão geral da instância.

  3. Para programar a migração para uma nova configuração de instância, clique em entrar em contato com o Google e preencha o formulário de Solicitação de migração de instância em tempo real (Pré-lançamento) do Cloud Spanner.

    • Você precisa ter a permissão spanner.instances.update para solicitar uma transferência para uma nova configuração de instância.
    • Após o envio do formulário, o Google entrará em contato para agendar a alteração da configuração da instância.

Limitações para mover uma instância

  • Só é possível mover uma instância por vez em um projeto.
  • Mover uma instância não altera o nome da instância, o ID ou o ID do projeto.
  • Não faça alterações na instância durante a migração. Isso inclui a alteração da contagem de nós da instância, a alteração de esquemas de banco de dados, a criação ou a eliminação de bancos de dados ou a criação ou exclusão de backups.
  • Os backups do Cloud Spanner são específicos de uma configuração de instância e não são incluídos ao mover uma instância. Depois de mover uma instância para uma nova configuração de instância, todos os backups na configuração da instância antiga serão excluídos.
  • No momento, não é possível alterar a configuração de uma instância que tenha bancos de dados ativados para CMEK.

Considerações sobre desempenho ao mover uma instância

Quando uma instância está sendo movida, ela tem latências de leitura/gravação maiores e uma taxa de cancelamento de transação maior.

Depois de iniciadas, a maioria das migrações deve ser concluída em 12 horas. Algumas migrações podem demorar mais tempo, dependendo do tamanho e de outras características da instância. O Google entrará em contato com uma estimativa de tempo de migração específica para a instância a ser migrada.

Todos os bancos de dados na instância são migrados ao mesmo tempo. Como os aplicativos cliente podem fazer várias chamadas sequenciais para o Cloud Spanner, o aumento na latência de cauda do aplicativo pode ser maior do que o aumento na latência do Cloud Spanner.

Após a migração de uma instância, o desempenho dela varia de acordo com os detalhes da configuração. Por exemplo, as configurações multirregionais geralmente têm mais latência de gravação e menos latência de leitura do que as configurações regionais.

Como configurar a região líder padrão

É recomendável alterar o local da região líder padrão do banco de dados para que fique mais próximo de conectar clientes e reduzir a latência do aplicativo.

É possível alterar a região líder de qualquer instância do Cloud Spanner que use uma configuração multirregional. Para instruções sobre como alterar o local da região líder, consulte Como alterar a região líder de um banco de dados. As únicas regiões qualificadas para se tornarem a região líder padrão do banco de dados são as regiões de leitura e gravação na configuração multirregional.

A região líder é responsável por todas as gravações do banco de dados. Portanto, se a maior parte do seu tráfego é proveniente de uma região geográfica, é recomendável movê-la para essa região a fim de reduzir a latência. Atualizar a região líder padrão é barato e não envolve transferências de dados. O novo valor leva alguns minutos para entrar em vigor.

Alterar a região líder padrão é uma mudança de esquema, que usa uma operação de longa duração. Se necessário, é possível Receber o status da operação de longa duração.

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