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 todas as réplicas de votação no banco de dados. Esse processo de replicação pode ter o overhead 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 atraso de confirmação, o Spanner poderá definir um pequeno atraso se ele entender que vai amortizar o custo das gravações.
Casos de uso comuns
É possível definir manualmente o tempo de atraso das solicitações de gravação dependendo do às necessidades do aplicativo. Também é possível desativar atrasos de confirmação para aplicativos altamente sensível à latência definindo o tempo máximo de atraso de confirmação como 0 ms.
Se você tem um aplicativo com tolerância à latência e quer otimizar a capacidade de processamento, a definição de um tempo de atraso de confirmação maior melhora significativamente a capacidade de processamento o que 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 100 ms funciona melhor.
Se você tem um aplicativo sensível à latência, o Spanner também é sensíveis à latência por padrão. Se a carga de trabalho for muito alta, O Spanner pode 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
Você pode 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 maior parte 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
. Você pode acessar
esse método com a API RPC,
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 suas solicitações de gravação, o uso da CPU provavelmente vai aparecer e a latência aumentam. Para saber mais sobre latência Solicitações do Spanner, consulte Capture e visualize a latência das solicitações da API Spanner.