Halaman ini menjelaskan cara mengonfigurasi waktu penundaan commit (tulis) maksimum untuk mengoptimalkan throughput tulis di Spanner.
Ringkasan
Untuk memastikan konsistensi data, Spanner mengirimkan permintaan tulis ke semua replika pemungutan suara dalam database. Proses replikasi ini dapat memiliki overhead komputasi. Untuk informasi selengkapnya, lihat Replikasi.
Operasi tulis yang dioptimalkan throughput memberikan opsi untuk mengamortisasi biaya komputasi ini dengan menjalankan sekelompok operasi tulis secara bersamaan. Untuk melakukannya, Spanner memperkenalkan penundaan kecil dan mengumpulkan grup operasi tulis yang perlu dikirim ke peserta pemungutan suara yang sama. Dengan cara ini, eksekusi operasi tulis dapat memberikan peningkatan throughput yang signifikan dengan mengorbankan sedikit peningkatan latensi.
Perilaku default
Jika Anda tidak menetapkan waktu penundaan commit, Spanner mungkin menetapkan penundaan kecil untuk Anda jika dirasa akan melunasi biaya operasi tulis Anda.
Kasus penggunaan umum
Anda dapat menetapkan waktu penundaan permintaan tulis secara manual, bergantung pada kebutuhan aplikasi Anda. Anda juga dapat menonaktifkan penundaan commit untuk aplikasi yang sangat sensitif terhadap latensi dengan menetapkan waktu penundaan commit maksimum ke 0 md.
Jika Anda memiliki aplikasi yang toleran terhadap latensi dan ingin mengoptimalkan throughput, menetapkan waktu penundaan commit yang lebih lama akan meningkatkan throughput secara signifikan sekaligus menyebabkan latensi yang lebih tinggi untuk setiap operasi tulis. Misalnya, jika Anda memuat massal data dalam jumlah besar dan aplikasi tidak peduli seberapa cepat Spanner menulis setiap data, Anda dapat menetapkan waktu penundaan commit ke nilai yang lebih lama seperti 100 md. Sebaiknya mulai dengan nilai 100 md, lalu sesuaikan ke atas dan ke bawah hingga kompromi latensi dan throughput memenuhi kebutuhan Anda. Untuk sebagian besar aplikasi, nilai antara 20 md dan 100 md akan berfungsi paling baik.
Jika Anda memiliki aplikasi yang sensitif terhadap latensi, Spanner juga sensitif terhadap latensi secara default. Jika Anda memiliki beban kerja yang tidak stabil, Spanner dapat menetapkan penundaan kecil. Anda dapat bereksperimen dengan menetapkan nilai 0 md untuk menentukan apakah pengurangan latensi dengan mengorbankan peningkatan throughput wajar untuk aplikasi Anda.
Menetapkan waktu penundaan commit campuran
Anda dapat mengonfigurasi waktu penundaan commit maksimum yang berbeda pada subkumpulan operasi tulis. Jika Anda melakukannya, Spanner akan menggunakan waktu penundaan terpendek yang dikonfigurasi untuk kumpulan operasi tulis. Namun, sebaiknya pilih satu nilai untuk sebagian besar kasus penggunaan karena hal ini akan menghasilkan perilaku yang lebih dapat diprediksi.
Batasan
Anda dapat menetapkan waktu penundaan commit antara 0 dan 500 md. Menetapkan penundaan commit yang lebih tinggi dari 500 md akan menyebabkan error.
Menetapkan penundaan commit maksimum pada permintaan commit
Parameter penundaan commit maksimum adalah bagian dari metode CommitRequest
. Anda dapat mengakses metode ini dengan RPC API, REST API, atau menggunakan library klien Cloud Spanner.
Go
Node.js
Python
Ruby
Memantau latensi permintaan tulis
Anda dapat memantau penggunaan dan latensi CPU Spanner menggunakan Konsol Google Cloud. Saat Anda menetapkan waktu penundaan yang lebih lama untuk permintaan tulis, Anda akan melihat penggunaan CPU yang berpotensi menurun, sementara latensi meningkat. Untuk mempelajari latensi dalam permintaan Spanner, lihat Merekam dan memvisualisasikan latensi permintaan Spanner API.