Untuk membantu Anda lebih memahami, mengoptimalkan, dan mendiagnosis masalah transaksi, Spanner memberi Anda akses ke statistik commit transaksi. Saat ini, Anda dapat mengambil total jumlah mutasi untuk transaksi.
Kapan harus menggunakan statistik commit
Mengetahui jumlah mutasi untuk transaksi dapat berguna dalam skenario berikut.
Mengoptimalkan untuk perjalanan pulang pergi
Untuk membantu meningkatkan performa aplikasi, Anda dapat mengurangi jumlah perjalanan pulang pergi ke database dengan melakukan sebanyak mungkin pekerjaan dalam setiap transaksi. Dalam skenario ini, Anda ingin memaksimalkan jumlah mutasi per transaksi, sekaligus tetap berada dalam batas sistem.
Untuk menentukan jumlah baris yang dapat Anda lakukan per transaksi sambil tetap berada di bawah batas, lakukan terlebih dahulu satu baris dalam transaksi. Hal ini memberi Anda dasar jumlah mutasi per baris. Kemudian, bagi batas sistem dengan garis dasar Anda untuk mendapatkan jumlah baris per transaksi. Untuk mengetahui informasi selengkapnya tentang cara penghitungan mutasi, lihat catatan ini.
Perhatikan bahwa pengoptimalan untuk perjalanan pulang pergi tidak selalu bermanfaat, terutama jika menyebabkan lebih banyak pertentangan konten kunci. Anda dapat memecahkan masalah konflik kunci di database menggunakan statistik kunci.
Pantau transaksi Anda untuk menghindari batas sistem
Seiring meningkatnya penggunaan aplikasi, kemungkinan jumlah mutasi dalam transaksi Anda juga bertambah. Untuk menghindari batas sistem dan kegagalan transaksi, Anda dapat memantau statistik commit jumlah mutasi secara proaktif dari waktu ke waktu. Jika Anda melihat nilai ini meningkat untuk transaksi yang sama, mungkin sudah waktunya untuk mengoptimalkan ulang transaksi Anda seperti yang dijelaskan di bagian sebelumnya.
Cara mengakses statistik commit
Statistik penerapan tidak ditampilkan secara default. Sebagai gantinya, Anda perlu menyetel
flag return_commit_stats
ke benar (true) di setiap CommitRequest. Jika
upaya commit Anda melebihi jumlah mutasi maksimum yang diizinkan untuk
transaksi, commit akan gagal dan error INVALID_ARGUMENT akan
ditampilkan.
Berikut adalah contoh cara menampilkan statistik commit menggunakan library klien Spanner.
Mengambil statistik commit
Contoh berikut menunjukkan cara mendapatkan statistik commit menggunakan library klien Spanner.
C++
Kode berikut memanggil set_return_stats()
di CommitOptions
dan
menampilkan jumlah mutasi 6, karena kita menyisipkan atau memperbarui 2 baris dan
3 kolom di setiap baris.
C#
Di C#, statistik penerapan tidak ditampilkan secara langsung melalui API. Sebagai gantinya, peristiwa ini dicatat pada tingkat log Information oleh logger default.
Kode berikut mengaktifkan logging statistik commit untuk semua transaksi dengan
menetapkan properti LogCommitStats
pada SpannerConnectionStringBuilder
ke
benar (true). Kode ini juga menerapkan logger contoh yang menyimpan referensi ke
respons commit terakhir yang terlihat. MutationCount
kemudian diambil dari respons ini dan ditampilkan.
Go
Kode berikut menetapkan tanda ReturnCommitStats
dan mencetak jumlah mutasi saat transaksi berhasil di-commit.
Java
Node.js
Kode berikut menetapkan tanda returnCommitStats
dan menampilkan jumlah mutasi 6, karena kita menyisipkan atau mengupdate 2 baris dan 3 kolom di setiap baris.
PHP
Python
Daripada menampilkan statistik commit secara langsung melalui API, library klien Python mencatatnya menggunakan stdout
di level Info
.
Kode berikut mengaktifkan pencatatan statistik commit untuk semua transaksi dengan
menetapkan database.log_commit_stats = True
. Kode ini juga mengimplementasikan
pencatat contoh yang menyimpan referensi ke respons commit yang terakhir terlihat. mutation_count
kemudian diambil dari respons ini dan ditampilkan.
Ruby
Kode berikut menetapkan tanda return_commit_stats
dan menampilkan jumlah mutasi 6, karena kita menyisipkan atau mengupdate 2 baris dan 3 kolom di setiap baris.