Halaman ini menjelaskan cara mengonfigurasi waktu tunda commit (tulis) maksimum untuk mengoptimalkan throughput tulis di Spanner.
Ringkasan
Untuk memastikan konsistensi data, Spanner mengirim permintaan tulis ke semua replika voting di database. Proses replikasi ini dapat memiliki overhead komputasi. Untuk mengetahui informasi selengkapnya, lihat Replikasi.
Penulisan yang dioptimalkan throughput memberikan opsi untuk mengamortisasi biaya komputasi ini dengan menjalankan sekelompok penulisan secara bersamaan. Untuk melakukannya, Spanner memperkenalkan penundaan kecil dan mengumpulkan sekelompok penulisan yang perlu dikirim ke peserta voting yang sama. Menjalankan penulisan dengan cara ini dapat memberikan peningkatan throughput yang substansial dengan mengorbankan latensi yang sedikit meningkat.
Perilaku default
Jika Anda tidak menetapkan waktu tunda commit, Spanner mungkin akan menetapkan penundaan kecil untuk Anda jika menurutnya hal tersebut akan mengamortisasi biaya penulisan Anda.
Kasus penggunaan umum
Anda dapat menetapkan waktu tunda 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 tunda commit maksimum ke 0 md.
Jika Anda memiliki aplikasi yang toleran terhadap latensi dan ingin mengoptimalkan throughput, menetapkan waktu tunda commit yang lebih lama akan meningkatkan throughput secara signifikan sekaligus menimbulkan latensi yang lebih tinggi untuk setiap penulisan. Misalnya, jika Anda memuat data dalam jumlah besar secara massal dan aplikasi tidak peduli seberapa cepat Spanner menulis data individual, Anda dapat menetapkan waktu tunda 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 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 tunda commit campuran
Anda dapat mengonfigurasi waktu tunda commit maks yang berbeda pada subset penulisan Anda. Jika Anda melakukannya, Spanner akan menggunakan waktu tunda terpendek yang dikonfigurasi untuk kumpulan penulisan. 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 tunda commit antara 0 dan 500 md. Menetapkan penundaan commit yang lebih tinggi dari 500 md akan menghasilkan error.
Menetapkan waktu tunda commit maks pada permintaan commit
Parameter waktu tunda commit maks adalah bagian dari metode CommitRequest. Anda dapat mengakses
metode ini dengan RPC API,
REST API,
atau menggunakan library klien Cloud Spanner.
C#
Go
Java
Node.js
Python
Ruby
Memantau latensi permintaan tulis
Anda dapat memantau penggunaan CPU dan latensi Spanner menggunakan Google Cloud konsol. Saat Anda menetapkan waktu tunda yang lebih lama untuk permintaan tulis, Anda akan melihat penggunaan CPU berpotensi menurun, sementara latensi meningkat. Untuk mempelajari latensi dalam permintaan Spanner, lihat Mengambil dan memvisualisasikan latensi permintaan Spanner API.