Sobre os pontos de latência em uma solicitação do Cloud Spanner

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, apresentamos uma visão geral dos componentes de alto nível envolvidos em uma solicitação do Cloud Spanner e como cada componente pode afetar a latência.

Sobre as solicitações da API Spanner

Os componentes de alto nível usados para fazer uma solicitação da API Spanner incluem:

  • As bibliotecas de cliente do Spanner, que fornecem uma camada de abstração sobre o gRPC, e processam detalhes de comunicação do servidor, como gerenciamento de sessão, transações e novas tentativas.

  • O Google Front End (GFE), que é um serviço de infraestrutura comum a todos os serviços do Google Cloud, incluindo o Spanner. O GFE verifica se todas as conexões do Transport Layer Security (TLS) são interrompidas e aplica proteções contra ataques de negação de serviço. Para saber mais sobre o GFE, consulte Serviço de front-end do Google.

  • O front-end da API Spanner, que executa várias verificações na solicitação de API (incluindo verificações de autenticação, autorização e cota) e mantém sessões e estados de transação.

  • O banco de dados do Spanner, que executa leituras e gravações no banco de dados.

Quando você faz uma chamada de procedimento remoto para o Spanner, as bibliotecas de cliente do Spanner preparam a solicitação de API. Em seguida, a solicitação de API passa pelo front-end do GFE e pela API Spanner antes de chegar ao banco de dados do Spanner.

Ao medir e comparar as latências de solicitação entre diferentes componentes e no banco de dados, é possível determinar qual componente está causando o problema. Essas latências incluem ida e volta do cliente, GFE, solicitação da API Spanner e latências de consulta.

Diagrama da arquitetura do Spanner.

As seções a seguir explicam cada tipo de latência que você vê no diagrama anterior.

Latência de ida e volta do cliente

A latência de ida e volta do cliente é o tempo (em milissegundos) entre o primeiro byte da solicitação da API Spanner que o cliente envia ao banco de dados (pelo GFE e o front-end da API Spanner) e o último byte de resposta que o cliente recebe do banco de dados.

Diagrama da arquitetura do Spanner para latência de ida e volta do cliente.

As bibliotecas de cliente do Spanner fornecem estatísticas e traces com o uso do framework de instrumentação Tensorflow. Esse framework fornece insights sobre os aspectos internos do cliente e ajuda a solucionar problemas de latência de ponta a ponta (ida e volta).

Por padrão, o framework está desativado. Para saber como ativar esse framework, consulte Capturar latência de ida e volta do cliente.

A métrica grpc.io/client/roundtrip_latency informa o tempo entre o primeiro byte da solicitação de API enviado para o último byte da resposta recebida.

Para capturar e visualizar a latência desse componente, consulte Capturar e visualizar a latência de ida e volta do cliente.

Latência do GFE

A latência do Google Front End (GFE) é o tempo (em milissegundos) entre o momento em que a rede do Google recebe uma chamada de procedimento remoto do cliente e o momento em que o GFE recebe o primeiro byte da resposta. Essa latência não inclui nenhum handshake TCP/SSL.

Diagrama da arquitetura do Spanner para latência do GFE.

Cada resposta do Spanner, seja REST ou gRPC, inclui um cabeçalho que contém o tempo total entre o GFE e o back-end (o serviço do Spanner) para a solicitação e a resposta. Isso ajuda a diferenciar melhor a origem da latência entre o cliente e a rede do Google.

A métrica cloud.google.com/[language]/spanner/gfe_latency captura e expõe a latência do GFE para solicitações do Spanner.

Para capturar e visualizar a latência desse componente, consulte Capturar e visualizar a latência do GFE.

Latência de solicitação da API Spanner

A latência da solicitação da API Spanner é o período (em segundos) entre o primeiro byte da solicitação que o front-end da API Spanner recebe e o último byte da resposta que o front-end da API Spanner envia. A latência inclui o tempo necessário para processar as solicitações da API no back-end do Spanner e na camada da API. No entanto, essa latência não inclui sobrecarga de rede ou proxy reverso entre clientes e servidores do Spanner.

Diagrama da arquitetura do Spanner para latência da solicitação da API Spanner.

A métrica spanner.googleapis.com/api/request_latencies captura e expõe a latência de front-end da API Spanner para as solicitações do Spanner.

Para capturar e visualizar a latência desse componente, consulte Capturar e visualizar a latência da solicitação da API Spanner.

Latência da consulta

A latência da consulta é o tempo (em milissegundos) necessário para executar consultas SQL no banco de dados do Spanner.

Diagrama da arquitetura do Spanner para latência da consulta.

A latência de consulta está disponível para a API executeSql.

Se o parâmetro QueryMode estiver definido como PROFILE, o ResultSetStats do Spanner estará disponível nas respostas.

Definir QueryMode como PROFILE retorna o plano de consulta e as estatísticas de execução com os resultados. Além disso, ResultSetStats inclui o tempo decorrido para executar consultas no banco de dados do Spanner.

Para capturar e visualizar a latência desse componente, consulte Capturar e visualizar latência de consulta.

A seguir