Esta página descreve como configurar o tempo máximo de confirmação (escrita) para otimizar a taxa de transferência de escrita no Spanner.
Vista geral
Para garantir a consistência dos dados, o Spanner envia pedidos de escrita para todas as réplicas de votação na base de dados. Este processo de replicação pode ter uma sobrecarga computacional. Para mais informações, consulte o artigo Replicação.
As escritas otimizadas para débito oferecem a opção de amortizar estes custos de computação executando um grupo de escritas em conjunto. Para o fazer, o Spanner introduz um pequeno atraso e recolhe um grupo de gravações que têm de ser enviadas aos mesmos participantes na votação. A execução de escritas desta forma pode proporcionar melhorias significativas na taxa de transferência ao custo de uma latência ligeiramente aumentada.
Comportamento predefinido
Se não definir um tempo de atraso de confirmação, o Spanner pode definir um pequeno atraso por si se considerar que isso vai amortizar o custo das suas gravações.
Exemplos de utilização comuns
Pode definir manualmente o tempo de atraso dos seus pedidos de gravação consoante as necessidades da sua aplicação. Também pode desativar os atrasos de confirmação para aplicações altamente sensíveis à latência definindo o tempo máximo de atraso de confirmação como 0 ms.
Se tiver uma aplicação tolerante à latência e quiser otimizar a taxa de transferência, a definição de um tempo de atraso de confirmação mais longo melhora significativamente a taxa de transferência, ao mesmo tempo que incorre numa latência mais elevada para cada gravação. Por exemplo, se estiver a carregar em massa uma grande quantidade de dados e a aplicação não se importar com a rapidez com que o Spanner escreve dados individuais, pode definir o tempo de atraso de confirmação para um valor mais longo, como 100 ms. Recomendamos que comece com um valor de 100 ms e, em seguida, ajuste-o para cima e para baixo até que as compensações de latência e débito satisfaçam as suas necessidades. Para a maioria das aplicações, um valor entre 20 ms e 100 ms funciona melhor.
Se tiver uma aplicação sensível à latência, o Spanner também é sensível à latência por predefinição. Se tiver uma carga de trabalho instável, o Spanner pode definir um pequeno atraso. Pode experimentar definir um valor de 0 ms para determinar se a latência reduzida ao custo de um débito aumentado é razoável para a sua aplicação.
Defina tempos de atraso de confirmação mistos
Pode configurar diferentes tempos de atraso de confirmação máximos em subconjuntos das suas gravações. Se o fizer, o Spanner usa o tempo de atraso mais curto configurado para o conjunto de escritas. No entanto, recomendamos que escolha um único valor para a maioria dos casos de utilização, uma vez que isto resulta num comportamento mais previsível.
Limitações
Pode definir um tempo de atraso de confirmação entre 0 e 500 ms. Se definir atrasos de confirmação superiores a 500 ms, ocorre um erro.
Defina o atraso máximo de confirmação em pedidos de confirmação
O parâmetro de atraso de confirmação máximo faz parte do método CommitRequest
. Pode aceder a este método com a API RPC,
API REST ou através da biblioteca cliente do Cloud Spanner.
C#
Go
Java
Node.js
Python
Ruby
Monitorize a latência do pedido de gravação
Pode monitorizar a utilização da CPU e a latência do Spanner através da Google Cloud consola. Quando define um tempo de atraso mais longo para os seus pedidos de gravação, espere ver uma potencial diminuição da utilização da CPU, enquanto a latência aumenta. Para saber mais sobre a latência nos pedidos do Spanner, consulte o artigo Capture e visualize a latência dos pedidos da API Spanner.