Untuk membantu Anda lebih memahami, mengoptimalkan, dan mendiagnosis masalah transaksi, Spanner memberi Anda akses ke statistik commit transaksi. Saat ini, Anda dapat mengambil jumlah total mutasi untuk sebuah transaksi.
Kapan harus menggunakan statistik commit
Mengetahui jumlah mutasi untuk sebuah transaksi dapat berguna dalam skenario berikut.
Mengoptimalkan perjalanan pulang pergi
Untuk membantu meningkatkan performa aplikasi, Anda dapat mengurangi jumlah perjalanan pulang pergi ke database dengan melakukan pekerjaan sebanyak mungkin dalam setiap transaksi. Dalam skenario ini, Anda ingin memaksimalkan jumlah mutasi per transaksi, sambil tetap berada dalam batas sistem.
Untuk menentukan jumlah baris yang dapat Anda commit per transaksi tanpa melampaui batas, pertama-tama commit satu baris dalam transaksi. Ini memberi Anda dasar pengukuran jumlah mutasi per baris. Kemudian bagi batas sistem dengan garis dasar Anda untuk mendapatkan nomor baris per transaksi. Untuk informasi lebih lanjut tentang cara menghitung mutasi, lihat catatan ini.
Perhatikan bahwa pengoptimalan untuk perjalanan bolak-balik tidak selalu bermanfaat, terutama jika menghasilkan lebih banyak pertentangan kunci. Anda dapat memecahkan masalah konflik kunci di database menggunakan statistik kunci.
Pantau transaksi Anda agar tidak mencapai batas sistem
Seiring meningkatnya penggunaan aplikasi, ada kemungkinan jumlah mutasi dalam transaksi Anda juga akan meningkat. Untuk menghindari tercapainya batas sistem dan pada akhirnya transaksi Anda gagal, Anda dapat secara proaktif memantau statistik commit jumlah mutasi dari waktu ke waktu. Jika Anda mengamati peningkatan nilai ini untuk transaksi yang sama, mungkin sudah waktunya untuk mengoptimalkan ulang transaksi Anda seperti yang dijelaskan di bagian sebelumnya.
Cara mengakses statistik commit
Statistik commit tidak ditampilkan secara default. Sebagai gantinya, Anda perlu menetapkan tanda
return_commit_stats
ke benar (true) pada setiap CommitRequest. Jika upaya commit Anda melebihi jumlah mutasi maksimum yang diizinkan untuk suatu 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()
pada CommitOptions
dan
menampilkan jumlah mutasi 6 karena kita menyisipkan atau memperbarui 2 baris dan
3 kolom di setiap baris.
C#
Di C#, statistik commit tidak ditampilkan secara langsung melalui API. Sebaliknya, logger tersebut dicatat ke dalam log pada level log Informasi oleh logger default.
Kode berikut memungkinkan logging statistik commit untuk semua transaksi dengan menetapkan properti LogCommitStats
di SpannerConnectionStringBuilder
ke benar (true). Kode ini juga menerapkan logger contoh yang menyimpan referensi ke
respons commit yang terakhir dilihat. MutationCount
kemudian diambil dari respons
ini dan ditampilkan.
Go
Kode berikut menetapkan flag ReturnCommitStats
dan mencetak jumlah mutasi saat transaksi berhasil di-commit.
Java
Node.js
Kode berikut menetapkan flag returnCommitStats
dan menampilkan jumlah mutasi
6, karena kita menyisipkan atau memperbarui 2 baris dan 3 kolom di setiap
baris.
PHP
Python
Alih-alih menampilkan statistik commit secara langsung melalui API, library klien Python akan mencatatnya menggunakan stdout
pada level Info
.
Kode berikut memungkinkan logging statistik commit untuk semua transaksi dengan
menetapkan database.log_commit_stats = True
. Kode ini juga menerapkan
contoh logger yang menyimpan referensi ke respons commit yang terakhir dilihat. mutation_count
kemudian diambil dari respons ini dan ditampilkan.
Ruby
Kode berikut menetapkan flag return_commit_stats
dan menampilkan jumlah mutasi
6, karena kita menyisipkan atau memperbarui 2 baris dan 3 kolom di setiap
baris.