Latenzpunkte in einer Spanner-Anfrage

Diese Seite gibt einen Überblick über die übergeordneten Komponenten Spanner-Anfrage und wie sich die einzelnen Komponenten auf die Latenz auswirken können.

Spanner API-Anfragen

Die übergeordneten Komponenten, die zum Erstellen einer Spanner API verwendet werden Anfrage:

  • Spanner-Clientbibliotheken die eine Abstraktionsebene über gRPC bereitstellen und Server- Kommunikationsdetails wie Sitzungsverwaltung, Transaktionen und Wiederholungsversuche.

  • Das Google Front End (GFE), ein gängiger Infrastrukturdienst einschließlich Spanner. Die GFE prüft, ob alle TLS-Verbindungen (Transport Layer Security) beendet wurden und schützt vor Denial-of-Service-Angriffen. Weitere Informationen Informationen zum GFE finden Sie unter Google Front End-Dienst.

  • Das Spanner API-Frontend, das verschiedene Prüfungen API-Anfrage (einschließlich Authentifizierung, Autorisierung und Kontingentprüfungen) und verwaltet Sitzungen und Transaktionsstatus.

  • Die Spanner-Datenbank, die Lese- und Schreibvorgänge in der Datenbank.

Wenn Sie einen Remoteprozeduraufruf an Spanner senden, Spanner-Clientbibliotheken bereiten die API-Anfrage vor. Dann gibt die API Die Anfrage wird sowohl über das GFE als auch das Spanner API-Front-End weitergeleitet bevor die Spanner-Datenbank erreicht wird.

Durch Messen und Vergleichen der Anfragelatenzen zwischen verschiedenen Komponenten und der Datenbank, können Sie ermitteln, welche Komponente das Problem verursacht. Zu diesen Latenzen gehören Client-Roundtrip, GFE, Spanner API Anforderungs- und Abfragelatenzen.

Diagramm der Spanner-Architektur

In den folgenden Abschnitten werden die verschiedenen Latenztypen aus den vorherigen Diagramm.

Client-Umlauflatenz

Die Client-Umlaufzeit ist der Zeitraum (in Millisekunden) zwischen erstes Byte der Spanner API-Anfrage, an die der Client sendet in der Datenbank (über das GFE und die Spanner API) end) und das letzte Byte der Antwort, die der Client von der Datenbank erhält.

Spanner-Architekturdiagramm für die Client-Roundtrip-Latenz

Die grpc.io/client/roundtrip_latency Messwert stellt die Zeit zwischen dem ersten Byte der API-Anfrage bereit, die an den das letzte Byte der erhaltenen Antwort.

Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Mit OpenTelemetry die Client-Umlaufzeitlatenz erfassen und visualisieren oder mit OpenCensus.

GFE-Latenz

Die Latenz des Google Front End (GFE) ist die Zeitspanne (in Millisekunden) zwischen wenn das Google-Netzwerk einen Remote-Prozedur-Aufruf vom Client empfängt und wenn das GFE das erste Byte der Antwort empfängt. Diese Latenzzeit TCP/SSL-Handshakes enthalten.

Spanner-Architekturdiagramm zur GFE-Latenz

Jede Antwort von Spanner, ob es sich um REST oder gRPC handelt, umfasst einen Header, der die Gesamtzeit zwischen dem GFE und dem Back-End enthält (die Spanner-Dienst) für die Anfrage und die Antwort. Dieses hilft, die Quelle der Latenz zwischen dem Client und dem Google-Werbenetzwerk.

Das spanner/gfe_latency Mit dem Messwert wird die GFE-Latenz für Spanner-Anfragen erfasst und offengelegt.

Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter GFE-Latenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.

Latenz von Spanner API-Anfragen

Die Latenz der Spanner API-Anfrage ist die Dauer (in Sekunden) zwischen dem ersten Byte der Anfrage vom Spanner API-Front-End das letzte Byte der Antwort, die die Spanner API erhält, die vom Frontend gesendet werden. Die Latenz schließt auch die Zeit ein, die für die API-Verarbeitung benötigt wird. Anfragen im Spanner-Back-End und auf der API-Ebene. Diese Latenz umfasst jedoch keinen Netzwerk- oder Reverse-Proxy-Overhead. zwischen Spanner-Clients und -Servern.

Spanner-Architekturdiagramm für die Latenz von Spanner API-Anfragen

Der Messwert spanner.googleapis.com/api/request_latencies erfasst und macht Spanner API-Front-End-Latenz für Spanner-Anfragen.

Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Spanner API-Anfragelatenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.

Abfragelatenz

Die Abfragelatenz ist die Zeit in Millisekunden, die zum Ausführen von SQL benötigt wird Abfragen in der Spanner-Datenbank

Spanner-Architekturdiagramm für die Abfragelatenz

Die Abfragelatenz ist für die API executeSql verfügbar.

Wenn die QueryMode auf PROFILE gesetzt ist, dann ist die ResultSetStats sind in den Antworten enthalten.

Wenn Sie QueryMode auf PROFILE setzen, wird sowohl die Abfrage Plan und die Ausführungsstatistiken zusammen mit den Ergebnissen. Außerdem ResultSetStats enthält die verstrichene Zeit für die Ausführung von Abfragen in in der Spanner-Datenbank.

Informationen zum Erfassen und Visualisieren der Latenz für diese Komponente finden Sie unter Abfragelatenz mit OpenTelemetry erfassen und visualisieren oder mit OpenCensus.

Nächste Schritte