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 transaksi.
Kapan menggunakan statistik commit
Mengetahui jumlah mutasi untuk 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 sebanyak mungkin pekerjaan dalam setiap transaksi. Dalam skenario ini, Anda ingin memaksimalkan jumlah mutasi per transaksi, sekaligus tetap berada dalam batas sistem limits.
Untuk menentukan jumlah baris yang dapat Anda commit per transaksi sambil tetap berada di bawah batas, pertama-tama commit satu baris dalam transaksi. Tindakan ini akan memberi Anda nilai dasar jumlah mutasi per baris. Kemudian, bagi batas sistem dengan nilai dasar Anda untuk mendapatkan jumlah baris per transaksi. Untuk mengetahui informasi selengkapnya tentang cara mutasi dihitung, lihat catatan ini.
Perhatikan bahwa mengoptimalkan perjalanan pulang pergi tidak selalu bermanfaat, terutama jika hal ini menyebabkan lebih banyak pertentangan kunci. Anda dapat memecahkan masalah konflik kunci di database menggunakan statistik kunci.
Memantau transaksi untuk menghindari batas sistem
Seiring meningkatnya penggunaan aplikasi, jumlah mutasi dalam transaksi Anda juga dapat bertambah. Untuk menghindari batas sistem dan menyebabkan transaksi Anda akhirnya gagal, 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 kembali transaksi Anda seperti yang dijelaskan di bagian sebelumnya.
Cara mengakses statistik commit
Statistik commit tidak ditampilkan secara default. Sebagai gantinya, Anda harus menetapkan flag
return_commit_stats ke benar (true) pada 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 mengupdate 2 baris dan 3 kolom di setiap baris.
C#
Di C#, statistik commit tidak ditampilkan langsung melalui API. Sebagai gantinya, statistik commit dicatat di tingkat log Informasi oleh logger default.
Kode berikut mengaktifkan logging statistik commit untuk semua transaksi dengan menetapkan properti LogCommitStats di SpannerConnectionStringBuilder ke benar (true). Kode ini juga mengimplementasikan logger contoh yang menyimpan referensi ke respons commit terakhir yang terlihat. Kemudian, MutationCount 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 mengupdate 2 baris dan 3 kolom di setiap baris.
PHP
Python
Daripada menampilkan statistik commit langsung melalui API, library klien Python mencatatnya menggunakan stdout di level Info.
Kode berikut mengaktifkan logging statistik commit untuk semua transaksi dengan menetapkan database.log_commit_stats = True. Kode ini juga mengimplementasikan logger contoh yang menyimpan referensi ke respons commit terakhir yang terlihat. Kemudian, mutation_count diambil dari respons ini dan ditampilkan.
Ruby
Kode berikut menetapkan flag return_commit_stats dan menampilkan jumlah mutasi 6, karena kita menyisipkan atau mengupdate 2 baris dan 3 kolom di setiap baris.