Puntos de latencia en una solicitud de Spanner

Esta página ofrece una descripción general de los componentes de alto nivel involucrados en un solicitud de Spanner y cómo cada componente puede afectar la latencia.

Solicitudes a la API de Spanner

Los componentes de alto nivel que se usan para crear una API de Spanner incluyen:

  • Bibliotecas cliente de Spanner que proporcionan una capa de abstracción sobre gRPC, además de controlar y detalles de comunicación, como administración de sesiones, transacciones y reintentos.

  • Google Front End (GFE), un servicio de infraestructura común a todos los servicios de Google Cloud, incluido Spanner. El El GFE verifica que todas las conexiones de seguridad de la capa de transporte (TLS) estén detenidas. y aplica protecciones contra ataques de denegación del servicio. Para obtener más información acerca de GFE, consulte Servicio de Google Front End.

  • El frontend de la API de Spanner, que realiza varias verificaciones en el solicitud a la API (incluidas las verificaciones de autenticación, autorización y cuota) mantiene sesiones y estados de transacción.

  • La base de datos de Spanner, que ejecuta lecturas y escrituras en la en la base de datos.

Cuando realizas una llamada de procedimiento remoto a Spanner, el Las bibliotecas cliente de Spanner preparan la solicitud a la API. Luego, la API la solicitud pase a través del frontend de la API de Spanner y GFE antes de llegar a la base de datos de Spanner.

Mediante la medición y comparación de las latencias de solicitud entre diferentes componentes y la base de datos, puedes determinar qué componente está causando el problema. Estas latencias incluyen el recorrido de ida y vuelta del cliente, GFE y la API de Spanner. latencias de solicitudes y consultas.

Diagrama de la arquitectura de Spanner.

En las siguientes secciones, se explica cada tipo de latencia que observaste en la lección anterior: diagrama.

Latencia de ida y vuelta del cliente

La latencia de ida y vuelta del cliente es el tiempo (en milisegundos) entre las primer byte de la solicitud a la API de Spanner que el cliente envía al la base de datos (a través del frontend de la API de Spanner y GFE end) y el último byte de respuesta que el cliente recibe de la base de datos.

Diagrama de la arquitectura de Spanner para la latencia de ida y vuelta del cliente.

La grpc.io/client/roundtrip_latency proporciona el tiempo entre el primer byte de la solicitud a la API enviada al último byte de la respuesta recibida.

Si quieres capturar y visualizar la latencia de este componente, consulta Captura y visualiza la latencia de ida y vuelta de los clientes con OpenTelemetry o con OpenCensus.

Latencia de GFE

La latencia de Google Front End (GFE) es la cantidad de tiempo (en milisegundos) entre cuando la red de Google recibe una llamada de procedimiento remoto del cliente y cuando GFE recibe el primer byte de la respuesta. Esta latencia no se incluyen cualquier protocolo de enlace TCP/SSL.

Diagrama de la arquitectura de Spanner para la latencia de GFE.

Cada respuesta de Spanner, ya sea REST o gRPC, incluye un encabezado que contenga el tiempo total entre GFE y el backend (el Spanner) tanto para la solicitud como para la respuesta. Esta ayuda a diferenciar mejor la fuente de la latencia entre el cliente y la de Google.

El spanner/gfe_latency métrica captura y expone la latencia de GFE para las solicitudes de Spanner.

Si quieres capturar y visualizar la latencia de este componente, consulta Captura y visualiza la latencia de GFE con OpenTelemetry o con OpenCensus.

Latencia de solicitud a la API de Spanner

La latencia de solicitud a la API de Spanner es la cantidad de tiempo (en segundos) entre el primer byte de solicitud que envía el frontend de la API de Spanner recibe y el último byte de respuesta que la API de Spanner que envía el frontend. La latencia incluye el tiempo necesario para procesar la API en el backend de Spanner y en la capa de la API. Sin embargo, esta latencia no incluye la sobrecarga de red ni del proxy inverso entre clientes y servidores de Spanner.

Diagrama de arquitectura de Spanner para la latencia de solicitud a la API de Spanner.

La métrica spanner.googleapis.com/api/request_latencies capta y expone la latencia del frontend de la API de Spanner para Solicitudes de Spanner.

Si quieres capturar y visualizar la latencia de este componente, consulta Captura y visualiza la latencia de las solicitudes a la API de Spanner con OpenTelemetry o con OpenCensus.

Latencia de las consultas

La latencia de la consulta es el tiempo (en milisegundos) que se tarda en ejecutar SQL en la base de datos de Spanner.

Diagrama de la arquitectura de Spanner para la latencia de las consultas.

La latencia de consulta está disponible para la API de executeSql.

Si el elemento QueryMode se establece en PROFILE, la configuración ResultSetStats están disponibles en las respuestas.

Si configuras QueryMode como PROFILE, se muestra la consulta el plan de trabajo y las estadísticas de ejecución junto con los resultados. Además, ResultSetStats incluye el tiempo transcurrido para ejecutar consultas en la base de datos de Spanner.

Si quieres capturar y visualizar la latencia de este componente, consulta Captura y visualiza la latencia de las consultas con OpenTelemetry o con OpenCensus.

¿Qué sigue?