Halaman ini menjelaskan cara mengonfigurasi waktu tunda commit (penulisan) maksimum untuk mengoptimalkan throughput penulisan di Spanner.
Ringkasan
Untuk memastikan konsistensi data, Spanner mengirim permintaan tulis ke semua replika pemungutan suara dalam database. Proses replikasi ini dapat memiliki overhead komputasi. Untuk mengetahui informasi selengkapnya, lihat Replikasi.
Penulisan yang dioptimalkan untuk throughput memberikan opsi untuk mengamortisasi biaya komputasi ini dengan menjalankan sekelompok penulisan secara bersamaan. Untuk melakukannya, Spanner memperkenalkan penundaan kecil dan mengumpulkan sekelompok operasi tulis yang perlu dikirim ke peserta pemungutan suara yang sama. Menjalankan operasi tulis dengan cara ini dapat memberikan peningkatan throughput yang substansial dengan biaya peningkatan latensi yang sedikit.
Perilaku default
Jika Anda tidak menetapkan waktu penundaan penerapan, Spanner mungkin menetapkan penundaan kecil untuk Anda jika Spanner berpikir bahwa 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 tunda 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 menyetel waktu penundaan commit ke nilai yang lebih lama seperti 100 md. Sebaiknya mulai dengan nilai 100 md, lalu sesuaikan naik dan turun 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 teratur, Spanner dapat menetapkan penundaan kecil. Anda dapat bereksperimen dengan menyetel nilai 0 md untuk menentukan apakah pengurangan latensi dengan biaya peningkatan throughput dapat diterima untuk aplikasi Anda.
Menetapkan waktu tunda penerapan campuran
Anda dapat mengonfigurasi waktu tunda penerapan maksimum yang berbeda pada subkumpulan penulisan Anda. Jika Anda melakukannya, Spanner akan menggunakan waktu penundaan terpendek yang dikonfigurasi untuk serangkaian penulisan. Namun, sebaiknya pilih satu nilai untuk sebagian besar kasus penggunaan karena hal ini menghasilkan perilaku yang lebih dapat diprediksi.
Batasan
Anda dapat menetapkan waktu penundaan penerapan antara 0 dan 500 md. Menetapkan penundaan penerapan lebih dari 500 md akan menyebabkan error.
Menetapkan penundaan penerapan maksimum pada permintaan penerapan
Parameter penundaan penerapan 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 penulisan, Anda dapat melihat penggunaan CPU yang berpotensi menurun, sementara latensi meningkat. Untuk mempelajari latensi dalam permintaan Spanner, lihat Merekam dan memvisualisasikan latensi permintaan Spanner API.