Esta página descreve como configurar o tempo máximo de atraso de confirmação (gravação) para otimizar a capacidade de gravação no Spanner.
Visão geral
Para garantir a consistência dos dados, o Spanner envia solicitações de gravação para todas as réplicas de votação no banco de dados. Esse processo de replicação pode ter sobrecarga computacional. Para mais informações, consulte Replicação.
As gravações otimizadas para capacidade de processamento oferecem a opção de amortizar esses cálculos ao executar um grupo de gravações em conjunto. Para isso, O Spanner introduz um pequeno atraso e coleta um grupo de gravações que precisam ser enviadas aos mesmos participantes votantes. A execução de gravações neste pode trazer melhorias substanciais de capacidade de processamento ao custo de um pouco o aumento da latência.
Comportamento padrão
Se você não definir um tempo de confirmação, o Spanner poderá definir um pequeno atraso se achar que isso vai amortizar o custo das suas gravações.
Casos de uso comuns
É possível definir manualmente o tempo de atraso das solicitações de gravação, dependendo das necessidades do aplicativo. Também é possível desativar os atrasos de confirmação para aplicativos altamente sensíveis à latência definindo o tempo máximo de atraso de confirmação como 0 ms.
Se você tiver um aplicativo tolerante à latência e quiser otimizar a capacidade de processamento, definir um tempo de confirmação mais longo melhora significativamente a capacidade de processamento, mas gera uma latência maior para cada gravação. Por exemplo, se você carregar em massa uma grande quantidade de dados, e o aplicativo não se importa com a rapidez O Spanner grava quaisquer dados individuais, então você pode definir a confirmação atrasar o tempo para um valor mais longo, como 100 ms. Recomendamos que você comece com um de 100 ms e depois ajustar para cima e para baixo até que as compensações de latência e capacidade atendam às suas necessidades. Para a maioria dos aplicativos, um valor entre 20 ms e 100 ms funciona melhor.
Caso você tenha um aplicativo sensível à latência, o Spanner também é sensíveis à latência por padrão. Se você tiver uma carga de trabalho com picos, o Spanner poderá definir um pequeno atraso. Você pode testar a configuração de 0 ms para determinar se a latência reduzida ao custo de um aumento a capacidade de processamento do aplicativo é razoável.
Definir tempos de atraso de confirmação mistos
É possível configurar diferentes tempos de atraso de confirmação em subconjuntos de suas gravações. Se você fizer isso, o Spanner usará o menor tempo de atraso configurado para o conjunto de gravações. No entanto, recomendamos escolher um único valor para a maioria dos casos de uso, porque isso resulta em um comportamento mais previsível.
Limitações
É possível definir um tempo de atraso de confirmação entre 0 e 500 ms. Como definir atrasos de confirmação mais de 500 ms resulta em erro.
Definir atraso máximo de confirmação em solicitações de confirmação
O parâmetro de atraso máximo de commit faz parte do método CommitRequest
. É possível acessar
esse método com a API RPC,
a API REST
ou usando a biblioteca de cliente do Cloud Spanner.
Go
Node.js
Python
Ruby
Monitorar a latência da solicitação de gravação
É possível monitorar o uso e a latência da CPU do Spanner com o console do Google Cloud. Quando você define um tempo de atraso maior para as solicitações de gravação, a utilização da CPU pode diminuir, enquanto a latência aumenta. Para saber mais sobre latência Solicitações do Spanner, consulte Capture e visualize a latência das solicitações da API Spanner.