Punti di latenza in una richiesta Spanner

Questa pagina fornisce una panoramica delle componenti di alto livello coinvolti in una richiesta Spanner e come ogni componente può influire sulla latenza.

Richieste API Spanner

I componenti di alto livello utilizzati per creare un'API Spanner richiesta includono:

  • librerie client di Spanner, che forniscono un livello di astrazione su gRPC e gestiscono server dettagli delle comunicazioni, come la gestione delle sessioni, le transazioni e i nuovi tentativi.

  • Google Front End (GFE), un servizio di infrastruttura comune a tutti i servizi Google Cloud, incluso Spanner. La Il GFE verifica che tutte le connessioni TLS (Transport Layer Security) siano interrotte e applica protezioni contro gli attacchi DoS. Per scoprire di più sul GFE, consulta Google Front End Service.

  • Il frontend dell'API Spanner, che esegue vari controlli richieste API (inclusi controlli di autenticazione, autorizzazione e quota) e mantiene le sessioni e gli stati delle transazioni.

  • Il database Spanner, che esegue letture e scritture nei per configurare un database.

Quando effettui una chiamata di procedura remota a Spanner, Le librerie client di Spanner preparano la richiesta API. Quindi, l'API la richiesta passa attraverso il frontend GFE e l'API Spanner prima di raggiungere il database Spanner.

Misurando e confrontando le latenze delle richieste tra i diversi componenti e il database, puoi determinare quale componente sta causando il problema. Queste latenze includono round trip del client, GFE e API Spanner. le latenze delle richieste e delle query.

Diagramma dell'architettura di Spanner.

Le seguenti sezioni spiegano ciascun tipo di latenza che hai notato nell'esperienza precedente in questo diagramma.

Latenza di round trip client

La latenza di round trip del client è il periodo di tempo (in millisecondi) che intercorre tra primo byte della richiesta API Spanner che il client invia a il database (tramite GFE e l'API Spanner end) e l'ultimo byte di risposta che il client riceve dal database.

Diagramma dell'architettura di Spanner per la latenza di round trip del client.

La grpc.io/client/roundtrip_latency indica il tempo che intercorre tra il primo byte della richiesta API inviata l'ultimo byte della risposta ricevuta.

Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisisci e visualizza la latenza di round trip del client con OpenTelemetry o con OpenCensus.

Latenza GFE

La latenza di Google Front End (GFE) è il periodo di tempo (in millisecondi) che intercorre quando la rete Google riceve una chiamata di procedura remota dal client e quando il GFE riceve il primo byte della risposta. Questa latenza non includi qualsiasi handshake TCP/SSL.

Diagramma dell'architettura di Spanner per la latenza dei GFE.

Ogni risposta da Spanner, sia REST che gRPC, include un'intestazione che contiene il tempo totale tra GFE e il backend (il servizio Spanner) sia per la richiesta sia per la risposta. Questo aiuta a distinguere meglio l'origine della latenza tra il client e la rete Google.

spanner/gfe_latency la metrica acquisisce ed espone la latenza GFE per le richieste Spanner.

Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisire e visualizzare la latenza dei GFE con OpenTelemetry o con OpenCensus.

Latenza delle richieste API Spanner

La latenza delle richieste API Spanner è il periodo di tempo (in secondi) tra il primo byte di richiesta che il frontend dell'API Spanner riceve l'ultimo byte di risposta che l'API Spanner gli invii frontend. La latenza include il tempo necessario per l'elaborazione dell'API richieste sia nel backend Spanner sia nel livello API. Tuttavia, questa latenza non include l'overhead di rete o del proxy inverso tra client e server Spanner.

Diagramma dell'architettura di Spanner per la latenza delle richieste dell'API Spanner.

La metrica spanner.googleapis.com/api/request_latencies acquisisce ed espone la latenza di frontend dell'API Spanner Richieste Spanner.

Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisire e visualizzare la latenza delle richieste API Spanner con OpenTelemetry o con OpenCensus.

Latenza query

La latenza delle query è il tempo (in millisecondi) necessario per eseguire SQL nel database Spanner.

Diagramma dell'architettura di Spanner per la latenza delle query.

La latenza delle query è disponibile per l'API executeSql.

Se QueryMode è impostato su PROFILE, allora il parametro ResultSetStats disponibili nelle risposte.

L'impostazione di QueryMode su PROFILE restituisce entrambe le query del piano di controllo e le statistiche di esecuzione insieme ai risultati. Inoltre, ResultSetStats include il tempo trascorso per l'esecuzione delle query in il database Spanner.

Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisire e visualizzare la latenza delle query con OpenTelemetry o con OpenCensus.

Passaggi successivi