Informazioni sui punti di latenza in una richiesta Cloud Spanner

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

Informazioni sulle richieste API Spanner

I componenti di alto livello utilizzati per effettuare una richiesta all'API Spanner includono:

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

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

  • Il front-end dell'API Spanner, che esegue vari controlli sulla richiesta API (inclusi i controlli di autenticazione, autorizzazione e quota) e mantiene le sessioni e gli stati delle transazioni.

  • Il database Spanner, che esegue operazioni di lettura e scrittura sul database.

Quando effettui una chiamata di procedura remota a Spanner, le librerie client di Spanner preparano la richiesta API. Quindi, la richiesta API passa attraverso il front-end dell'API GFE e 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 causa il problema. Queste latenze includono latenze di andata e ritorno del client, GFE, richieste dell'API Spanner e latenze delle query.

Diagramma dell'architettura di Spanner.

Le seguenti sezioni spiegano ogni tipo di latenza che vedi nel diagramma precedente.

Latenza andata e ritorno del client

La latenza di andata e ritorno del client è il periodo di tempo (in millisecondi) che intercorre tra il primo byte della richiesta API Spanner che il client invia al database (tramite il front-end dell'API GFE e Spanner) e l'ultimo byte di risposta che il client riceve dal database.

Diagramma dell'architettura di Spanner per la latenza di andata e ritorno del client.

Le librerie client Spanner forniscono statistiche e tracce relative all'utilizzo del framework di strumentazione OpenCensus. Questo framework fornisce insight sull'interno del client e aiuta nella risoluzione dei problemi di latenza end-to-end (round-trip).

Per impostazione predefinita, il framework è disabilitato. Per informazioni su come abilitare questo framework, consulta la pagina relativa all'acquisizione della latenza di andata e ritorno del client.

La metrica grpc.io/client/roundtrip_latency fornisce il tempo che intercorre tra il primo byte di una richiesta API e l'ultimo byte della risposta ricevuta.

Per acquisire e visualizzare la latenza per questo componente, consulta Acquisire e visualizzare la latenza di andata e ritorno del client.

Latenza GFE

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

Diagramma dell'architettura di Spanner per la latenza di 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 che per la risposta. Ciò ti aiuta a distinguere meglio l'origine della latenza tra il client e la rete Google.

La metrica cloud.google.com/[language]/spanner/gfe_latency acquisisce ed espone la latenza di GFE per le richieste Spanner.

Per acquisire e visualizzare la latenza per questo componente, vedi Acquisire e visualizzare la latenza di GFE.

Latenza richieste API Spanner

La latenza delle richieste API Spanner è il periodo di tempo (in secondi) trascorso tra il primo byte di richiesta ricevuta dal front-end dell'API Spanner e l'ultimo byte di risposta inviato dall'API front-end Spanner. La latenza include il tempo necessario per l'elaborazione delle richieste API nel backend di Spanner e nel livello API. Tuttavia, questa latenza non include l'overhead di rete o 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 del front-end dell'API Spanner per le richieste di Spanner.

Per acquisire e visualizzare la latenza per questo componente, consulta Acquisire e visualizzare la latenza delle richieste API Spanner.

Latenza query

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

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

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

Se il parametro QueryMode è impostato su PROFILE, le risposte ResultSetStats di Spanner sono disponibili nelle risposte.

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

Per acquisire e visualizzare la latenza per questo componente, consulta Acquisire e visualizzare la latenza delle query.

Passaggi successivi