Halaman ini menjelaskan cara mengonfigurasi waktu tunda commit (penulisan) maksimum untuk mengoptimalkan throughput penulisan di Spanner.
Ringkasan
Untuk memastikan konsistensi data, Spanner mengirim permintaan penulisan ke semua replika pemungutan suara dalam database. Proses replikasi ini dapat memiliki overhead komputasi. Untuk mengetahui informasi selengkapnya, lihat Replikasi.
Operasi tulis yang dioptimalkan untuk throughput memberikan opsi untuk mengamortisasi biaya komputasi ini dengan menjalankan sekelompok operasi tulis secara bersamaan. Untuk melakukannya, Spanner memperkenalkan penundaan kecil dan mengumpulkan sekelompok operasi tulis yang perlu dikirim ke peserta pemungutan suara yang sama. Melakukan penulisan dengan cara ini dapat memberikan peningkatan throughput yang substansial dengan mengorbankan sedikit peningkatan latensi.
Perilaku default
Jika Anda tidak menetapkan waktu penundaan commit, Spanner mungkin akan menetapkan penundaan kecil untuk Anda jika menurutnya hal itu akan mengamortisasi biaya penulisan Anda.
Kasus penggunaan umum
Anda dapat menetapkan waktu tunda permintaan penulisan secara manual, bergantung pada kebutuhan aplikasi Anda. Anda juga dapat menonaktifkan penundaan penerapan untuk aplikasi yang sangat sensitif terhadap latensi dengan menyetel waktu penundaan penerapan maksimum ke 0 md.
Jika Anda memiliki aplikasi yang toleran terhadap latensi dan ingin mengoptimalkan throughput, menetapkan waktu penundaan penerapan 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 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 adalah yang terbaik.
Jika Anda memiliki aplikasi yang sensitif terhadap latensi, Spanner juga sensitif terhadap latensi secara default. Jika Anda memiliki beban kerja yang tidak stabil, Spanner mungkin akan mengatur penundaan kecil. Anda dapat bereksperimen dengan mengatur nilai 0 ms untuk menentukan apakah pengurangan latensi dengan mengorbankan peningkatan throughput masuk akal untuk aplikasi Anda.
Menetapkan waktu tunda penerapan campuran
Anda dapat mengkonfigurasi waktu tunda commit maksimum yang berbeda pada subset penulisan Anda. Jika Anda melakukannya, Spanner akan menggunakan waktu penundaan terpendek yang dikonfigurasi untuk kumpulan penulisan. Namun, sebaiknya pilih satu nilai untuk sebagian besar kasus penggunaan karena hal ini menghasilkan perilaku yang lebih dapat diprediksi.
Batasan
Anda dapat menyetel waktu penundaan penerapan antara 0 dan 500 md. Menyetel penundaan penerapan lebih dari 500 md akan menyebabkan error.
Tetapkan penundaan komit maksimum pada permintaan komit.
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.
C#
Go
Java
Node.js
Python
Ruby
Memantau latensi permintaan tulis
Anda dapat memantau pemakaian CPU dan latensi Spanner menggunakan konsolGoogle Cloud . Jika Anda menetapkan waktu tunda 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.