Points de latence dans une requête Spanner

Cette page présente les composants de haut niveau impliqués dans un processus la requête Spanner et la manière dont chaque composant peut affecter la latence.

Requêtes de l'API Spanner

Composants de haut niveau utilisés pour créer une API Spanner requête incluent:

  • Bibliothèques clientes Spanner, qui fournissent une couche d'abstraction au-dessus de gRPC et qui gèrent les détails de la communication, tels que la gestion des sessions, les transactions et les nouvelles tentatives.

  • Google Front End (GFE), un service d'infrastructure couramment utilisé, à tous les services Google Cloud, y compris Spanner. La Le GFE vérifie que toutes les connexions TLS (Transport Layer Security) sont arrêtées et applique des protections contre les attaques par déni de service. Pour en savoir plus sur le GFE, consultez la page Service Google Front End.

  • L'interface de l'API Spanner, qui effectue diverses vérifications sur le Requête API (y compris l'authentification, l'autorisation et la vérification des quotas) conserve les états des sessions et des transactions.

  • La base de données Spanner, qui exécute les lectures et les écritures sur le base de données.

Lorsque vous effectuez un appel de procédure à distance vers Spanner, Les bibliothèques clientes Spanner préparent la requête API. Ensuite, l'API passe à la fois par le GFE et l'interface de l'API Spanner avant d'atteindre la base de données Spanner.

En mesurant et en comparant les latences des requêtes entre différents composants et la base de données, vous pouvez déterminer quel composant est à l’origine du problème. Ces latences incluent l'aller-retour client, GFE, l'API Spanner les latences de requête et de requête.

Schéma de l'architecture Spanner.

Les sections suivantes expliquent chaque type de latence que vous voyez dans graphique.

Latence aller-retour du client

La latence aller-retour du client correspond à la durée (en millisecondes) entre les premier octet de la requête API Spanner que le client envoie la base de données (via le GFE et l'API Spanner end) et le dernier octet de réponse que le client reçoit de la base de données.

Schéma de l'architecture Spanner pour la latence aller-retour du client.

grpc.io/client/roundtrip_latency indique le temps écoulé entre le premier octet de la requête API envoyée au dernier octet de la réponse reçue.

Pour capturer et visualiser la latence pour ce composant, consultez Capturer et visualiser la latence aller-retour du client avec OpenTelemetry ou avec OpenCensus.

Latence du GFE

La latence de Google Front End (GFE) correspond à la durée (en millisecondes) entre lorsque le réseau Google reçoit un appel de procédure à distance du client et lorsque le GFE reçoit le premier octet de la réponse. Cette latence n'est pas inclure un handshake TCP/SSL.

Schéma de l'architecture Spanner pour la latence des GFE

Chaque réponse de Spanner, qu'elle soit REST ou gRPC, inclut Un en-tête qui contient le temps total entre le GFE et le backend (le service Spanner) pour la requête et la réponse. Ce permet de mieux différencier la source de la latence entre le client et le réseau Google.

spanner/gfe_latency capture et expose la latence du GFE pour les requêtes Spanner.

Pour capturer et visualiser la latence pour ce composant, consultez Capturer et visualiser la latence GFE avec OpenTelemetry ou avec OpenCensus.

Latence des requêtes API Spanner

La latence des requêtes API Spanner correspond à la durée (en secondes) entre le premier octet de la requête que l'interface de l'API Spanner et le dernier octet de réponse reçu par l'API Spanner frontend envoie. La latence inclut le temps nécessaire au traitement de l'API à la fois dans le backend Spanner et dans la couche API. Toutefois, cette latence n'inclut pas la surcharge réseau ou de proxy inverse. entre les clients et serveurs Spanner.

Schéma de l'architecture Spanner pour la latence des requêtes API Spanner.

La métrique spanner.googleapis.com/api/request_latencies capture Il expose la latence de l'interface de l'API Spanner Requêtes Spanner.

Pour capturer et visualiser la latence pour ce composant, consultez Capturer et visualiser la latence des requêtes API Spanner avec OpenTelemetry ou avec OpenCensus.

Latence des requêtes

La latence d'une requête est la durée (en millisecondes) nécessaire pour exécuter SQL dans la base de données Spanner.

Schéma de l'architecture Spanner pour la latence des requêtes.

La latence des requêtes est disponible pour l'API executeSql.

Si le QueryMode est défini sur PROFILE, la valeur ResultSetStats sont disponibles dans les réponses.

Si vous définissez QueryMode sur PROFILE, la requête renvoie à la fois le plan, les statistiques d'exécution ainsi que les résultats. Par ailleurs, ResultSetStats inclut le temps écoulé pour l'exécution des requêtes dans la base de données Spanner.

Pour capturer et visualiser la latence pour ce composant, consultez Capturer et visualiser la latence des requêtes avec OpenTelemetry ou avec OpenCensus.

Étape suivante