Titik latensi dalam permintaan Spanner

Halaman ini memberikan ringkasan komponen tingkat tinggi yang terlibat dalam permintaan Spanner dan cara setiap komponen dapat memengaruhi latensi.

Permintaan Spanner API

Komponen tingkat tinggi yang digunakan untuk membuat permintaan Spanner API meliputi:

  • Library klien Spanner, yang menyediakan lapisan abstraksi di atas gRPC, dan menangani detail komunikasi server, seperti pengelolaan sesi, transaksi, dan percobaan ulang.

  • Google Front End (GFE), yang merupakan layanan infrastruktur yang umum untuk semua Google Cloud layanan, termasuk Spanner. GFE memverifikasi bahwa semua koneksi Transport Layer Security (TLS) dihentikan dan menerapkan perlindungan terhadap serangan Denial of Service. Untuk mempelajari lebih lanjut GFE, lihat Layanan Google Front End.

  • Frontend Spanner API (AFE), yang melakukan berbagai pemeriksaan pada permintaan API (termasuk autentikasi, otorisasi, dan pemeriksaan kuota) , serta mempertahankan status sesi dan transaksi.

  • Database Spanner, yang menjalankan operasi baca dan tulis ke database.

Saat Anda melakukan panggilan prosedur jarak jauh ke Spanner, library klien Spanner menyiapkan permintaan API. Kemudian, permintaan API akan diteruskan melalui GFE dan AFE Spanner sebelum mencapai database Spanner.

Dengan mengukur dan membandingkan latensi permintaan antara berbagai komponen dan database, Anda dapat menentukan komponen mana yang menyebabkan masalah. Latensi ini mencakup latensi dua-arah klien, GFE, permintaan Spanner API, dan kueri.

Diagram arsitektur Spanner.

Bagian berikut menjelaskan setiap jenis latensi yang Anda lihat dalam diagram sebelumnya.

Latensi end-to-end

Latensi end-to-end adalah durasi (dalam milidetik) antara byte pertama permintaan Spanner API yang dikirim klien ke database (melalui GFE dan frontend Spanner API), dan byte terakhir respons yang diterima klien dari database.

Diagram arsitektur Spanner untuk latensi end-to-end.

Metrik spanner.googleapis.com/client/operation_latencies memberikan waktu antara byte pertama permintaan API yang dikirim hingga byte terakhir respons yang diterima. Hal ini mencakup percobaan ulang yang dilakukan oleh library klien.

Untuk mengetahui informasi selengkapnya, lihat Melihat dan mengelola metrik sisi klien.

Latensi GFE

Latensi Google Front End (GFE) adalah durasi (dalam milidetik) antara saat jaringan Google menerima panggilan prosedur jarak jauh dari klien dan saat GFE menerima byte pertama respons. Latensi ini tidak mencakup handshake TCP/SSL apa pun.

Diagram arsitektur Spanner untuk latensi GFE.

Setiap respons dari Spanner (REST atau gRPC) menyertakan header yang berisi total waktu antara GFE dan backend (layanan Spanner) untuk permintaan dan respons. Hal ini membantu membedakan dengan lebih baik sumber latensi antara klien dan GFE.

Metrik spanner.googleapis.com/client/gfe_latencies mencatat dan mengekspos latensi GFE untuk permintaan Spanner.

Untuk mengetahui informasi selengkapnya, lihat Melihat dan mengelola metrik sisi klien.

Latensi permintaan Spanner API

Latensi permintaan Spanner API adalah durasi waktu (dalam detik) dari saat AFE Spanner menerima byte pertama permintaan hingga saat frontend Spanner API mengirim byte terakhir respons. Latensi mencakup waktu yang diperlukan untuk memproses permintaan API di backend Spanner dan lapisan API. Namun, latensi ini tidak mencakup overhead jaringan atau proxy terbalik antara klien dan server Spanner.

Diagram arsitektur Spanner untuk latensi permintaan Spanner API.

Metrik spanner.googleapis.com/api/request_latencies mencatat dan mengekspos latensi AFE Spanner untuk permintaan Spanner. Untuk mengetahui informasi selengkapnya, lihat Metrik Spanner.

Latensi kueri

Latensi kueri adalah durasi waktu (dalam milidetik) yang diperlukan untuk menjalankan kueri SQL di database Spanner.

Diagram arsitektur Spanner untuk latensi kueri.

Latensi kueri tersedia untuk API executeSql.

Jika parameter QueryMode disetel ke WITH_STATS atau WITH_PLAN_AND_STATS, ResultSetStats Spanner tersedia dalam respons. ResultSetStats mencakup waktu yang telah berlalu untuk menjalankan kueri di database Spanner.

Untuk merekam dan memvisualisasikan latensi kueri, lihat Merekam latensi kueri dengan OpenTelemetry.

Langkah berikutnya