Aquecer o banco de dados antes do lançamento do aplicativo

Antes de lançar um aplicativo, recomendamos que você aqueça seu banco de dados usando cargas de dados de teste para aproveitar os recursos de carregamento em paralelo do Spanner.

O Spanner é um banco de dados distribuído, o que significa que, à medida que seu banco de dados cresce, o Spanner divide o espaço de chave dos dados em blocos chamados divisões. Cada divisão é um intervalo de linhas que contém um subconjunto da sua tabela. À medida que o Spanner divide os dados com base na carga e no tamanho, ele move dinamicamente divisões individuais de maneira independente e atribui as divisões a diferentes recursos do servidor para equilibrar a carga geral no banco de dados.

Quando você insere dados inicialmente em um banco de dados vazio, o Spanner grava os dados em uma única divisão. O banco de dados ainda está em um estado "frio". À medida que você insere mais dados, o Spanner começa a dividi-los para reequilibrar a carga entre outros recursos do servidor disponíveis. Agora o Spanner está em um estado "quente" com divisões entre os recursos do servidor disponíveis para maximizar o paralelismo e melhorar o desempenho.

Como prática recomendada, inicie seu aplicativo quando o Spanner estiver em um estado quente, com divisões já criadas e equilibradas entre os recursos do servidor. Para aquecer o banco de dados e preparar os carregamentos de dados de teste, siga estas etapas:

  1. Verifique se as chaves primárias geradas para os carregamentos de dados de teste estão no mesmo espaço de chaves e têm as mesmas propriedades de distribuição que as chaves que você está usando para o tráfego de produção.
  2. Execute um teste de carga no máximo dois dias antes do lançamento. Execute o teste de carga por pelo menos uma hora no pico de carga esperado. O teste de carga faz com que o Spanner crie mais divisões devido à divisão baseada em carga.
  3. Após a conclusão do teste de carga, é possível excluir as linhas geradas pelo teste de carga de suas tabelas, mas não as exclua. Isso mantém as divisões disponíveis para sua janela de lançamento.